)]}'
{
  "log": [
    {
      "commit": "5dcb4085fc3c25bbb8ec0e2a8feff4c806556da9",
      "tree": "efee3979f7df6f14458679c72da8c8a27e53c96b",
      "parents": [
        "42739b3995bcde1aef85867fe5e5c4a882b3c245"
      ],
      "author": {
        "name": "joshmccloskey",
        "email": "joshmccloskey@google.com",
        "time": "Tue Feb 26 15:28:37 2019 -0800"
      },
      "committer": {
        "name": "joshmccloskey",
        "email": "joshmccloskey@google.com",
        "time": "Tue Feb 26 15:29:59 2019 -0800"
      },
      "message": "Modifying Atom name so config works correctly.\n\nBug: 122838593\nTest: It builds.\nChange-Id: I0f2acde0838de54466b049ace4464fa691a00215\n"
    },
    {
      "commit": "42739b3995bcde1aef85867fe5e5c4a882b3c245",
      "tree": "9599f6eb403c5908fac351fc3e7b443343d7cfcf",
      "parents": [
        "31ee603238965e9f039a3cea1ca33e12d435a7fd",
        "fe16c8f2f90c4e80125ad516e82d2c1c53848ff5"
      ],
      "author": {
        "name": "Harry Zhang",
        "email": "harrytczhang@google.com",
        "time": "Tue Feb 26 22:41:39 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 26 22:41:39 2019 +0000"
      },
      "message": "Merge \"Added a filegroup for statsd config proto definition.\""
    },
    {
      "commit": "bc4267315c4985924cbf426d2b165c35f7caa230",
      "tree": "fec4132cb71bb294e1e04abc0ea0e236ed2eb542",
      "parents": [
        "ad58cfddeb0ed1d7219ff59793683e207d74b9ec",
        "b7e22e24a1a9ee1b43e035e3522cf1c21e76ae26"
      ],
      "author": {
        "name": "Benjamin Schwartz",
        "email": "bsschwar@google.com",
        "time": "Tue Feb 26 20:17:29 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 26 20:17:29 2019 +0000"
      },
      "message": "Merge \"statsd: Add death recipient to PowerStatsPuller\""
    },
    {
      "commit": "fe16c8f2f90c4e80125ad516e82d2c1c53848ff5",
      "tree": "1090e2e3ea79db5530dc0f8c4f7e205991f8a495",
      "parents": [
        "08b88c45d814a7974e3074bab892defd3066450c"
      ],
      "author": {
        "name": "Harry Zhang",
        "email": "harrytczhang@google.com",
        "time": "Tue Feb 26 10:47:04 2019 -0800"
      },
      "committer": {
        "name": "Harry Zhang",
        "email": "harrytczhang@google.com",
        "time": "Tue Feb 26 10:50:56 2019 -0800"
      },
      "message": "Added a filegroup for statsd config proto definition.\n\nThis is used for a testing framework that involves serializing text\nproto statsd configs at build time. The filegroup allows aprotoc to\naccess the definitions elsewhere in the source tree.\n\nSubmitting this in internal first as the AOSP version of statsd old and\ncauses merge conflicts when submitted there directly.\n\nBug: 120569785\nTest: Build is not affected.\nChange-Id: I0e37a9b9a1f22a5dcebbf07ccc5cad98cf76024c\n"
    },
    {
      "commit": "b7e22e24a1a9ee1b43e035e3522cf1c21e76ae26",
      "tree": "c6eb2cbf3c6046352cbe00ce6cace4c2fb424644",
      "parents": [
        "869f5c42a0fbf73e284949fd5fd58eaff7b8882b"
      ],
      "author": {
        "name": "Benjamin Schwartz",
        "email": "bsschwar@google.com",
        "time": "Mon Feb 25 15:18:55 2019 -0800"
      },
      "committer": {
        "name": "Benjamin Schwartz",
        "email": "bsschwar@google.com",
        "time": "Tue Feb 26 09:32:21 2019 -0800"
      },
      "message": "statsd: Add death recipient to PowerStatsPuller\n\nPowerStatsPuller now will correctly re-register with the PowerStats HAL\nif the PowerStats HAL service is killed.\n\nBug: 120919173\nTest: adb shell cmd stats pull-source 10038\nTest: Killed PowerStats HAL service, waited for it to start back up,\nand verified that statsd was still able to pull the PowerStats.\n\nChange-Id: Iddaab55d70e785785402d27ad0abca9911832747\n"
    },
    {
      "commit": "2db8e6f006bf00091f70a4b56224b95a2df2c30c",
      "tree": "217b022b62e4a844fca7fea510537df77747d681",
      "parents": [
        "92f0b76b70f42b8a803a2a7df5cf1ff8ab143719",
        "80adf6be290278706cb5f91aef0b5e811da1dfb3"
      ],
      "author": {
        "name": "Hyunyoung Song",
        "email": "hyunyoungs@google.com",
        "time": "Mon Feb 25 21:59:59 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 25 21:59:59 2019 +0000"
      },
      "message": "Merge \"Add StyleUIChanged field to atoms.proto\""
    },
    {
      "commit": "a8b7011597f668815fc6c8868327d4241a46e477",
      "tree": "2a69f7936ea96461bc5e0e03f91b3e1e03ee31bb",
      "parents": [
        "47a9efce8fe53dc4084aeafdacac5a980e47c5c1"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Mon Feb 25 11:24:23 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Mon Feb 25 14:00:20 2019 +0000"
      },
      "message": "Invalidate the bucket when global base is missing.\n\nFor diffs, we need a global base at the beginning of the bucket. If we\ndo not have a global base, it means the bucket will contain incomplete\ndata.\n\nTest: atest statsd_test\nChange-Id: Ifea7ce09e31d7c5c44b1820b528dfda492dd0dc9\n"
    },
    {
      "commit": "47a9efce8fe53dc4084aeafdacac5a980e47c5c1",
      "tree": "8cca2232f35e181bda09df374db6af53ea78a923",
      "parents": [
        "8e95f0bfb9294da0bdbe57f12c616e593aafa5c3"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Fri Feb 22 15:43:31 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Mon Feb 25 13:59:30 2019 +0000"
      },
      "message": "Fix usage of flush buckets.\n\n- For pulled metrics, buckets should only be flushed when we did a pull.\nWithout a pull, we will have incomplete data.\n- Flush buckets at the end of each incoming event (on data pull,\napp upgrade, condition change). That way, we can ensure that buckets\nwill be in sync with the conditions.\n- Do not throw away on data pull events which are late as long as they\nare in the correct bucket. This is expected since we are using\nAlarmManager.\n\nTest: atest statsd_test\nChange-Id: If1222b6005a0b88bbdae1b4690921c24acd75542\n"
    },
    {
      "commit": "80adf6be290278706cb5f91aef0b5e811da1dfb3",
      "tree": "1fef9d36fce8d521080fa6ea71ff8286e73b84c8",
      "parents": [
        "2f9dd0aa805ef1163111b243cc001223681290ca"
      ],
      "author": {
        "name": "Hyunyoung Song",
        "email": "hyunyoungs@google.com",
        "time": "Wed Jan 30 09:59:30 2019 -0800"
      },
      "committer": {
        "name": "Hyunyoung Song",
        "email": "hyunyoungs@google.com",
        "time": "Sat Feb 23 22:04:11 2019 -0800"
      },
      "message": "Add StyleUIChanged field to atoms.proto\n\nTest: builds and flashed\nBug: 123356136\n\nChange-Id: Ic24f282d7e799b263fada371d16c03dd4539a023\n"
    },
    {
      "commit": "a2fc124e4c26a4f06560cc6a4e69e45dce66e826",
      "tree": "fa93d2bb5dd949c1c28bc3e3536d651851ec530a",
      "parents": [
        "e334ea7de888e2469077a1caa02c51273f18b457"
      ],
      "author": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Fri Feb 22 14:09:59 2019 -0800"
      },
      "committer": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Fri Feb 22 14:09:59 2019 -0800"
      },
      "message": "fix binary push flag usage\n\nTest: gts\nBug: 125851063\nChange-Id: I005c809401ad5b3de5f1b71c1b1751dc3d81bf6f\n"
    },
    {
      "commit": "ddab7079a818736ab7938b6b23aa002a09338906",
      "tree": "10035f23939b03fda6a3d0097b6e1ed6f5e7eacf",
      "parents": [
        "272ed7536eca9e6247b434258d1d7e9ae5a8f1ad",
        "17ba73a8eabddc6a7f2b3d8c85cabe17a426094f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 22 15:01:29 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 22 15:01:29 2019 +0000"
      },
      "message": "Merge \"Remove lots of code duplication in tests\""
    },
    {
      "commit": "17ba73a8eabddc6a7f2b3d8c85cabe17a426094f",
      "tree": "f047588f6110213dc4f404312860639e32823f68",
      "parents": [
        "0a36f57903aa1d5478138b8d9faad9bac9bad2b2"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Fri Feb 22 11:33:12 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Fri Feb 22 12:06:05 2019 +0000"
      },
      "message": "Remove lots of code duplication in tests\n\nTest: atest statsd_test\nChange-Id: Ib7d2415abf45de2810fda7fc54cd126e2f526e6b\n"
    },
    {
      "commit": "3739df05fb8ba42ce4de0fd2c02afd05f02c48fb",
      "tree": "561836172471452a142946fade4f53340de121f2",
      "parents": [
        "973e0e7719cb96a44d0c46bf6ae67a0433d6f65b",
        "0a36f57903aa1d5478138b8d9faad9bac9bad2b2"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Fri Feb 22 09:47:22 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 22 09:47:22 2019 +0000"
      },
      "message": "Merge \"Mark bucket as invalid when the condition was unknown at the start of the bucket.\""
    },
    {
      "commit": "0a36f57903aa1d5478138b8d9faad9bac9bad2b2",
      "tree": "51a3b82b9091617e89c59956d441c7139f8ae3a5",
      "parents": [
        "f9aa3044f2b493272fa1a0254dab7d74a1c83cdc"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Thu Feb 21 17:24:14 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Thu Feb 21 18:48:35 2019 +0000"
      },
      "message": "Mark bucket as invalid when the condition was unknown at the start of\nthe bucket.\n\n- since the condition was unknown, the bucket contains partial data.\n- we need to do the same for other metrics\n\nBug: 124100912\nTest: atest statsd_test\nChange-Id: If803e28667c1e8a74d5b809bcab2eb54d1961f46\n"
    },
    {
      "commit": "7489d6af3e11361fbcfa7b2d28b9544a6ca7c11f",
      "tree": "5edaa0ea8cb6ac72b49e501241e5f3dd21cfce96",
      "parents": [
        "523fdc673ec857d92735c143f301cac4234eb841",
        "f248c0d4d727b9cc3db94439e86d65d479369356"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Thu Feb 21 18:39:09 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 21 18:39:09 2019 +0000"
      },
      "message": "Merge \"Tracks the total number of buckets.\""
    },
    {
      "commit": "8bfcea1ac5d44a43ced43944e51222cd10a72626",
      "tree": "6027fab3b67db630a9f4ea926603a293bfefa984",
      "parents": [
        "f9aa3044f2b493272fa1a0254dab7d74a1c83cdc",
        "a62cb6a337d0dc428b3e8ae76add71a7a034eb04"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 21 16:30:43 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 21 16:30:43 2019 +0000"
      },
      "message": "Merge \"Add bubble logging for permission dialog shown.\""
    },
    {
      "commit": "f248c0d4d727b9cc3db94439e86d65d479369356",
      "tree": "79cd0d1d8bf522d197474628f59c13a948d47e38",
      "parents": [
        "f9aa3044f2b493272fa1a0254dab7d74a1c83cdc"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Thu Feb 21 15:56:58 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Thu Feb 21 15:58:49 2019 +0000"
      },
      "message": "Tracks the total number of buckets.\n\nTo be able to normalize the other counters, e.g. % of invalid buckets.\n\nTest: atest statsd_test\nChange-Id: I7bef93f3acfa133baf3618ce0ffee919d23a1ad3\n"
    },
    {
      "commit": "dd55e478856b40c289f555dceb9e1284aeb046ee",
      "tree": "79d054fcaa45f83649e2f67bf0d1590a7b59f233",
      "parents": [
        "1485a60b454c9a3e335084e10734cba21525ee8c",
        "99f390124f1f522e664b1eccc328f54246bd7fa0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 21 01:22:36 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 21 01:22:36 2019 +0000"
      },
      "message": "Merge \"Formatting atoms.\""
    },
    {
      "commit": "fa537a115767104fd5ae42feb6d8ff7717536c4f",
      "tree": "e9ada4bb3d4c575f4e48b5a06c4344db8b862af0",
      "parents": [
        "c28fa8802450c0b072fb5d501a23a3f74f9d16d0",
        "6c75ecdcef7ae0acb17c512f5bc086bba89ed123"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Feb 20 23:02:57 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 20 23:02:57 2019 +0000"
      },
      "message": "Merge \"Introduces an option to set a dump latency requirement.\""
    },
    {
      "commit": "99f390124f1f522e664b1eccc328f54246bd7fa0",
      "tree": "d7dbdb118c0682dc93ff95d506451c7ac45d1cd1",
      "parents": [
        "c28fa8802450c0b072fb5d501a23a3f74f9d16d0"
      ],
      "author": {
        "name": "joshmccloskey",
        "email": "joshmccloskey@google.com",
        "time": "Wed Feb 20 14:45:08 2019 -0800"
      },
      "committer": {
        "name": "joshmccloskey",
        "email": "joshmccloskey@google.com",
        "time": "Wed Feb 20 14:45:08 2019 -0800"
      },
      "message": "Formatting atoms.\n\nTest: manual\nBug: 119898637\nChange-Id: Id48030001c84e69fbdd92fa68b5a6881d3dc7e22\n"
    },
    {
      "commit": "6c75ecdcef7ae0acb17c512f5bc086bba89ed123",
      "tree": "a33705c9a3f174bb786e783a21ab798aedafa00f",
      "parents": [
        "fe71582e237ffdd791e2de13217747bb5e58934c"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Feb 20 09:57:33 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Feb 20 17:59:50 2019 +0000"
      },
      "message": "Introduces an option to set a dump latency requirement.\n\nWe are currently dumping invalid data for pulled metrics. Pulled metrics\nrequire a new pull when flushing a bucket. We should either do another\npull or invalidate the previous bucket.\n\nThere are cases where we cannot afford to do another pull, e.g. statsd\nbeing killed. If we do not have enough time, we\u0027ll just invalidte the\nbucket to make sure we have correct data.\n\nBug: 123866830\nTest: atest statsd_test\nChange-Id: I090127cace3b7265032ebb2c9bddae976c883771\n"
    },
    {
      "commit": "4ad6d0c3ddd213bcb3ae27bdca268b9d913c4c07",
      "tree": "d18ec5d2a9a283a49aed5df4d6745cbfc2364640",
      "parents": [
        "e4f26ef212666a2d605261026d36c30a339f2bbf"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Fri Feb 08 13:54:12 2019 +0000"
      },
      "committer": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Tue Feb 19 10:56:48 2019 +0000"
      },
      "message": "Add atom for logging hidden API usage\n\nTest: m\nBug: 119217680\nBug: 124667657\nChange-Id: Ia1894cfdb6b64f6bfda62ca725ef7bc902e091f7\n"
    },
    {
      "commit": "f7066969693edf3470150e4e36b6b72ef21e546f",
      "tree": "4b7f26e52b1a52ba46ea70b3aeff0018c4f333ed",
      "parents": [
        "a83c36d73a7aa3a8f04acb3576992106908e33c6",
        "fdc55931c8a4679befd18c405a49f11297f8f4c5"
      ],
      "author": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Mon Feb 18 09:13:23 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 18 09:13:23 2019 +0000"
      },
      "message": "Merge \"Update AppCompacted WW atom to include device ZRAM usage.\""
    },
    {
      "commit": "1dc37e9601d031534f42741b9a6d664e03cead0b",
      "tree": "195c299b0b5e0d1b3d283216378e0cae5d1842d5",
      "parents": [
        "cbb05a317b39ef314c5fb2e2a017f70c50ee68f5",
        "0eded6206aa896072ce3c71efec2e329275f35bd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Feb 17 14:56:31 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Feb 17 14:56:31 2019 +0000"
      },
      "message": "Merge \"Add touch classification metrics atom.\""
    },
    {
      "commit": "a62cb6a337d0dc428b3e8ae76add71a7a034eb04",
      "tree": "010d4f84df00d1a751be5ba111a2aac161642100",
      "parents": [
        "3661808cb75bfa1c6cb429994fbe91755f191e6f"
      ],
      "author": {
        "name": "Steven Wu",
        "email": "stwu@google.com",
        "time": "Fri Feb 15 17:12:51 2019 -0500"
      },
      "committer": {
        "name": "Steven Wu",
        "email": "stwu@google.com",
        "time": "Fri Feb 15 17:20:50 2019 -0500"
      },
      "message": "Add bubble logging for permission dialog shown.\n\nBug: 123543171\nTest: manual\nChange-Id: I561939930e9d54579579b818bc25d06597b2d48c\n"
    },
    {
      "commit": "b5fd2e7277d250a68811e4b94acfd68c1cecf47c",
      "tree": "2b68d3a96f30e9db79e8e905e1cfda7de84d78f8",
      "parents": [
        "d6ea41c22ee819cfa880d7eea3ecc8c33ea60a66",
        "35f7f6f3ededa3966b62d2f9ccdbdd4544dd96dd"
      ],
      "author": {
        "name": "Carmen Agimof",
        "email": "carmenagimof@google.com",
        "time": "Fri Feb 15 21:09:02 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 15 21:09:02 2019 +0000"
      },
      "message": "Merge \"Pull sdcard mounted atom.\""
    },
    {
      "commit": "826e270caa1582e706fc008f633f99c4242e53f8",
      "tree": "b4bf09a9f4b17bd1d3c4dd98ecffa65885b43584",
      "parents": [
        "9f5521ad89e4d65b78bf795c7de9f85007d07e21",
        "4ce07298e00876459a5e09bcd54fc541fd2e800a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 15 19:53:22 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 15 19:53:22 2019 +0000"
      },
      "message": "Merge \"Add more alert details to incidentd header.\""
    },
    {
      "commit": "35f7f6f3ededa3966b62d2f9ccdbdd4544dd96dd",
      "tree": "9648ce174d592a7cefed06964c5acd05a48e8246",
      "parents": [
        "8a7428020c77397d1a25dd8baf5df8f340fbc4e3"
      ],
      "author": {
        "name": "Carmen Agimof",
        "email": "carmenagimof@google.com",
        "time": "Tue Feb 05 18:19:21 2019 +0000"
      },
      "committer": {
        "name": "Carmen Agimof",
        "email": "carmenagimof@google.com",
        "time": "Fri Feb 15 17:53:36 2019 +0000"
      },
      "message": "Pull sdcard mounted atom.\n\nChange-Id: I334fef334b67e94ee040026880ffbec2803b9982\nBug: 123688171\nTest: Manually tested using statsd_testdrive script\n"
    },
    {
      "commit": "e8fe358ac0d05b47d3cdad4d4a0a8fdb6c76db61",
      "tree": "bf2a8638a418ab1ab109094dbe484157c92a83db",
      "parents": [
        "823511e481f05f49bd5cac14d146076ab78cd61a",
        "0b38ec44f4d58713f46158bac548c3570c9be699"
      ],
      "author": {
        "name": "Alison Cichowlas",
        "email": "asc@google.com",
        "time": "Fri Feb 15 16:18:37 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 15 16:18:37 2019 +0000"
      },
      "message": "Merge \"Revert \"Add bubbles UI logging for permission dialog shown.\"\""
    },
    {
      "commit": "0b38ec44f4d58713f46158bac548c3570c9be699",
      "tree": "fceaec11181886ef0bbbfeb365f175f833b5e482",
      "parents": [
        "bd2901a730539ca4de0cf7c64744d1fe5fb71d4b"
      ],
      "author": {
        "name": "Alison Cichowlas",
        "email": "asc@google.com",
        "time": "Fri Feb 15 15:54:33 2019 +0000"
      },
      "committer": {
        "name": "Alison Cichowlas",
        "email": "asc@google.com",
        "time": "Fri Feb 15 16:17:06 2019 +0000"
      },
      "message": "Revert \"Add bubbles UI logging for permission dialog shown.\"\n\nThis reverts commit bd2901a730539ca4de0cf7c64744d1fe5fb71d4b.\n\nReason for revert: Breaks tests\n\nChange-Id: I63e2e0d4872ab9b1c948f0e7df270fb1f69135da\nExempt-From-Owner-Approval: Clean rollback of CL that breaks tests\n"
    },
    {
      "commit": "823511e481f05f49bd5cac14d146076ab78cd61a",
      "tree": "6757519743b59874aca1c2ef90c6c64b842fbef4",
      "parents": [
        "854a76c8709072c34c341a832a2e38389b3b43ae",
        "db14b487b08dcfe597f7e7e1b55803ee60f41380"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Fri Feb 15 16:01:19 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 15 16:01:19 2019 +0000"
      },
      "message": "Merge \"Add an atom for TimeZoneDataVersion\""
    },
    {
      "commit": "6dc698074f95c440da97ecf5bfa4e759b8b598df",
      "tree": "51d6d0bb047038d1b36f499d73048dab90560049",
      "parents": [
        "ffa900d1c1c40914ccdfb1e703865986f0ae5976",
        "bd2901a730539ca4de0cf7c64744d1fe5fb71d4b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 15 06:36:07 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 15 06:36:07 2019 +0000"
      },
      "message": "Merge \"Add bubbles UI logging for permission dialog shown.\""
    },
    {
      "commit": "0eded6206aa896072ce3c71efec2e329275f35bd",
      "tree": "fc3ac048f66a944933ef921678bf429afa2d3304",
      "parents": [
        "28cabd11a64a17484ad29f7f4e676bdd7d98b58f"
      ],
      "author": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Tue Jan 29 12:46:28 2019 -0800"
      },
      "committer": {
        "name": "Philip Quinn",
        "email": "pquinn@google.com",
        "time": "Thu Feb 14 17:39:13 2019 -0800"
      },
      "message": "Add touch classification metrics atom.\n\nBug: 111480215\nBug: 123663806\nTest: make\n\nChange-Id: Id344c7e7ae843218651490063c1feba8f357823d\n"
    },
    {
      "commit": "b6628d9ff860ef50c16d5aeeafc533074edeebe7",
      "tree": "c2783e6ae19fbc10700bc2cf8dc7d5436c8c8097",
      "parents": [
        "b8e161804deccc38e3af72e621cdd07f010e0525",
        "d823aebd2f777c40e488ec06db23ea0114d8bbb7"
      ],
      "author": {
        "name": "Tej Singh",
        "email": "singhtejinder@google.com",
        "time": "Thu Feb 14 20:24:06 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 14 20:24:06 2019 +0000"
      },
      "message": "Merge \"Unit tests for active config change broadcast\""
    },
    {
      "commit": "db14b487b08dcfe597f7e7e1b55803ee60f41380",
      "tree": "fe66d160f67ded3b4e19c452ecda1d22cb6a6596",
      "parents": [
        "29405ed8c501f50247e7e4012b6da80bf51eb3b1"
      ],
      "author": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Tue Feb 05 19:44:44 2019 +0000"
      },
      "committer": {
        "name": "Neil Fuller",
        "email": "nfuller@google.com",
        "time": "Thu Feb 14 17:14:20 2019 +0000"
      },
      "message": "Add an atom for TimeZoneDataVersion\n\nThe atom records the tzdb version in use on the device\nas reported by the public SDK ICU APIs.\n\nTest: build / boot\nBug: 119010737\nChange-Id: Ifa2bed2eabf192da7adbc29b064cbb41f85f9ba7\n"
    },
    {
      "commit": "b52bf9dc30d5b82ce1638c41907f1a203f609c98",
      "tree": "b2f6246c084f043574cab9db36478555fde9fb37",
      "parents": [
        "06363e342c5bb83c158100dc70d7ca63949def8b",
        "e63d9e0617f0cb35c5c913d4c0ecea1e4aaa4f77"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Thu Feb 14 11:57:31 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 14 11:57:31 2019 +0000"
      },
      "message": "Merge \"Tracks unknown condition states.\""
    },
    {
      "commit": "bbf03b883424a024c26cfbddccce40d5c57a9327",
      "tree": "b1ff32bd8bbd5d6e4441a67b2f2b449936599ca7",
      "parents": [
        "214f5460b1296e313878d0f0b73455368a2a74fe",
        "f48fb0425dfc827e348bb9b3888cdb2c2f657c00"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Thu Feb 14 09:34:47 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 14 09:34:47 2019 +0000"
      },
      "message": "Merge \"Metric id should be serialized as int64 (part 2)\""
    },
    {
      "commit": "97dbb206de46b5a8aee1542a40937da5357f8b7d",
      "tree": "5d113c4511a94b7970c43d3ac0227e2f3b67694c",
      "parents": [
        "d0f6452e1c436d5b57755538592ce38bfe34b1dd"
      ],
      "author": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Wed Feb 13 16:42:04 2019 -0800"
      },
      "committer": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Wed Feb 13 17:42:35 2019 -0800"
      },
      "message": "TrainInfo persist onto disk\n\n+ TrainInfo puller\n\nBug: 122807604\nTest: will add gts\nChange-Id: Iac9576ba0edc235dc117950f92bc7d7a8ad75ca8\n"
    },
    {
      "commit": "4ce07298e00876459a5e09bcd54fc541fd2e800a",
      "tree": "b2f66ea114a6cd570fae0bc553d72ba77c604ffb",
      "parents": [
        "a99c4f30ee792aff84005b371fb830d5eaa99d70"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Feb 13 13:06:36 2019 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Feb 13 17:21:42 2019 -0800"
      },
      "message": "Add more alert details to incidentd header.\n\n+ Add metric_id, dimension, metric_value in the incident report header\n  to make it easier to identify an anomaly.\n+ In case there is a uid in the dimension, put the its package info in the header too\n\nTest: statsd_test \u0026\u0026 tested locally with a config\n\nChange-Id: I762a1a4b0563fb3104e0d32b616b4a2367485e48\n"
    },
    {
      "commit": "d823aebd2f777c40e488ec06db23ea0114d8bbb7",
      "tree": "7878e408a7febde37db6f19a60e585f311fd7d6e",
      "parents": [
        "b1a0da1098772f2369dcbbd18ac41656117e9b57"
      ],
      "author": {
        "name": "Tej Singh",
        "email": "singhtejinder@google.com",
        "time": "Wed Feb 13 16:43:49 2019 -0800"
      },
      "committer": {
        "name": "Tej Singh",
        "email": "singhtejinder@google.com",
        "time": "Wed Feb 13 16:43:49 2019 -0800"
      },
      "message": "Unit tests for active config change broadcast\n\nModifies statsd unit tests to also assert the active configs changed\nbroadcast is called at the right time with the right configs. One case\nhas one config with multiple activation signals, while the other has\nmultiple configs that are activated at the same time with one signal.\n\nTest: this is the test\nChange-Id: I6e1cd19a8a0a8dbf9745152d4ad4980854be0cbd\n"
    },
    {
      "commit": "deba83c094d69af038e3dbe2c067785a30a9134e",
      "tree": "826bc6c6ec44180c5bbb1fc8fd7634b544fdc597",
      "parents": [
        "afe83a6720023ecf4b4c6b712c5519dd6a382b8f",
        "4841d264054fb1c61320986b56cc10e379237674"
      ],
      "author": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Thu Feb 14 00:14:33 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 14 00:14:33 2019 +0000"
      },
      "message": "Merge \"fix multiple activation across boot\""
    },
    {
      "commit": "afe83a6720023ecf4b4c6b712c5519dd6a382b8f",
      "tree": "1f77e855866e4a597454ef3766fe6ee60a55b5f4",
      "parents": [
        "574274c72af8caf4c49fe8fbd719abb6b809288b",
        "6b1667c8b1c8bdbe9d59b1ed99de46e2fed2139e"
      ],
      "author": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Thu Feb 14 00:14:07 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 14 00:14:07 2019 +0000"
      },
      "message": "Merge \"add api to log BinaryPushStateChanged atom\""
    },
    {
      "commit": "4841d264054fb1c61320986b56cc10e379237674",
      "tree": "72a7b5fd2a50a21750885fa6bcfaf88f3f66d85d",
      "parents": [
        "e34c699d84fcf4cb764536994de229a3190100af"
      ],
      "author": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Tue Feb 12 14:38:08 2019 -0800"
      },
      "committer": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Wed Feb 13 22:23:47 2019 +0000"
      },
      "message": "fix multiple activation across boot\n\nIf a metric is activated and gets activated again after boot, it should\nnot change its current state.\n\nBug: 124327892\nBug: 123038368\nTest: manual\nChange-Id: I50a57223384faa5736c6e7ee562f4db74326a7ad\n"
    },
    {
      "commit": "6b1667c8b1c8bdbe9d59b1ed99de46e2fed2139e",
      "tree": "b4ef50aca7b349766b7cb4710b9905afce73b556",
      "parents": [
        "e34c699d84fcf4cb764536994de229a3190100af"
      ],
      "author": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Fri Jan 18 10:09:33 2019 -0800"
      },
      "committer": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Wed Feb 13 10:47:27 2019 -0800"
      },
      "message": "add api to log BinaryPushStateChanged atom\n\nThis api is to log BinaryPushStateChanged.\nExperiment id is added as a binary blob that is not expected to be\naccessed on device side.\nThis cl is mainly for API.\nWill add follow up cls for persisting train info on disk and make puller\nfor it.\nWill address sepolicy in follow up cls.\n\nBug: 119633962\nBug: 119685453\nTest: will add gts\nChange-Id: I68b4246cf7e8079155e16121ca37a312b35a5328\n"
    },
    {
      "commit": "f48fb0425dfc827e348bb9b3888cdb2c2f657c00",
      "tree": "d105760f6a52bfb054773a7d06f0d56d0800c5e4",
      "parents": [
        "d6764bb57db1680fe49d9d3bee1f8c262766a2c5"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Feb 13 11:03:20 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Feb 13 16:24:03 2019 +0000"
      },
      "message": "Metric id should be serialized as int64 (part 2)\n\nTest: atest statsd_test\nChange-Id: Ia8a224709aabc3c372b6ecd18fa32fdc4837ee24\n"
    },
    {
      "commit": "3e0c72484dff8b11b599cce09c4070cf71393215",
      "tree": "690f2ad5c179e30f79532a4102dd0772d6fec791",
      "parents": [
        "bc40490aeb6a80ff1a178f0f6bab55aa43dc1d61",
        "4cfa37b915e3c3269883b09d21441c2c15cca980"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Feb 13 13:21:25 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 13 13:21:25 2019 +0000"
      },
      "message": "Merge \"Metric id should be serialized as int64\""
    },
    {
      "commit": "4cfa37b915e3c3269883b09d21441c2c15cca980",
      "tree": "98d5f5475c09abc36b1da51fa3494ed855d53247",
      "parents": [
        "26ebfe8933b55e74be88e3984ee6f06523cad6ab"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Feb 13 11:03:20 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Feb 13 11:03:57 2019 +0000"
      },
      "message": "Metric id should be serialized as int64\n\nTest: atest statsd_test\nChange-Id: I0edeb8ef728252e9ee8eedf49b4672cf2d11762a\n"
    },
    {
      "commit": "5dbf94cbc0c99657bcffa69b9990e52e0b76fa25",
      "tree": "6ebef97f1c604d090107a2058d342c27bcae19be",
      "parents": [
        "dc3e98eabbdb1d0e9820d77d6110f7053c35134e",
        "6ede28bcb972967c1934e26fa0513ea6001b4f98"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 13 06:17:50 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 13 06:17:50 2019 +0000"
      },
      "message": "Merge \"Statsd sends active config broadcasts\""
    },
    {
      "commit": "6ede28bcb972967c1934e26fa0513ea6001b4f98",
      "tree": "a38b0b1bca1d13fa2d9b6242eba852b5ded0082e",
      "parents": [
        "5c5fbf11596d926462e459657c2076787451b0c2"
      ],
      "author": {
        "name": "Tej Singh",
        "email": "singhtejinder@google.com",
        "time": "Tue Jan 29 17:06:54 2019 -0800"
      },
      "committer": {
        "name": "Tej Singh",
        "email": "singhtejinder@google.com",
        "time": "Tue Feb 12 19:28:26 2019 -0800"
      },
      "message": "Statsd sends active config broadcasts\n\nStatsd now sends active configs changed broadcasts when needed per uid.\nAlso made an adb command to help debug.\n\nMore gts tests and unit tests required, will follow.\nTest: GTS in topic\nBug: 123372077\nChange-Id: Ib079018ded85d002581ffc2ba1240138ce7a54e7\n"
    },
    {
      "commit": "8c3322eb418786869551ea9d59f543103fbf77c4",
      "tree": "c56b3b6795675854b91c880f2965ca4cb3a6125e",
      "parents": [
        "af5c88b87ea9b7766b8a4591c134ca02d93edac7"
      ],
      "author": {
        "name": "joshmccloskey",
        "email": "joshmccloskey@google.com",
        "time": "Wed Jan 09 18:25:57 2019 -0800"
      },
      "committer": {
        "name": "joshmccloskey",
        "email": "joshmccloskey@google.com",
        "time": "Tue Feb 12 13:20:59 2019 -0800"
      },
      "message": "Adding additional atoms for assist gestures.\n\nTest: manual\nBug: 119898637\nBug: 121074595\nChange-Id: I1a146569398a0a3cb224a1709662a37cb5f0c7cd\n"
    },
    {
      "commit": "e63d9e0617f0cb35c5c913d4c0ecea1e4aaa4f77",
      "tree": "180e6e430c488b777de575815de55dc6f7f6cbd7",
      "parents": [
        "1e0d8fcc6704b8ba004d354f7cb90f9ddfbbda9c"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Tue Feb 12 14:43:59 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Tue Feb 12 17:14:45 2019 +0000"
      },
      "message": "Tracks unknown condition states.\n\nWhen statsd starts or is killed, the conditions are not initialized.\nTracks how many buckets are skipped because the condition was unknown.\n\nThis change does not change the behavior of statsd. In the future, we\nmight want to invalid buckets with a condition that has been partially\nunknown.\n\nBug: 124100912\nTest: atest statsd_test\nChange-Id: Ie3d2eb5e30c21dda3203ad30f9b486961ff570cf\n"
    },
    {
      "commit": "3cf3edac98214ec2c2bbd638b83a2e048bfbcaab",
      "tree": "e7515d50c2f4ee8d62d8e4770c8efdf15f89f83d",
      "parents": [
        "bd3810b28fbae2627cc1ac0406d2f017560e4925",
        "1e0d8fcc6704b8ba004d354f7cb90f9ddfbbda9c"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Tue Feb 12 11:56:26 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 12 11:56:26 2019 +0000"
      },
      "message": "Merge \"Marks the bucket as invalid when it reaches the guard rail limit.\""
    },
    {
      "commit": "1e0d8fcc6704b8ba004d354f7cb90f9ddfbbda9c",
      "tree": "7515b3d179edab18d5a4846aec37a0e0bd94ea3e",
      "parents": [
        "76b50d37fd6aa90e2d43598792c42decbb5fb207"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Mon Feb 11 18:08:43 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Tue Feb 12 09:51:05 2019 +0000"
      },
      "message": "Marks the bucket as invalid when it reaches the guard rail limit.\n\nIt only impacts the BinderCallsStats atoms currently.\n\nBug: 120130099\nTest: atest statsd_test\nChange-Id: I8ba8d7cbe8798c1c503be8897a27a0729efe77d7\n"
    },
    {
      "commit": "77f8cfb4d3a86b934dfa13a1af55587eeb4c0ab7",
      "tree": "1100282d6a897d3d5c6bfc8c054ea7bdf1699ef2",
      "parents": [
        "f6cce01894124a59a67b74b9aab7051a669b5999",
        "a0c89dd5b6d575808edd6d4d619fcd1f18954c70"
      ],
      "author": {
        "name": "Tej Singh",
        "email": "singhtejinder@google.com",
        "time": "Tue Feb 12 04:11:07 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 12 04:11:07 2019 +0000"
      },
      "message": "Merge \"Statsd Puller Callback Registration\""
    },
    {
      "commit": "826f9b6c4aa53ac7438602a4e13d91a6a2965db5",
      "tree": "fb5257366e3d8426dcb7df18b399bbf808852a31",
      "parents": [
        "a87638c7ae991e52a299aa4f8d03c6a4c7587829",
        "b76cebc3a01c5246cdd1c84da07424a4d8b93cfa"
      ],
      "author": {
        "name": "Robert Lee",
        "email": "lerobert@google.com",
        "time": "Tue Feb 12 01:44:25 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 12 01:44:25 2019 +0000"
      },
      "message": "Merge \"Add DEGRADE into HardwareErrorCode\""
    },
    {
      "commit": "a0c89dd5b6d575808edd6d4d619fcd1f18954c70",
      "tree": "39c0296430eff711b241dc71b75b0aae85733129",
      "parents": [
        "ec0cfcbafb370d50420aafb7df6e9b81a6880f4f"
      ],
      "author": {
        "name": "Tej Singh",
        "email": "singhtejinder@google.com",
        "time": "Fri Jan 25 16:39:18 2019 -0800"
      },
      "committer": {
        "name": "Tej Singh",
        "email": "singhtejinder@google.com",
        "time": "Mon Feb 11 14:24:03 2019 -0800"
      },
      "message": "Statsd Puller Callback Registration\n\nCreates a hidden api to register puller callbacks for vendor atoms.\n\nTest: manual local test\nTest: statsd unit tests\nBug: 119898637\nChange-Id: Id28817b8fc718e128adc4e1c6b2e997db84517f9\n"
    },
    {
      "commit": "77acd8ed83a30499f3e27e3f0978cd0cd4992df5",
      "tree": "cafde2296e78599fc6804b7ad202c7269933eecc",
      "parents": [
        "ade169ae157dfdd0ad29a9e2355f849154367cfa",
        "e13f44aeb9909fb821560f6f178c1b0c4d204a55"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 11 20:05:49 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 11 20:05:49 2019 +0000"
      },
      "message": "Merge \"train info pull atom\""
    },
    {
      "commit": "fdc55931c8a4679befd18c405a49f11297f8f4c5",
      "tree": "bbb495953780a3170b688c188988d785b8be64e8",
      "parents": [
        "2148e7f00994e9b6b8cbd2dd89c27b7829196867"
      ],
      "author": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Wed Jan 30 10:43:15 2019 +0000"
      },
      "committer": {
        "name": "Ben Murdoch",
        "email": "benm@google.com",
        "time": "Mon Feb 11 19:18:44 2019 +0000"
      },
      "message": "Update AppCompacted WW atom to include device ZRAM usage.\n\nWe log free ZRAM in kilobytes before and after the compaction event.\n\nTest: manually verified am_compact and statsd logging looks correct.\nBug: 123623746\n\nChange-Id: I20d5991fb1d060584d415b76c30769fe9f049ffd\n"
    },
    {
      "commit": "bd2901a730539ca4de0cf7c64744d1fe5fb71d4b",
      "tree": "6c4d10740b2cd4687e877258cd55ea50141aa799",
      "parents": [
        "ed4edf29c11e8979e4516295ccc7f42ac06717f1"
      ],
      "author": {
        "name": "Steven Wu",
        "email": "stwu@google.com",
        "time": "Mon Feb 11 13:22:18 2019 -0500"
      },
      "committer": {
        "name": "Steven Wu",
        "email": "stwu@google.com",
        "time": "Mon Feb 11 13:22:18 2019 -0500"
      },
      "message": "Add bubbles UI logging for permission dialog shown.\n\nBug: 123543171\nTest: manual\nChange-Id: Ia285b848379113f3249979b4bcd3487eae47016e\n"
    },
    {
      "commit": "e3e969c8549c4e9cdfe5315bec87897c4f47fb60",
      "tree": "ba6aa4cf7af03f9daf5c219f4b1258babbaa1539",
      "parents": [
        "2148e7f00994e9b6b8cbd2dd89c27b7829196867"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Mon Feb 11 11:22:51 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Mon Feb 11 11:23:23 2019 +0000"
      },
      "message": "Add tests for AtomMetricStats.\n\nTest: atest statsd_test\nChange-Id: I44c365b58e9a28f9c1ed4e4b2dfbccd4841c7c74\n"
    },
    {
      "commit": "520e6616c3880123acc5680bd88720e3a26ead0f",
      "tree": "d5d079055a94082b98c0f5c0d8ff639969b324f6",
      "parents": [
        "45d5afbf3004a7a496164a420a4f6a71e4cf6e7e",
        "2cdb8cddf4d5f305735f81016072e52bcc28295c"
      ],
      "author": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Fri Feb 08 20:44:36 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 08 20:44:36 2019 -0800"
      },
      "message": "Merge \"Atom: add more information to BluetootSocketConnectionStateChanged\" am: 1d9ca12d91 am: aaf19427cf\nam: 2cdb8cddf4\n\nChange-Id: I1a1723106e054ce1ecce5b482f2bdf57740aaa3c\n"
    },
    {
      "commit": "2cdb8cddf4d5f305735f81016072e52bcc28295c",
      "tree": "c5daf3d07372a25052c8d65801b4802a7a186121",
      "parents": [
        "0c6ecd8406313ad5960c3afb4d60095ee287332b",
        "aaf19427cf4778b4fb04cbe8a9e642c317506eb8"
      ],
      "author": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Fri Feb 08 20:32:26 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 08 20:32:26 2019 -0800"
      },
      "message": "Merge \"Atom: add more information to BluetootSocketConnectionStateChanged\" am: 1d9ca12d91\nam: aaf19427cf\n\nChange-Id: I29d72e24c899794f3f1816912b81acc53e51efc4\n"
    },
    {
      "commit": "23cb02edec99878160eea5180e0314f25bb3ec95",
      "tree": "d9d207e46871c37f88a011335991a24462bffb54",
      "parents": [
        "aa4eecad07a64af155542ffcc30aaf8dcbd31601",
        "e5a37fb4773dcb9c9a3a440386dc785c4a691cec"
      ],
      "author": {
        "name": "Kevin Chyn",
        "email": "kchyn@google.com",
        "time": "Sat Feb 09 01:46:22 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 09 01:46:22 2019 +0000"
      },
      "message": "Merge \"Rename BiometricHalDeathReported to be futute-proof and extendable\""
    },
    {
      "commit": "aa92c88243c3dd1ffbfcabb0e57a29861c1d3823",
      "tree": "ca0d0ef2a3e2a2df74f091913cdb868a0cdcf79f",
      "parents": [
        "ad7b649bd0eda289b9ff762f2339fb705fcb8c3d",
        "a9a310ec54729a7007954a6c45453b3f6d68a3d5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 09 01:07:49 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 09 01:07:49 2019 +0000"
      },
      "message": "Merge \"metric activation on boot\""
    },
    {
      "commit": "e5a37fb4773dcb9c9a3a440386dc785c4a691cec",
      "tree": "059bd3f0870bc758e84babfe6c1e65a263b65678",
      "parents": [
        "a30095d965a634494fdd8f83a60a9c1fba43f773"
      ],
      "author": {
        "name": "Kevin Chyn",
        "email": "kchyn@google.com",
        "time": "Fri Feb 08 13:10:36 2019 -0800"
      },
      "committer": {
        "name": "Kevin Chyn",
        "email": "kchyn@google.com",
        "time": "Fri Feb 08 14:39:10 2019 -0800"
      },
      "message": "Rename BiometricHalDeathReported to be futute-proof and extendable\n\nAdds two more system health issues to the new atom\n\nFixes: 124110923\n\nTest: Builds\nChange-Id: I4a617363d1dcefe551124178d66114fa7d490153\n"
    },
    {
      "commit": "e26f4ee555be161f987aa71085f6249305863ba1",
      "tree": "0eba665dd2b465957b789250d8c3da9d590105ae",
      "parents": [
        "625e4b6e2b5a860d820244a0d9bd8ec397debb2b",
        "ec216489fc63974e5260cd87e3e6e25b1ddbee11"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 08 20:13:14 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 08 20:13:14 2019 +0000"
      },
      "message": "Merge \"Remove the IncidentHeaderProto dependency from statsd.\""
    },
    {
      "commit": "3ba2e93342c225d37648d753e9b7c839a99cf0db",
      "tree": "5e862d2391322a06b59ce6924604d29b86be96f0",
      "parents": [
        "2a464632d023023977dad0fc1ec60b10c1ab5a23"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Fri Feb 08 14:25:35 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Fri Feb 08 14:26:08 2019 +0000"
      },
      "message": "Tracks the delay between the pull and the actual bucket boundary.\n\nTest: atest statsd_test\nChange-Id: I08880eafb54d599c9d1adb3c23b19af1f7fac886\n"
    },
    {
      "commit": "2a464632d023023977dad0fc1ec60b10c1ab5a23",
      "tree": "532a588359f0a55d7d90e4f6836357a61d683ce5",
      "parents": [
        "fcc4357533b9e7ecf316494213750a609746eb2c",
        "11203df2a2e774c62297c76202253a3ccf154cc3"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Fri Feb 08 13:33:10 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 08 13:33:10 2019 +0000"
      },
      "message": "Merge \"Unify the way we process events on condition change and bucket boundaries.\""
    },
    {
      "commit": "11203df2a2e774c62297c76202253a3ccf154cc3",
      "tree": "725afb865d9741b39e001bcbc30c836d30078323",
      "parents": [
        "f0cdc78790c4eecea498be370667d247e16e3ee1"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Feb 06 13:18:09 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Fri Feb 08 11:43:40 2019 +0000"
      },
      "message": "Unify the way we process events on condition change and bucket\nboundaries.\n\n- We now always process empty data and events that exceeds the max delay\nin a consistent way\n\n- Fix one bug which caused base data not to be reset, e.g.\nbucket h+1 on condition change to true, we pull the following data (key A / value 1, key B / value 2)\nbucket h+2 on bucket boundary, we pull the following data (key A / value 2)\nIn this case the previous code, did not reset Key B. It should be reset\nsince it is not present in the most recent data.\n\nTest: atest statsd_test\nBug: 124046337\nChange-Id: I19456bbe1529e72befbb621be185ce24bd65077a\n"
    },
    {
      "commit": "2310b1901043a49a5c60dc17ae228022ed6beff8",
      "tree": "f040fa6e028a0d8f96a5c1d7a82d4e1ca72dac48",
      "parents": [
        "3e555b6f6f19b59bfd4ccc5de55a1d93ba755611"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Fri Feb 08 10:23:05 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Fri Feb 08 10:23:49 2019 +0000"
      },
      "message": "Fix bug: metricIds are truncated\n\nmetricIds are int64 not int\n\nTest: atest statsd_test\nChange-Id: I928e0173c1621a2a29cd938175160ec28df5d0fa\n"
    },
    {
      "commit": "fce424f854e3d83e0814548c4f94d4424f0a6408",
      "tree": "fdb81b93bf78aebea214490b5e0842c7a23ad89a",
      "parents": [
        "14f9d36c082c3dc43fa01819b92010ca2cdae35e",
        "6ecc570bc341d06abac84409cb95ffb4b1973620"
      ],
      "author": {
        "name": "Kevin Chyn",
        "email": "kchyn@google.com",
        "time": "Fri Feb 08 07:21:27 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 08 07:21:27 2019 +0000"
      },
      "message": "Merge \"Update puller method to support other modalities\""
    },
    {
      "commit": "e13f44aeb9909fb821560f6f178c1b0c4d204a55",
      "tree": "b1db67d23bbfb429d3c7b58e5614fb67eab0e41c",
      "parents": [
        "f5ce5eddaea62cfdf36d5502ba2b87bc961780eb"
      ],
      "author": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Thu Feb 07 17:51:38 2019 -0800"
      },
      "committer": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Thu Feb 07 17:52:52 2019 -0800"
      },
      "message": "train info pull atom\n\nBug: 122807604\nTest: will add gts\nChange-Id: I2d6bdee1c5f17d5b2dc341a110605b6aaa6f4947\n"
    },
    {
      "commit": "e4ae0e7516271888b597c846e033076e19b2949d",
      "tree": "4a4ddba8bef68a56bc2ab3428d0cbd12b85b98a2",
      "parents": [
        "21b38267fa281b27a8ecac799a4f941f5b9519b8"
      ],
      "author": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Thu Feb 07 13:52:45 2019 -0800"
      },
      "committer": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Thu Feb 07 17:44:46 2019 -0800"
      },
      "message": "Atom: add more information to BluetootSocketConnectionStateChanged\n\n* Add server_port field to track the server port number of a socket\n* Add socket_role field to track whether the socket is a server listener\n  or a connection socket\n* Add uid field to track the owner of the socket\n\nBug: 112969790\nTest: make, test drive with statsd\nChange-Id: I0c86b724c748844009b8120befd454fb96137a61\n"
    },
    {
      "commit": "dd4895f5b42aba88f413ace3f72082d6ba6b69b6",
      "tree": "7fad6c01ce35d0b944bcddccf21ea590925d96fd",
      "parents": [
        "1f0613f65925c6110260690efa9f448f48a972fb",
        "11257ca36e8a2458e3e55ce67af554e74c9f29fd"
      ],
      "author": {
        "name": "Ahmed ElArabawy",
        "email": "arabawy@google.com",
        "time": "Thu Feb 07 23:25:45 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 07 23:25:45 2019 +0000"
      },
      "message": "Merge \"Statsd atom: Add WifiLock type\""
    },
    {
      "commit": "a9a310ec54729a7007954a6c45453b3f6d68a3d5",
      "tree": "231b89bc8cd70a64b839cf115e2291433d118ce9",
      "parents": [
        "da123a8e392e83d63f728fe37a998b335c5b6a47"
      ],
      "author": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Wed Feb 06 13:40:10 2019 -0800"
      },
      "committer": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Thu Feb 07 10:54:55 2019 -0800"
      },
      "message": "metric activation on boot\n\nBug: 123038368\nTest: unit test\nChange-Id: Id374bdfd8d15264ada0e7bac0388080be308ac8f\n"
    },
    {
      "commit": "509d87c201bef48752c94af812137712bbdd059b",
      "tree": "bd7b08f3b8a6feb1532021c7ac7985e78defa825",
      "parents": [
        "f0cdc78790c4eecea498be370667d247e16e3ee1",
        "da01ea5b1cf324ca4d083696618131c5ba1c0cee"
      ],
      "author": {
        "name": "Andrei-Valentin Onea",
        "email": "andreionea@google.com",
        "time": "Thu Feb 07 18:07:24 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 07 18:07:24 2019 +0000"
      },
      "message": "Merge \"Add whitelist atom field option Whitelisted atoms can be triggered from any source Test: stats-log-api-gen-test Bug: 119217680 Change-Id: Ia5faed04d696b59ba4ffaab13f5046f943d8a8b7\""
    },
    {
      "commit": "ec216489fc63974e5260cd87e3e6e25b1ddbee11",
      "tree": "a939ad229631db40895d8dc57a72af83d8bdf10b",
      "parents": [
        "a28aa5e6ec9e9be09b8c7982e1479760e35d79bb"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Feb 06 16:45:40 2019 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Feb 07 09:45:13 2019 -0800"
      },
      "message": "Remove the IncidentHeaderProto dependency from statsd.\n\n+ IncidentReportArgs takes the bytes instead of IncidentHeaderProto object\n\nThis cl is the ag/6287053 + build fix.\n\nTest: incidentd_test \u0026\u0026 statsd_test\nChange-Id: I86bcb48f4ab212b36ca4611a1fa05faace9c3702\n"
    },
    {
      "commit": "808bfd196f63e2bc33edeb7d9eba608edac72a03",
      "tree": "907a9abcab64ef3448efa4db95d412ba19c3b6dc",
      "parents": [
        "31e6a70ca1f4c92da43468cb1da67b0e68773f10"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Feb 06 14:52:58 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Thu Feb 07 15:59:56 2019 +0000"
      },
      "message": "Flush the bucket before creating a partial bucket.\n\n- this is consistent with what we do in onConditionChanged, we first\ncall flushBucketIfNecessary and then pull the data\n- fixed a bug when partial bucket is not created and previous full\nbucket is dropped\n\nThere are lots of tests changed because the bucket is now flushed after\nonDataPulled. Also the interval value/base change because of the flush\nso the value has already become the base and the intervals have been\ntrimmed.\n\nTest: atest statsd_test\nBug: 123985255\nChange-Id: Ia1b07106656c1fb12e3d761c69998cde86d72239\n"
    },
    {
      "commit": "31e6a70ca1f4c92da43468cb1da67b0e68773f10",
      "tree": "8602f9ba4944af913b7c9023c1d750b995685cea",
      "parents": [
        "c63d6c2aa7471edddd28cab767f889f261967300",
        "320952bf7d09a05bc196917bf045b08b9bbfe701"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Thu Feb 07 14:57:38 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 07 14:57:38 2019 +0000"
      },
      "message": "Merge \"Track the number of buckets dropped.\""
    },
    {
      "commit": "c63d6c2aa7471edddd28cab767f889f261967300",
      "tree": "905664c8854023683cb494bf6bcad41758b1c323",
      "parents": [
        "2d0c0e786f0cf33653ac210805348e7430f9dec9",
        "3061ca23812aac258954c1dbc427d3079000c33d"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Thu Feb 07 13:16:05 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 07 13:16:05 2019 +0000"
      },
      "message": "Merge \"Fix test: the event should be from the previous bucket\""
    },
    {
      "commit": "320952bf7d09a05bc196917bf045b08b9bbfe701",
      "tree": "648facd9f8d3ee938314f6f2d8daeb2caa2c1207",
      "parents": [
        "2d0c0e786f0cf33653ac210805348e7430f9dec9"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Feb 06 13:57:24 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Thu Feb 07 12:58:55 2019 +0000"
      },
      "message": "Track the number of buckets dropped.\n\nTest: atest statsd_test\nChange-Id: I56973d2c87aaed0f1c4a6908682cc54cda39eceb\n"
    },
    {
      "commit": "9ed7c41017a6d7f1f66e122435c5e736a6a8d6f2",
      "tree": "9c9ecf821b947bed0e3cf91b817f8796ad731f8a",
      "parents": [
        "1fc8cdeae0ccc6ceb247516ccaafbd563b260726"
      ],
      "author": {
        "name": "Nandana Dutt",
        "email": "nandana@google.com",
        "time": "Thu Feb 07 09:35:48 2019 +0000"
      },
      "committer": {
        "name": "Nandana Dutt",
        "email": "nandana@google.com",
        "time": "Thu Feb 07 12:24:32 2019 +0000"
      },
      "message": "Revert \"Remove the IncidentHeaderProto dependency from statsd.\"\n\nThis reverts commit df6255a0c1b0932a51e98a32441d3332af837634.\nReason for revert: Breaks git master\nTest: manual confirm\n\nChange-Id: Ifd8f437dce826fe7d8f875fc838a250fc010049a\n"
    },
    {
      "commit": "3061ca23812aac258954c1dbc427d3079000c33d",
      "tree": "413705b7de186e5dd23a75a2c84d040f287cf1e4",
      "parents": [
        "a32d905c36eac8879134b7bca73c181bd22e4d5d"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Feb 06 13:18:09 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Thu Feb 07 11:14:58 2019 +0000"
      },
      "message": "Fix test: the event should be from the previous bucket\n\nTest: atest statsd_test\nChange-Id: I2da34ba542bf8552cdb79314fde4cecc279bad70\n"
    },
    {
      "commit": "2b92401717ed7491581c78d45c5f457f63a721be",
      "tree": "fdb6dda5beb2a75b62734f8a0c01cb118eabefd5",
      "parents": [
        "d7fb7d59a11cb725d480cc43b73ebb10849d451b",
        "df6255a0c1b0932a51e98a32441d3332af837634"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 07 04:16:40 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 07 04:16:40 2019 +0000"
      },
      "message": "Merge \"Remove the IncidentHeaderProto dependency from statsd.\""
    },
    {
      "commit": "df6255a0c1b0932a51e98a32441d3332af837634",
      "tree": "d2c8ad2da8184bef6ef0ea2784f8f1fdf11ceb8f",
      "parents": [
        "a28aa5e6ec9e9be09b8c7982e1479760e35d79bb"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Feb 06 16:45:40 2019 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Feb 06 17:02:17 2019 -0800"
      },
      "message": "Remove the IncidentHeaderProto dependency from statsd.\n\n+ IncidentReportArgs takes the bytes instead of IncidentHeaderProto object\n\nTest: incidentd_test \u0026\u0026 statsd_test\nChange-Id: Ifb0929ca374a8791cdf8f79f74bdd7c91521139e\n"
    },
    {
      "commit": "d8b03e69c337e09c5816532c6d86e886c9405213",
      "tree": "cfc97752dcf3d6fe7b9dc775ebee2f77d141b561",
      "parents": [
        "a7a0578481c0d7898e23dbbadb9496969ac02035",
        "552f63f99d61025935567671472da216f65739f0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 06 23:58:37 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 06 23:58:37 2019 +0000"
      },
      "message": "Merge \"Add bubbles developer error logging.\""
    },
    {
      "commit": "c3a29ed5dd40314c2cb29b8f2ce79b561d8e8b1b",
      "tree": "65e1ab107b1cf86bf506a3bbb266f19db0d7695e",
      "parents": [
        "a58f0da3c7d3584b9d5017511720806fd527a2fc",
        "7abb3185eb604dc6b69a18645bf42955b5b9526d"
      ],
      "author": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Wed Feb 06 13:06:45 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 06 13:06:45 2019 -0800"
      },
      "message": "Merge \"Atom: Add BluetoothSocketConnectionStateChanged\" am: 502900a093\nam: 7abb3185eb\n\nChange-Id: I30bbedb1c755e0b911faaa412ebf731d8a123e38\n"
    },
    {
      "commit": "c714dca08d2ccaab9f38ee9e8e96a6ae07486921",
      "tree": "dafcb5d290c08c78dbc5f2c68d6952246f48d3f1",
      "parents": [
        "1c267874d7292ea792e25f92890596b6a8767e33",
        "c7939cba3d857b8688d79d5f4a6ba58920cedb1b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 06 20:12:37 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 06 20:12:37 2019 +0000"
      },
      "message": "Merge \"Persist active metrics to disk and read back\""
    },
    {
      "commit": "9c30c7c6ba784e1100f7626ef4ce0bcbd8ff6cfb",
      "tree": "320b6715152b894f1c2d5949461094cb4e02991e",
      "parents": [
        "1fe970651fbe535317e5efd8d9e40313b1ac0660"
      ],
      "author": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Wed Jan 30 17:24:55 2019 -0800"
      },
      "committer": {
        "name": "Jack He",
        "email": "siyuanh@google.com",
        "time": "Wed Feb 06 11:12:08 2019 -0800"
      },
      "message": "Atom: Add BluetoothSocketConnectionStateChanged\n\n* Logs when a Bluetooth socket\u0027s connection state is changed\n* A Bluetooth socket can be:\n  - RFCOMM socket\n  - SCO socket\n  - BR/EDR L2CAP socket\n  - BLE L2CAP socket\n\nBug: 112969790\nTest: make, test drive with statsd\nChange-Id: I97b1e650e197a0dad1e2959e2f5b4dd98370d892\nMerged-In: I97b1e650e197a0dad1e2959e2f5b4dd98370d892\n(cherry picked from commit 815cdbaae0577654a6c019abbbd6d596e8cdb703)\n"
    },
    {
      "commit": "da01ea5b1cf324ca4d083696618131c5ba1c0cee",
      "tree": "3175aec8e374c4f59b15e656f0ef5afdd9db90f0",
      "parents": [
        "72be7c2a2f200a94435f6edd9c4c5be6e5185f50"
      ],
      "author": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Wed Jan 30 15:28:36 2019 +0000"
      },
      "committer": {
        "name": "Andrei Onea",
        "email": "andreionea@google.com",
        "time": "Wed Feb 06 18:55:06 2019 +0000"
      },
      "message": "Add whitelist atom field option\nWhitelisted atoms can be triggered from any source\nTest: stats-log-api-gen-test\nBug: 119217680\nChange-Id: Ia5faed04d696b59ba4ffaab13f5046f943d8a8b7\n"
    },
    {
      "commit": "552f63f99d61025935567671472da216f65739f0",
      "tree": "413a3c9c52d9c8e3878fab14780a5c1e14896513",
      "parents": [
        "8333721a67c317e0de5eb44395dd7150cf56e13c"
      ],
      "author": {
        "name": "Steven Wu",
        "email": "stwu@google.com",
        "time": "Tue Feb 05 13:41:36 2019 -0500"
      },
      "committer": {
        "name": "Steven Wu",
        "email": "stwu@google.com",
        "time": "Wed Feb 06 13:00:26 2019 -0500"
      },
      "message": "Add bubbles developer error logging.\n\nBug: 123543171\nTest: manual\nChange-Id: Ica4954b0754be45ccd365d406d13c73e8c3c7689\n"
    },
    {
      "commit": "c7939cba3d857b8688d79d5f4a6ba58920cedb1b",
      "tree": "6c9b0f13726e5d551378445e61762a057ed82eb4",
      "parents": [
        "d8a309221cb002ce1c87cedea274b34e38a90207"
      ],
      "author": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Mon Feb 04 17:25:45 2019 -0800"
      },
      "committer": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Wed Feb 06 09:54:38 2019 -0800"
      },
      "message": "Persist active metrics to disk and read back\n\nFor metric activation that spans across boots, we need to persist active\nmetrics onto disk upon shutdown and load them on boot.\n\nBug: 123904359\nTest: unit test\nChange-Id: I5a4142a42595c8c132175fb574c3aa2ad30dcac0\n"
    },
    {
      "commit": "8333721a67c317e0de5eb44395dd7150cf56e13c",
      "tree": "e34775f5c713d6468b716f0609d3c6f018aeccc4",
      "parents": [
        "e8c4958b2f1bd08d87506eb6a86065daead2b74c",
        "9a5d359879b5e2f7e7c0730b04242d81dd10a5c8"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Feb 06 15:10:36 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 06 15:10:36 2019 +0000"
      },
      "message": "Merge changes I300ab05c,I0910b7db\n\n* changes:\n  Adds the concept of invalid bucket.\n  Reset the base when pull fails.\n"
    },
    {
      "commit": "9a5d359879b5e2f7e7c0730b04242d81dd10a5c8",
      "tree": "0d12c13b5752f6ced7c1f26e930bc53a81efb2db",
      "parents": [
        "c5f11c40064e4ba3a3aa66d58e466ae54005c4ac"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Tue Feb 05 15:12:39 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Feb 06 13:36:55 2019 +0000"
      },
      "message": "Adds the concept of invalid bucket.\n\nWhenever a pull fails, we cannot compute a correct metric for this\nbucket. Whether the failures happen at the beginning, in the middle or\nat the end of the bucket, we cannot trust the data inside the bucket.\n\nLet\u0027s say we have a metric with a screen on condition, a bucket size of\n4 hours and we have the following events:\n- h+0 bucket start -- screen is on -- data pull failed\n- h+2 screen off -- pull succeed\n- h+3 screen on -- pull succeed\n- h+4 bucket end -- screen on -- pull succeed\n\nThe current logic will be wrong, it will ignore any data between h+0\nand h+2. That timespan might be a huge contributor of the total bucket\nvalue so this is wrong to keep any data from this bucket.\n\nWe also extend the concept of invalid buckets to other problems like a\npull being too long.\n\nBug: 123866830\nTest: atest statsd_test\nChange-Id: I300ab05cd7582cd2d7af9167de8d99b349071f0d\n"
    },
    {
      "commit": "c5f11c40064e4ba3a3aa66d58e466ae54005c4ac",
      "tree": "c7875ef2ecc35e72c7cee97fc67794dfd7b686dc",
      "parents": [
        "af41d5f7bde649305d20b7d179755acb916ed3ce"
      ],
      "author": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Tue Feb 05 12:44:58 2019 +0000"
      },
      "committer": {
        "name": "Olivier Gaillard",
        "email": "gaillard@google.com",
        "time": "Wed Feb 06 12:49:07 2019 +0000"
      },
      "message": "Reset the base when pull fails.\n\nWithout resetting the base, we will compute the wrong diff when we have\na condition change.\n\nMove the responsability of handling failures to the PullReceivers. This\nis more consistent with #onConditionChanged which does handle the\nfailure cases.\n\nWe also always compute nextPullTimeNs in order to only call onDataPulled\non bucket boundaries. The current code does not update nextPullTimeNs\nwhich means a new alarm might trigger a pull and onDataPulled in the\nmiddle of the bucket. The behavior in this case is undefined.\n\nBug: 123181864\nTest: atest statsd_test\nChange-Id: I0910b7db26a0de764436c46c8d7d11cafa52dcd9\n"
    },
    {
      "commit": "4a0ca94109fb272b57921deab9333fa43aa2ca31",
      "tree": "f6ec9acc13641ad7beb5c29d4d91ccda0c13e729",
      "parents": [
        "51a197d06f2c9fb5414a04361611099791fb0971"
      ],
      "author": {
        "name": "Michael Groover",
        "email": "mpgroover@google.com",
        "time": "Thu Jan 24 17:41:25 2019 -0800"
      },
      "committer": {
        "name": "Michael Groover",
        "email": "mpgroover@google.com",
        "time": "Tue Feb 05 16:20:37 2019 -0800"
      },
      "message": "Use StatsLog to log packages denied access to device identifiers\n\nBug: 123646983\nTest: statsd_testdrive 146\nChange-Id: I33836a4bad338316e092ebe4a4fce2a49f839696\n"
    },
    {
      "commit": "b76cebc3a01c5246cdd1c84da07424a4d8b93cfa",
      "tree": "a754f818db0a4822311c7acb1d3b97392690bce9",
      "parents": [
        "40c96fbc42c5a3a92dab9859bc77e0098b7b51a2"
      ],
      "author": {
        "name": "Maggie White",
        "email": "maggiewhite@google.com",
        "time": "Tue Feb 05 15:21:29 2019 -0800"
      },
      "committer": {
        "name": "Maggie White",
        "email": "maggiewhite@google.com",
        "time": "Tue Feb 05 16:01:35 2019 -0800"
      },
      "message": "Add DEGRADE into HardwareErrorCode\n\nBug: 120215794\nTest: Build pass\nChange-Id: Ic5799f514c71f4821d4ef0b25d332f6e3b7f6172\nSigned-off-by: Robert Lee \u003clerobert@google.com\u003e\nSigned-off-by: Maggie White \u003cmaggiewhite@google.com\u003e\n"
    },
    {
      "commit": "5107527a03da72794fe5ad8e7bafee74a5783122",
      "tree": "b115bc5cc33f2713f7d0a27b0ed6585bb98cc9fd",
      "parents": [
        "da5f5c85354e23c48b7b07f02f71ab351134a893",
        "2c96b5acf3b97198a35a72520dadc3691090a632"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 05 07:22:39 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 05 07:22:39 2019 +0000"
      },
      "message": "Merge \"Fix KeyValuePairsAtom\""
    },
    {
      "commit": "2c96b5acf3b97198a35a72520dadc3691090a632",
      "tree": "39830c3d2d92324e3b00e6e8dc9b39374aca330f",
      "parents": [
        "a0abb02d4f99815e83d8c58d54869f01033353e1"
      ],
      "author": {
        "name": "Tej Singh",
        "email": "singhtejinder@google.com",
        "time": "Mon Feb 04 21:28:49 2019 -0800"
      },
      "committer": {
        "name": "Tej Singh",
        "email": "singhtejinder@google.com",
        "time": "Mon Feb 04 21:28:49 2019 -0800"
      },
      "message": "Fix KeyValuePairsAtom\n\nThe field of the FieldValue was not properly being set in LogEvent for\nmany of the types in the KeyValuePairsAtom.\n\nTest: manual inspeciton of logcat\nTest: modified unit tests and made sure they passed\nChange-Id: I445a2d3051cfa86affe45ea9a3fe69794f962eff\n"
    },
    {
      "commit": "080619f1da669af00c25fd6cf78d3ab74898159c",
      "tree": "cef6a9623107c3646e04707bdea8ec0ebbd649f6",
      "parents": [
        "3edb01f10adf74544f04ca18cf9601c40cab06a9",
        "6dcd8578cb52488ac30ffccbab9ec0052b4ae8e0"
      ],
      "author": {
        "name": "Maggie White",
        "email": "maggiewhite@google.com",
        "time": "Tue Feb 05 00:57:03 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 05 00:57:03 2019 +0000"
      },
      "message": "Merge \"atoms: Fix HardwareErrorCode to match Stats HAL definition\""
    }
  ],
  "next": "6dcd8578cb52488ac30ffccbab9ec0052b4ae8e0"
}
