blob: 68d1c9b6dc084fc4f0ce756ffdfae94eaab856f1 [file] [log] [blame] [view]
# android_ingest
An application that ingests incoming data from the Android performance tests
and creates JSON files in Google Cloud Storage that can be ingested by Perf.
It additionally created a git repo that mirrors each buildid into a Git
repository, which is what Perf is expecting.
## Example Input JSON
The incoming test data has the form:
```
{
"build_id": "3567162",
"build_flavor": "marlin-userdebug",
"metrics": {
"android.platform.systemui.tests.jank.LauncherJankTests#testAppSwitchGMailtoHome": {
"frame-fps": "9.328892269753897",
"frame-avg-jank": "8.4",
"frame-max-frame-duration": "7.834711093388444",
"frame-max-jank": "10"
},
...
},
"branch": "google-marlin-marlin-O"
}
```
# Initializing the target repo
To start with a new repo it must be initialized correctly, by commiting
a BUILDID file that contains the initial buildid and timestamp that
the repo should start from, with a correct subject. For example, you could
populate BUILDID with the buildid 3529135, which has a timestamp of 1480456484.
This means populating the BUILDID file with:
3529135 1480456484
Then adding that file to the repo:
git add BUILDID
Then commit with a subject message that is the redirector URL, i.e.
append the buildid to "https://android-ingest.skia.org/r/", and use the
flag --date and the environment variable GIT_COMMITTER_DATE to set
both the author and commiter date to the matching timestamp.
GIT_COMMITTER_DATE=1480456484 git commit -m "https://android-ingest.skia.org/r/3529135" --date=1480456484
# Upload Log
POST requests with new data are not able to be re-triggered so we have to take
special care not to lose data. A transaction log is kept of all incoming POST
requests that can be replayed if needed.
Use the ./replay-log.sh script to replay logs back into android_ingest. See
the comments in the script for how to run it.