New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Assess challenges re: implemention iOS ETL #1105
Comments
There are a few things that will need to implemented on the frontend in order to support iOS data. There are currently the following apps sending ios data:
Some examples of build_id and version values are as follows:
Glam currently relies on the fact that the build id (so far) has encoded some sort of date that we can use to build plots over time. We do not have a source of truth for iOS builds like buildhub or geckoview version, so it will be tricky to convert this into a suitable format for GLAM. The versions follow semantic versioning, so it should be okay for what we're currently doing (using only the major version for aggregates). Here is the notebook with a few small queries to figure out the shape of the two fields. https://colab.research.google.com/drive/1bVkze2EkTwr8fTB5SQQRXpkkdm3yrQu9?usp=sharing |
We know that Fenix encodes dates into opaque build ids, and we have a UDF to decode this... hopefully iOS is doing something similar, we should check to see if these build ids are encoding any info. |
On iOS the build numbers are simply values that increment every time our CI environment does a build. They have no meaning. This build increment also happens for pull request builds or test builds, so the numbers can jump up significantly between official releases. Note that for beta (testflight) releases we can have many builds in use, all with the same version (39.0) but different build ids (8767, 8797, 8798, ...) If GLAM needs a date stamp that is unique for each build then we can easily add this. |
I noticed that two applications are missing in the list in the issue story:
|
To clarify: on iOS we would prefer to stick with the current build number scheme, but we can easily add a glean value that contains a build datetime. |
Thank you Stefan for all the information. If we decide to add the datetime, my understanding is, it would be going forward and cannot be backfilled. Is that correct ? |
@travis79 From a CI/Build perspective it is really simple to inject a datetime into the app. But I don't know how to transfer that to Glean. Should we just add a metric for that? Or is there a Glean API for this? |
There currently isn't a way to send a user defined metric in all Glean pings, so we would only see this in the metrics ping, and in any custom pings it was added to. If that is sufficient, then I'm fine with it. If you really want this in every ping, then it might take a change to Glean in order to accomodate. cc @badboy for visibility into this. |
@travis79 @st3fan As @alekhyamoz says, if there's an API somewhere from which we could pass in a build id and get back a build date, that would be better for us than having the build date added to every Glean ping. Or we could even just create a BigQuery table that stores these mappings and then look them up when we need them. Does Glean have a mechanism for supporting the idea of an "out of band" ping that contains app metadata or something? Literally one single ping per build with that info would be enough. |
Unfortunately there is not. But we could do the reverse: our CI system could ping another system to announce a new build. Would that work? (I'm not in favor of these kind of inter-infrastructure dependencies btw - moving things into Glean would be my preference) |
The easiest path would probably be to add this as an optional measurement to the Glean "client_info" that is sent in all pings, the discussion around this has picked up again, so hopefully we can arrive at a solution that doesn't rely on CI systems connecting the dots for us. |
Okay, is there an issue tracking this work that we can follow, @travis79? |
I don't see a bug in Glean for this yet. If you wanted to file one, here is the right component |
@travis79 Filed a bug to track the issue: https://bugzilla.mozilla.org/show_bug.cgi?id=1742448 |
Jan-Erik and I came up with a proposal document |
Assessed! |
We need to dig in to the iOS versioning and build ids and etc to see if there will be any unexpected pain in getting the iOS data into GLAM.
The text was updated successfully, but these errors were encountered: