)]}'
{
  "log": [
    {
      "commit": "74fed9729fdabff8d2c5a3da89eac26b5aff21d4",
      "tree": "bd7b0bdb948bceadab3c8664f8792350e13a6c5f",
      "parents": [
        "6f45a394c55e7b2cfe58e52da3a2254e70d71e54"
      ],
      "author": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Mon Nov 27 14:42:42 2017 -0800"
      },
      "committer": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Tue Nov 28 22:58:24 2017 -0800"
      },
      "message": "Update adb command to remove all configs from statsd\n\nBefore this change we were only clearing configs from disk.\nThis change will allow clearing from memory as well. Also,\nthis change fixes a bug where the iterator moves to the next\nelement before removing the key from mConfigReceivers\n\nTest: statsd, statsd_test\n\nChange-Id: I9f5e0aced9b89bae7b19ae6d8490c076557fbb08\n"
    },
    {
      "commit": "3e585ecb513bf8294cc36a4d8d6da97b9726ab22",
      "tree": "01517a5213f421a592e013d41606dfdbd2bb24e0",
      "parents": [
        "aafee0d4e69be06be53e3b3c6ca478e628985b89",
        "69f1baf7dd3d6e595abdae000adf0f197558d0ea"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 28 06:58:54 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 28 06:58:54 2017 +0000"
      },
      "message": "Merge \"Some fixes in StatsdStats, and add some unit tests\""
    },
    {
      "commit": "72ca875ec4551314ecf6d13903693d95c4a2a097",
      "tree": "adb949407374e9c699d6c00557a2e66791811ecd",
      "parents": [
        "a81df1b71463b958cb75c0b5fc0f9ac99cd82977",
        "8de6939c494da838f6dbbda0631f66425dbbd25b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 28 05:16:35 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 28 05:16:35 2017 +0000"
      },
      "message": "Merge \"Thread-safe metric producers.\""
    },
    {
      "commit": "69f1baf7dd3d6e595abdae000adf0f197558d0ea",
      "tree": "7e5bf73441517148786c10d8a2f6312ba69d3ea3",
      "parents": [
        "c8862caf4f2deebe7e81f8a291233fa1035ecdd4"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon Nov 27 17:25:36 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon Nov 27 20:45:16 2017 -0800"
      },
      "message": "Some fixes in StatsdStats, and add some unit tests\n\n+ Add timestamp for when metric data is reported.\n\nTest: statsd_test\n\nChange-Id: Ief5ec5172feed4ec74b7422b77cf69ec8361ef2f\n"
    },
    {
      "commit": "593f56cc811a8a0577044f73d4553cd122de9b43",
      "tree": "17a72bf29fdb4acd0551eaa4908b4fd8ea5dac1e",
      "parents": [
        "5b8f69b08eca8f497ffe56ca61c4e6b96d99929a",
        "d1fd2425f744ab46a87dec4ed4d3f0680e819dbc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 28 01:59:57 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 28 01:59:57 2017 +0000"
      },
      "message": "Merge \"statsd informs incidentd of anomalies\""
    },
    {
      "commit": "64b00066fe0729c50ddbc08a7ff142ab6efd3eb5",
      "tree": "8e571e3e2d6300bbbd5d4c6f2d427ffc0fddf50d",
      "parents": [
        "bd0cdcdcc7c5d6df66b45a2e49a113d81ce21004",
        "cc5adef2d0c5f96a225fd69517fd1eecb557f46d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 28 01:17:44 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 28 01:17:44 2017 +0000"
      },
      "message": "Merge \"Statsd anomaly detection - fixes\""
    },
    {
      "commit": "72671a1864a88c68354622f469fb863f0ef1de18",
      "tree": "b5c72bd8833631ea52e0b7089711536d76301b5e",
      "parents": [
        "d7150e0ae638e08b7cc261a895d67752117ff203",
        "10535b9ad0b8be8f07d27f1d6a13372be31cbf65"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 28 00:21:07 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 28 00:21:07 2017 +0000"
      },
      "message": "Merge \"Reject the config if condition config has errors. And add log tag.\""
    },
    {
      "commit": "d1fd2425f744ab46a87dec4ed4d3f0680e819dbc",
      "tree": "3522b50ef1cde93a19a788535c95275134ccd336",
      "parents": [
        "cc5adef2d0c5f96a225fd69517fd1eecb557f46d"
      ],
      "author": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Wed Nov 22 15:21:03 2017 -0800"
      },
      "committer": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Mon Nov 27 15:54:49 2017 -0800"
      },
      "message": "statsd informs incidentd of anomalies\n\nWhen an anomaly is detected by statsd, it passes to incidentd the\ninformation specified in the config.\n\nTest: manual (using the fake config) saw in logcat that incidentd was\ncalled (reportIncident)\nChange-Id: I0a257b49db706d7b14a2976fb7e62c3c3535725f\n"
    },
    {
      "commit": "cc5adef2d0c5f96a225fd69517fd1eecb557f46d",
      "tree": "d2e3099200fb40ba1ff3b75c68d47f380a76a221",
      "parents": [
        "d12e276f6ae35a1e889c6d4de97688903c49001b"
      ],
      "author": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Tue Nov 21 14:36:23 2017 -0800"
      },
      "committer": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Mon Nov 27 15:35:40 2017 -0800"
      },
      "message": "Statsd anomaly detection - fixes\n\nFixes a few items in AnomalyTracker, especially to do with what happens\nwhen an anomaly alarm fires.\n\nTest: unit tests still pass\nChange-Id: Ia89bd617442e952e587336b890c3ca67430b5e21\n"
    },
    {
      "commit": "8de6939c494da838f6dbbda0631f66425dbbd25b",
      "tree": "aaa6fe3ede15c7a886162a4ec61420d2a8dc3134",
      "parents": [
        "d12e276f6ae35a1e889c6d4de97688903c49001b"
      ],
      "author": {
        "name": "Yangster",
        "email": "yanglu@google.com",
        "time": "Mon Nov 27 13:48:29 2017 -0800"
      },
      "committer": {
        "name": "Yangster",
        "email": "yanglu@google.com",
        "time": "Mon Nov 27 15:21:57 2017 -0800"
      },
      "message": "Thread-safe metric producers.\n\nTest: unit test passed\nChange-Id: Ie47404e8649b63ee8ac32e40189a47f6cb7a9def\n"
    },
    {
      "commit": "7b460b994b1562392dc56c6606473186328ca79b",
      "tree": "d4e91740850a47afd1c7edb49afb093a93b498b1",
      "parents": [
        "dcfe47bac2ced204fd2d0d4209012017971af1eb",
        "c7bdc6291df427f2de9ba191246065f5ff87e11f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 27 23:06:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 27 23:06:55 2017 +0000"
      },
      "message": "Merge \"Fix a bug in StorageManager.\""
    },
    {
      "commit": "10535b9ad0b8be8f07d27f1d6a13372be31cbf65",
      "tree": "96d6024f58855e9e8cef45a6794f5142a2505fcf",
      "parents": [
        "c8862caf4f2deebe7e81f8a291233fa1035ecdd4"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon Nov 27 11:31:55 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon Nov 27 14:15:36 2017 -0800"
      },
      "message": "Reject the config if condition config has errors. And add log tag.\n\nTest: added unit test.\nChange-Id: I7108350978f7c1d0e8e87f22082e19fc76a75631\n"
    },
    {
      "commit": "c8862caf4f2deebe7e81f8a291233fa1035ecdd4",
      "tree": "43429a5fd7fcd62796e8415ad63ee7c31fd56da1",
      "parents": [
        "7cf056ac8ef2df6295dbb1cd51aba4cf8b4bad52",
        "f94a51876dc2952a10a568cfdb344b314ca8943c"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon Nov 27 22:02:29 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 27 22:02:29 2017 +0000"
      },
      "message": "Merge \"Revert \"Reject the config if condition config has errors. And add log tag.\"\""
    },
    {
      "commit": "f94a51876dc2952a10a568cfdb344b314ca8943c",
      "tree": "5fbb0e0891c3840de5a5bf905a5457131b930b7f",
      "parents": [
        "c9fa2f6d4ea5c3f6730bee67646c0423f5693640"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon Nov 27 21:52:34 2017 +0000"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon Nov 27 21:52:34 2017 +0000"
      },
      "message": "Revert \"Reject the config if condition config has errors. And add log tag.\"\n\nThis reverts commit c9fa2f6d4ea5c3f6730bee67646c0423f5693640.\n\nChange-Id: I91de13f8a102c58bbd3dfc37b09c977e78119854\n"
    },
    {
      "commit": "1b5be51fd968628d9b7541697800920642da9b22",
      "tree": "4e5926a58f075d258c78dda74e4962b8f9749cd2",
      "parents": [
        "3df6366091a5b89b72aca42020a2120e7ade2cfb",
        "c9fa2f6d4ea5c3f6730bee67646c0423f5693640"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 27 21:29:12 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 27 21:29:12 2017 +0000"
      },
      "message": "Merge \"Reject the config if condition config has errors. And add log tag.\""
    },
    {
      "commit": "c7bdc6291df427f2de9ba191246065f5ff87e11f",
      "tree": "9b59826965e92bac3c4a15c4a16078a15b795a42",
      "parents": [
        "bc8c25a40789dee7e102a7de700042d7d570e759"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Mon Nov 27 12:54:21 2017 -0800"
      },
      "committer": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Mon Nov 27 12:54:41 2017 -0800"
      },
      "message": "Fix a bug in StorageManager.\n\nTest: Ran statsd and statsd_test.\n\nChange-Id: I2390c6d2c493981177b08d3861d7bee621253af3\n"
    },
    {
      "commit": "c9fa2f6d4ea5c3f6730bee67646c0423f5693640",
      "tree": "f0e9588c005a52b3ab56a6173b549286639095eb",
      "parents": [
        "16fd2e9a9a0a064491196d02957c7e94eaa870a7"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon Nov 27 11:31:55 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon Nov 27 11:35:59 2017 -0800"
      },
      "message": "Reject the config if condition config has errors. And add log tag.\n\nTest: added unit test.\nChange-Id: I5a9d6de2492b94bc5f1c88524f743607e60226c1\n"
    },
    {
      "commit": "b356151e63140085cb96fa16804ee18b3862a4fc",
      "tree": "ecb892f399742cc0d7190b7700379b1a120bcb1e",
      "parents": [
        "16fd2e9a9a0a064491196d02957c7e94eaa870a7"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Tue Nov 21 18:07:17 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon Nov 27 10:52:54 2017 -0800"
      },
      "message": "Add StatsdStats and guardrail.\n\n+ StatsdStats is the global class that tracks the stats about statsd.\n\n+ Added guardrail for classes that have a map which could potentially grow\n  unboundedly with the number of logs.\n\nTODO: add unit tests \u0026 CTS for StatsdStats, and guardrail\n      add stats for pulled atoms.\n\nTest: statsd_test\n\nChange-Id: I0ea562de4dd3f6162f7923a9c193420b482c1d51\n"
    },
    {
      "commit": "09294efe8898a72809a72b9af1855f85244a29ce",
      "tree": "4e77dee3ed7b94834fd1ab469e2dedbe1244af30",
      "parents": [
        "7250622b47397bd05983aa5655f18fb5cc757cb4"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Sat Nov 25 19:54:01 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Sat Nov 25 20:09:22 2017 -0800"
      },
      "message": "Fix some bugs in duration tracker.\n\nThere are some bugs in the previous big anomaly detection cl, which I didn\u0027t catch.\n\nTest: statsd_test\nChange-Id: I2ca22e0f112e5cff8fb204c0c94141188659fdba\n"
    },
    {
      "commit": "7250622b47397bd05983aa5655f18fb5cc757cb4",
      "tree": "84925e76d5dfe78ca1e8dc05f50cbae3a324eea8",
      "parents": [
        "c6a55e5bb04d861ccfb3a981b41b9465138379b9"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Sat Nov 25 15:33:09 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Sat Nov 25 15:33:09 2017 -0800"
      },
      "message": "Fix statsd crash caused by non-existing data folder.\n\nTest: manual\nChange-Id: Ie470279929ff6ce40c4828a3cdda6d78542a3caa\n"
    },
    {
      "commit": "a98bd9989e88896c2caf945bf52c9164587bffc3",
      "tree": "709beaaf90169242319b09966dcaae835a4e755e",
      "parents": [
        "40a910f31d754d51f5bad471d695403ce5b30848",
        "947fbce521d9e8377df03e3c1c31884ed5577f32"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 23 04:52:35 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 23 04:52:35 2017 +0000"
      },
      "message": "Merge \"Captures metrics on disk when devices reboot and shutdown. Specifically,\""
    },
    {
      "commit": "40a910f31d754d51f5bad471d695403ce5b30848",
      "tree": "c30c3ef34286c165f43ab112ae85fb95d95f7470",
      "parents": [
        "e8ebb8cd8df1d453918dfb6cf6711e69dee1126d",
        "c18abedfe29eb51fec14797ecf0bb101d22900b2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 23 04:04:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 23 04:04:55 2017 +0000"
      },
      "message": "Merge \"Fixes out of range bug in SimpleConditionTracker.\""
    },
    {
      "commit": "947fbce521d9e8377df03e3c1c31884ed5577f32",
      "tree": "cc8bda1b030cf36f30ac1a6a9078291c73d2db16",
      "parents": [
        "74b1513fe69cbf641e2dd84bc37194db80c39480"
      ],
      "author": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Wed Nov 15 22:50:23 2017 -0800"
      },
      "committer": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Wed Nov 22 18:39:23 2017 -0800"
      },
      "message": "Captures metrics on disk when devices reboot and shutdown. Specifically,\n\n1. Create intent receiver in StatsCompanionService to listen to shutdown\nevents.\n2. Create StatsWriter class to handle disk writes and deleting files.\n3. Update StatsLogProcessor, ConfigManager, and StatsService to handle\nfiles on disk using StatsWriter.\n4. Add a wrapper for ConfigMetricsReport.\n\nStill TODO is to be able to add a guardrail to prevent accumulating\nexcessive amount files on disk, which will be followed up by another\nchange.\n\nTest: statsd, statsd_test\nChange-Id: Ia0b3af315af545daa8b0078b3700c600aa7c285f\n"
    },
    {
      "commit": "c18abedfe29eb51fec14797ecf0bb101d22900b2",
      "tree": "fbe8e2dd3ce3fa840de942ad4f898393dbe5ab48",
      "parents": [
        "916c83d2271d6d536e3ca2ea2b57892d9a15470c"
      ],
      "author": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Wed Nov 22 16:47:59 2017 -0800"
      },
      "committer": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Wed Nov 22 16:49:11 2017 -0800"
      },
      "message": "Fixes out of range bug in SimpleConditionTracker.\n\nOne of the unit tests was flaky because mStopAllLogMatcherIndex may\nbe greater than the size of eventMatcherValues, so we access an\nelement that is greater than the vector size.\n\nTest: Check unit-tests still work. Flake is a bit hard to find.\nChange-Id: Ib177cd0ae00bbe7aa6982c6ec31d9094253a9c10\n"
    },
    {
      "commit": "74b1513fe69cbf641e2dd84bc37194db80c39480",
      "tree": "a5faf0c898b5299fbdbb1aa398cb96b065da7a97",
      "parents": [
        "9f36f6b3f4bdebf18e1af8ff4789d66cde85a2bc",
        "756cd48749eb63592b4cf8f6e16f7366debec054"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 23 00:26:48 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 23 00:26:48 2017 +0000"
      },
      "message": "Merge \"Set the metric name for alerts in fake config and add a test to make sure the fake config is valid..\""
    },
    {
      "commit": "7c334a129e93e405a72e8299a1cd928af079d14f",
      "tree": "654c6e4115c465fa69667a64e4628c9b2769ea28",
      "parents": [
        "916c83d2271d6d536e3ca2ea2b57892d9a15470c"
      ],
      "author": {
        "name": "Yangster",
        "email": "yanglu@google.com",
        "time": "Wed Nov 22 14:24:24 2017 -0800"
      },
      "committer": {
        "name": "Yangster",
        "email": "yanglu@google.com",
        "time": "Wed Nov 22 14:28:00 2017 -0800"
      },
      "message": "Make member function as const whenever possible.\n\nTest: unit tests passed.\nChange-Id: I751cabf305a4b5aa2095853cc951837da0df4c78\n"
    },
    {
      "commit": "756cd48749eb63592b4cf8f6e16f7366debec054",
      "tree": "fe6f5f541a76d726e81889b05b16f07d316445b0",
      "parents": [
        "916c83d2271d6d536e3ca2ea2b57892d9a15470c"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Tue Nov 21 21:58:44 2017 -0800"
      },
      "committer": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Wed Nov 22 13:43:25 2017 -0800"
      },
      "message": "Set the metric name for alerts in fake config and add a test to make sure the fake config is valid..\n\nTest: unit test passed.\nChange-Id: I1879fc523cca9fc6c672332ab4ac383f21dc16fc\n"
    },
    {
      "commit": "9cc3890dd1fb8184836935395000a212dccc9f46",
      "tree": "297b6e13068c1f4e569538cf8cefb25452123a60",
      "parents": [
        "181704c9629a6dabedb378a565463e60c072494a",
        "7c8f0a521e9b466bb6b8cef74bcd677a9aed4014"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 22 06:55:52 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 22 06:55:52 2017 +0000"
      },
      "message": "Merge \"Fix the fake statsd config. Better error messages.\""
    },
    {
      "commit": "9f089f60eba28c1e6b107c260623ab99567d1e4f",
      "tree": "77e9e9fbc21e2917190cdb7d930f6df2f92f4388",
      "parents": [
        "56cc25489eb2a006a5c19e12dfebf4612e99acad",
        "741d0002cdd062d949a88b5b81a3dba7d3115198"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Nov 22 04:32:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 22 04:32:55 2017 +0000"
      },
      "message": "Merge \"Revert \"Add a wrapper ConfigMetricReportList to hold multiple ConfigMetricReports\"\""
    },
    {
      "commit": "741d0002cdd062d949a88b5b81a3dba7d3115198",
      "tree": "c89e852697f0ef83fc704e5fe7098e8a794de947",
      "parents": [
        "24904b845f6257f3d6be5374a1e11d67715034c6"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Nov 22 04:30:33 2017 +0000"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Nov 22 04:30:33 2017 +0000"
      },
      "message": "Revert \"Add a wrapper ConfigMetricReportList to hold multiple ConfigMetricReports\"\n\nThis reverts commit 24904b845f6257f3d6be5374a1e11d67715034c6.\n\nBroke the build when combined with Ia58d215d30ed7570c0aa1b0627d3b88f8355d425.\n\nChange-Id: Ie54a62ec7471e0183fc2627e06648efda0129a7a\n"
    },
    {
      "commit": "52c4cf38ae980a431175c9d4354134537177d3fc",
      "tree": "d04cfcfcf401cf32b7f5ef70685f0b969fc23233",
      "parents": [
        "005b50086862b43db0278a4f27e19d287ff1cefc",
        "1ff4f4325882d812ded4f75ee6c2b6d352a85c9e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 22 02:16:02 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 22 02:16:02 2017 +0000"
      },
      "message": "Merge \"Statsd test app.\""
    },
    {
      "commit": "cb8f36286e45c34a0a48213de9081149f0a23536",
      "tree": "b5e9c2832429b1c863a282c1d9d311ce576c9141",
      "parents": [
        "2ffa7f0d126b7d072889cc8b8fed5233c9061e9f",
        "24904b845f6257f3d6be5374a1e11d67715034c6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 22 02:12:14 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 22 02:12:14 2017 +0000"
      },
      "message": "Merge \"Add a wrapper ConfigMetricReportList to hold multiple ConfigMetricReports\""
    },
    {
      "commit": "34644ce9d0482a793ef65687b3c7349dc52862e8",
      "tree": "6fc258259430c012d015e50671d2ec789b36fe59",
      "parents": [
        "abb2b9af586d2f1684414697d2ff7a49f6e894d8",
        "9e3808cb5449588a59ae07416f7561edc979b370"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 22 00:33:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 22 00:33:06 2017 +0000"
      },
      "message": "Merge \"Adds atom when error is written to dropbox.\""
    },
    {
      "commit": "1ff4f4325882d812ded4f75ee6c2b6d352a85c9e",
      "tree": "285d48f7f5d8e4b5ab7a349c8ae0af96f45ffa8f",
      "parents": [
        "8cfd3d03de5d96797d00b0a4dbdce46be6d8dde1"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Nov 16 17:01:40 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Tue Nov 21 16:22:42 2017 -0800"
      },
      "message": "Statsd test app.\n\nFeatures:\n+ Push baseline config to statsd\n+ Have buttons to write events to StatsLog (plug/unplug, screen on/off, wake locks)\n+ Dump stats log report, and display it on screen (currently support DurationMetricData display).\n\nTest: manual\n\nChange-Id: Ia58d215d30ed7570c0aa1b0627d3b88f8355d425\n"
    },
    {
      "commit": "d215a23179c90eb9f953704fa3ee9c5e9d6dc1df",
      "tree": "76c847b7788125f4d990317ade0c860e4ca1ed52",
      "parents": [
        "acabfe919883bc22c21c89f92a13fb6364b23e69",
        "8d9989bb376f3937d9c8fef07c9cc65ef78cbcae"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 22 00:01:12 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 22 00:01:12 2017 +0000"
      },
      "message": "Merge \"The first step towards adding a guardrail.\""
    },
    {
      "commit": "7c8f0a521e9b466bb6b8cef74bcd677a9aed4014",
      "tree": "34b7f0c5379920844c0936b35a7fa2ed344b62d3",
      "parents": [
        "e9a4b16ea117284362e8317503d3979abe755f7a"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Tue Nov 21 14:49:09 2017 -0800"
      },
      "committer": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Tue Nov 21 14:50:01 2017 -0800"
      },
      "message": "Fix the fake statsd config. Better error messages.\n\nTest: Ran statsd.\n\nChange-Id: Ib3d35024a4929702bc470a8bde267b24a4d867de\n"
    },
    {
      "commit": "24904b845f6257f3d6be5374a1e11d67715034c6",
      "tree": "af65e87006dab9bdab1925513ae874465aa1fe42",
      "parents": [
        "1e7010087727848a715ecfbc97be9d569dc36868"
      ],
      "author": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Mon Nov 20 16:12:21 2017 -0800"
      },
      "committer": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Tue Nov 21 21:36:22 2017 +0000"
      },
      "message": "Add a wrapper ConfigMetricReportList to hold multiple\nConfigMetricReports\n\nTest: statsd, statsd_test\nChange-Id: Ic1ec6e5a31aebb36a1f39a4836e82d97c8be0dfc\n"
    },
    {
      "commit": "9e3808cb5449588a59ae07416f7561edc979b370",
      "tree": "f2fc73a28429c9fc8ee1d49a121f767ac7f0a9e7",
      "parents": [
        "1e7010087727848a715ecfbc97be9d569dc36868"
      ],
      "author": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Mon Nov 20 17:25:34 2017 -0800"
      },
      "committer": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Tue Nov 21 13:33:09 2017 -0800"
      },
      "message": "Adds atom when error is written to dropbox.\n\nWe log some of the key fields that indicate an error or crash. For\nmemory reasons, we can\u0027t transfer the entire stack trace into statsd.\n\nTest: Manually observed logging while using an app that crashed.\nChange-Id: I7085277a22a7ba8642b432998280ef59eb1074b9\n"
    },
    {
      "commit": "a82d460baf0989c7f2eaf36f7e3669748a1a91fd",
      "tree": "a9f33221c1c5a2ee5025ff3a9c65816603113c10",
      "parents": [
        "d28ce0e9e4dde97249047a08f00e2a1ecaf96cfe",
        "a81a0ffa52ca31f31589e2a94d3c5ade1c3bd5c2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 21 19:16:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 21 19:16:21 2017 +0000"
      },
      "message": "Merge \"Sync proto from google3\""
    },
    {
      "commit": "3d8600a07466d13e695fbcfeef7c64ff1f0971eb",
      "tree": "2a34ef6e7a78d673821b13defa20adaab0d2d342",
      "parents": [
        "3f297c11a9f1975424cca54bb8726fa4c2edadcb",
        "884970e0ba74c96f7c375454d3c58bb3fdc0bf46"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Nov 21 05:58:09 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 21 05:58:09 2017 +0000"
      },
      "message": "Merge \"Define PacketWakeup pushed events for statds\""
    },
    {
      "commit": "884970e0ba74c96f7c375454d3c58bb3fdc0bf46",
      "tree": "0677da650ba8c8daaec73c8443c8d184caf0d6b3",
      "parents": [
        "b92f1eed1b42193d861344851ab4ea2ab4c47860"
      ],
      "author": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Nov 14 22:42:46 2017 +0900"
      },
      "committer": {
        "name": "Hugo Benichi",
        "email": "hugobenichi@google.com",
        "time": "Tue Nov 21 10:02:03 2017 +0900"
      },
      "message": "Define PacketWakeup pushed events for statds\n\nThis patch pushes packet wakeup events collected by\nNetdEventListenerService into the statds service.\n\nExample logs from $ adb logcat -b stats\n11-20 23:33:25.955   955   972 I [44]    : [10014,wlan0,34525,10:e:7e:26:3f:c1,2001:db8:400d:c0b::bc,2001:db8:4:fd00:a00a:dbc8:f5ba:4269,6,5228,49411]\n11-20 23:37:05.809   955  1473 I [44]    : [10014,wlan0,2048,10:e:7e:26:3f:c1,192.168.0.142,192.168.0.39,6,443,45422]\n11-20 23:42:09.233   955  1473 I [44]    : [10014,wlan0,2048,10:e:7e:26:3f:c1,192.168.12.238,192.168.0.39,6,443,40160]\n11-20 23:55:28.162   955  1207 I [44]    : [10059,wlan0,34525,10:e:7e:26:3f:c1,2001:db8:4004:807::200a,2001:db8:4:fd00:a00a:dbc8:f5ba:4269,6,443,42492]\n11-20 23:59:18.343   955  1888 I [44]    : [10059,wlan0,34525,10:e:7e:26:3f:c1,2001:db8:4004:807::200a,2001:db8:4:fd00:a00a:dbc8:f5ba:4269,6,443,42491]\n11-21 00:00:17.952   955  3341 I [44]    : [10014,wlan0,34525,10:e:7e:26:3f:c1,2001:db8:400d:c0b::bc,2001:db8:4:fd00:a00a:dbc8:f5ba:4269,6,5228,49411]\n11-21 00:13:05.552   955  1473 I [44]    : [-1,wlan0,34525,10:e:7e:26:3f:c1,2001:db8:4004:805::200a,2001:db8:4:fd00:a00a:dbc8:f5ba:4269,6,443,38098]\n11-21 00:13:50.606   955  1207 I [44]    : [-1,wlan0,2048,10:e:7e:26:3f:c1,192.168.5.238,192.168.0.39,6,443,40802]\n\nBug: 28806131\nTest: runtest frameworks-net\nChange-Id: I5a3c76498a4b720f0d9308a65b5dd4b32377d0d1\n"
    },
    {
      "commit": "e2cd6d509b17894b95d14523ae3e7c4c7a9a74e3",
      "tree": "2b7ad7cfd0e1f17634e62cea253cc013572fb4ee",
      "parents": [
        "809565b7690ee6d5a504f04c5730d07841a54443"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Thu Nov 09 20:38:30 2017 -0800"
      },
      "committer": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Mon Nov 20 15:37:24 2017 -0800"
      },
      "message": "1/ Duration anomaly tracker with alarm.\n2/ Init anomaly from config based on the public language.\n3/ Unit tests for anomaly detection in count/gauge producer.\n4/ Revisit the duration tracker logic.\n\nTest: unit test passed.\nChange-Id: I2423c0e0f05b1e37626954de9e749303423963f2\n"
    },
    {
      "commit": "29f69e8f0442f78dba468a15e290fe94729263a5",
      "tree": "34551761c4019377408c1a7964fabf92c4a3dc6a",
      "parents": [
        "28306600e6769ce708897d2a2c6b852228e2a9de"
      ],
      "author": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Sun Nov 19 14:56:37 2017 -0800"
      },
      "committer": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Mon Nov 20 11:13:19 2017 -0800"
      },
      "message": "Remove IStatsCallback aidl from master\n\nTest: statsd, statsd_test\n\nChange-Id: Idd0fb945b62f3a139a0db07f1014a3c4a4e2f5f8\n"
    },
    {
      "commit": "b92f1eed1b42193d861344851ab4ea2ab4c47860",
      "tree": "14d5ecb0575c746e1844066d71b6d442b1d38246",
      "parents": [
        "0afe0849656ebc854821fcf287577347f8123679",
        "9c98c05b6fd59ed5695a0d636780259905a416cd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 20 03:44:51 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 20 03:44:51 2017 +0000"
      },
      "message": "Merge \"2 updates to storing configs on disk\""
    },
    {
      "commit": "9c98c05b6fd59ed5695a0d636780259905a416cd",
      "tree": "f0ffb198d76bcff61c183483dae6d27943f6f31c",
      "parents": [
        "b3bd84d71dec39ed8af73724ad8504fe9e5d0cfb"
      ],
      "author": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Sun Nov 19 14:33:56 2017 -0800"
      },
      "committer": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Sun Nov 19 14:33:56 2017 -0800"
      },
      "message": "2 updates to storing configs on disk\n\n1. When an existing config is updated, remove the outdated config from\ndisk to stop accumulating configs.\n2. Check disk to remove configs to make sure we delete lingering files\nthat does not live on memory.\n\nTest: statsd, statsd_test, manual\nChange-Id: Iedce4b6eb99a3d36bb5e1d1ccc0d88c84859e8f5\n"
    },
    {
      "commit": "0afe0849656ebc854821fcf287577347f8123679",
      "tree": "13c04c65d80b754351af9332c0745e39986249b2",
      "parents": [
        "e6f7ed873c47f402500500e17eb2530914453483",
        "cfed20bce8a66bde6ad0d74a44fc0a2764b2886d"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Sun Nov 19 05:04:25 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Nov 19 05:04:25 2017 +0000"
      },
      "message": "Merge \"Update statsd_config.proto.\""
    },
    {
      "commit": "e6f7ed873c47f402500500e17eb2530914453483",
      "tree": "c46b88e7906a45f5e9631576a5374e1e780b48d5",
      "parents": [
        "43699661dd43337939b6c682659b7e5beb0d6709",
        "ae6a83a1cd729376fda3a849714b529f9666f4cb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Nov 19 04:58:53 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Nov 19 04:58:53 2017 +0000"
      },
      "message": "Merge \"Fix a memory leak in LogEvent\""
    },
    {
      "commit": "8d9989bb376f3937d9c8fef07c9cc65ef78cbcae",
      "tree": "68e318840a296207746f8e2d5c43ebf04d76fa01",
      "parents": [
        "ae6a83a1cd729376fda3a849714b529f9666f4cb"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Sat Nov 18 18:54:50 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Sat Nov 18 19:26:07 2017 -0800"
      },
      "message": "The first step towards adding a guardrail.\n\nAdded a malloc debug cmd to find memory leak and where\nthe most heap allocations are with backtrace.\n\nMore info: malloc_debug/README.md\n\nThe util class is borrowed from audio server.\n\nUsage:\n\nadb shell stop\nadb shell setprop libc.debug.malloc.program statsd\nadb shell setprop libc.debug.malloc.options backtrace\nadb shell start\nadb shell cmd stats meminfo\n\nAlso,\n\nadb shell dumpsys meminfo [statsd_pid]\n\nalso gives you the overall summary of the memory usage.\n\nTest: manual\n\nChange-Id: I4eb4167466a748ea0c3d9fd39e45d9900bc00fc2\n"
    },
    {
      "commit": "ae6a83a1cd729376fda3a849714b529f9666f4cb",
      "tree": "e1e81736e5899197076575f5cdcdb8e7ebc23ea2",
      "parents": [
        "fe945d189a6b0206b95fbb76155835e0743d487a"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Sat Nov 18 18:56:52 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Sat Nov 18 18:56:52 2017 -0800"
      },
      "message": "Fix a memory leak in LogEvent\n\nMy previous understanding of the liblog api was wrong. Luckily it\nis caught in time. Also added a memory profiling tool in another CL.\n\nTest: statsd_test\n      adb shell dumpsys meminfo\n      adb shell cmd stats meminfo\n\nChange-Id: I742af2a38e52e35edf0d4c77ccc35ede7019a73b\n"
    },
    {
      "commit": "cfed20bce8a66bde6ad0d74a44fc0a2764b2886d",
      "tree": "852ac6731a3dd9134f83bf2d657ec655dd753ebb",
      "parents": [
        "0f02aeb66c1d97be773f105ac78c9c6e606e935c"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Sat Nov 18 09:26:53 2017 -0800"
      },
      "committer": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Sat Nov 18 15:58:10 2017 -0800"
      },
      "message": "Update statsd_config.proto.\n\nTest: Ran statsd tests.\n\nChange-Id: I3a83bdfb38be82d70ca547825152370df8bca9cc\n"
    },
    {
      "commit": "30b6a20c99d043e36d41851d80250bfdf2810556",
      "tree": "16144ad22bbf8ca200a4944ff07e76fa85790525",
      "parents": [
        "fe945d189a6b0206b95fbb76155835e0743d487a"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Sat Nov 18 14:14:38 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Sat Nov 18 14:14:38 2017 -0800"
      },
      "message": "Don\u0027t just clear mPastBuckets when onDumpReport is called.\n\nThis needs to be done properly. Left a TODO.\n\nTest: statsd_test\nChange-Id: I8537f0a870ab82039e0822c69096784403ee1651\n"
    },
    {
      "commit": "fe945d189a6b0206b95fbb76155835e0743d487a",
      "tree": "35dca2341d24ad9473383c0c0424cdba86997c75",
      "parents": [
        "834e4084bbb6ec37ec6555a8aa8622d2bd5ce30c",
        "4d889e635d1def2a0475c509ef6f471d9371fcf0"
      ],
      "author": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Sat Nov 18 18:39:16 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 18 18:39:16 2017 +0000"
      },
      "message": "Merge \"Resolve segfault when running send-broadcast command while statscompanion service is not connected\""
    },
    {
      "commit": "3f9278b7da6b5d8dde2b20e2c7f03900585c46ba",
      "tree": "8b4748f2cfb3606b0cf466b477fe327748da095d",
      "parents": [
        "f16340fce62d90fa054ececcb0e90e277cbffbda",
        "75f0a4d3941813c8b3f1a4361531202fa741e0bf"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Nov 18 03:50:01 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 18 03:50:01 2017 +0000"
      },
      "message": "Merge \"Use ProtoOutputStream\u0027s bytesWritten to properly estimate the size of EventMetricsData on memory\""
    },
    {
      "commit": "75f0a4d3941813c8b3f1a4361531202fa741e0bf",
      "tree": "7346193099d17bfeb4bc56019061a855c3a2933e",
      "parents": [
        "b3bd84d71dec39ed8af73724ad8504fe9e5d0cfb"
      ],
      "author": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Fri Nov 17 17:20:45 2017 -0800"
      },
      "committer": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Fri Nov 17 17:48:36 2017 -0800"
      },
      "message": "Use ProtoOutputStream\u0027s bytesWritten to properly estimate the size of\nEventMetricsData on memory\n\nTest: statsd, statsd_test\nChange-Id: I6fc90c5d9303fe6cab582afb03c480969a6dc5a5\n"
    },
    {
      "commit": "4aa167736b2e680f5a297844ce6b8bd6f8603f9f",
      "tree": "cd1b5e7f85fcdf72da4653ce2bb51f20c71122dc",
      "parents": [
        "b3bd84d71dec39ed8af73724ad8504fe9e5d0cfb",
        "0ea19901ef78de19437c08bbcbb7af6663ad6f4b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Nov 18 01:42:24 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 18 01:42:24 2017 +0000"
      },
      "message": "Merge \"One more feature in DurationMetric -- nesting on top of Or and Max\""
    },
    {
      "commit": "4d889e635d1def2a0475c509ef6f471d9371fcf0",
      "tree": "7144659ef2b33fd3df1059907bd2bfd0a9f815f4",
      "parents": [
        "b3bd84d71dec39ed8af73724ad8504fe9e5d0cfb"
      ],
      "author": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Fri Nov 17 15:44:48 2017 -0800"
      },
      "committer": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Fri Nov 17 17:36:07 2017 -0800"
      },
      "message": "Resolve segfault when running send-broadcast command while\nstatscompanion service is not connected\n\nTest: statsd, statsd_test\n\nChange-Id: Ie98de1884f8d852c31c14db146d3da44cfc5aa8b\n"
    },
    {
      "commit": "fe7a60e9ae193e3b7abe75412381be079f4ae390",
      "tree": "04e5e9dd8a8d2f6d63f1c1cd245f88106643b228",
      "parents": [
        "3b50381a137e34b97760b5956e010ae843cbae49",
        "1d7b0cd6b54e3b3ec8efdffd47b40cdd54c4e8d7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Nov 18 00:48:34 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 18 00:48:34 2017 +0000"
      },
      "message": "Merge \"Support StatsD sending broadcasts.\""
    },
    {
      "commit": "aedbfdfa4812ee16e24c6e7e07d97684b91f046a",
      "tree": "4af2194399493dabce24afab74a9007b29e1742e",
      "parents": [
        "24c992479799c8330f6b837d504bac7970310947",
        "3fca5ba3a7cb4a5090b0c9cd6c4710836afd9c3e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 17 23:06:50 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 17 23:06:50 2017 +0000"
      },
      "message": "Merge \"Fix incorrect adb shell cmd help command for pull-source\""
    },
    {
      "commit": "1d7b0cd6b54e3b3ec8efdffd47b40cdd54c4e8d7",
      "tree": "8bb111077bb65a183ae0ce0740c42e380981b4f6",
      "parents": [
        "24c992479799c8330f6b837d504bac7970310947"
      ],
      "author": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Wed Nov 15 14:20:04 2017 -0800"
      },
      "committer": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Fri Nov 17 14:57:50 2017 -0800"
      },
      "message": "Support StatsD sending broadcasts.\n\nStatsD will send a broadcast when we\u0027re 90% of the way to our\nallocated memory limit for the configuration. If the memory usage\ngoes over the limit, we just lose all the data for this config.\n\nAlso modifies the adb shell commands to facilitate debugging of the\nbroadcasts.\n\nTest: Manually tested on marlin-eng with custom gmscore code.\n\nChange-Id: I517a15bd4c959aa221802f84a51f13141a725102\n"
    },
    {
      "commit": "e8f0660c0bd178677551ffdb5612215523cc9d5d",
      "tree": "eaf4863f6877a124861570f519f5f87e8e74cca1",
      "parents": [
        "164d43002f3bb2618dd96bcf144a505aed6b0b84",
        "80235403d2a80eee1c23dbe856d18194b1b93843"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 17 22:16:22 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 17 22:16:22 2017 +0000"
      },
      "message": "Merge \"statsd: parse the new format of stats log\""
    },
    {
      "commit": "3fca5ba3a7cb4a5090b0c9cd6c4710836afd9c3e",
      "tree": "1e1fd136596a83e0e6d1118762629110fd1a7ac0",
      "parents": [
        "87c58f95e9485e24660f645216ac7d8b924741e7"
      ],
      "author": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Fri Nov 17 13:22:52 2017 -0800"
      },
      "committer": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Fri Nov 17 13:22:52 2017 -0800"
      },
      "message": "Fix incorrect adb shell cmd help command for pull-source\n\nTest: statsd should pass, but it\u0027s not required as it\u0027s just an update\nin help instruction.\n\nChange-Id: I36f4e4794ae8066abdeaac98db5e679a3bcf0a06\n"
    },
    {
      "commit": "13378dd01acefebfb872d0cdff123b98253ee43d",
      "tree": "f522cca6866e7a2b3eae96b83148efef668b6fef",
      "parents": [
        "3674b32218dc3bd38a30be2737b9f62234c90852",
        "7ee94150ab5ad435d8dd4e9715a5547e16863292"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 17 20:14:01 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 17 20:14:01 2017 +0000"
      },
      "message": "Merge \"fix the permission check crash in statsd.\""
    },
    {
      "commit": "80235403d2a80eee1c23dbe856d18194b1b93843",
      "tree": "5014d19013bcaabe27d990e8e2e11dc5e6e4724f",
      "parents": [
        "efe5f129ad2f0c8dbdbadf68a219169e423413cf"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon Nov 13 20:42:25 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Fri Nov 17 11:53:15 2017 -0800"
      },
      "message": "statsd: parse the new format of stats log\n\n+ Changed how we construct LogEvent, now it\u0027s based on the context from log_msg\n  without making a copy of the list.\n\n+ All stats logs now have the same event tag, the atom id is the first elem in the log.\n\nTest: statsd_test\nChange-Id: I4419380f2ee1c2b2155d427b9f2adb78883b337f\n"
    },
    {
      "commit": "7ee94150ab5ad435d8dd4e9715a5547e16863292",
      "tree": "0ab3052ab3e95d823ec5c76db1a460b8f76fd8cf",
      "parents": [
        "902cb0b68bdd889063d90de52b24f2aea8990ae2"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Fri Nov 17 09:44:40 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Fri Nov 17 10:20:30 2017 -0800"
      },
      "message": "fix the permission check crash in statsd.\n\nAnd change the fake config uid to be 1000, so we can dump it from the test app.\n\nTest: manual\nChange-Id: I99b4cd28b351add8cf3e315e1dccf8cf511a0be8\n"
    },
    {
      "commit": "04dacb54cc8de84603d6dccdb3bfa1e2614832e8",
      "tree": "4d7347cdcdc1643e94e794e972dc2f196d3eeefe",
      "parents": [
        "cd8d0c07e76df20b891c41c45aac7ec646a21b63",
        "87d983cf6f609cf3467d05d92bba30329953fbdb"
      ],
      "author": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Fri Nov 17 02:16:07 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 17 02:16:07 2017 +0000"
      },
      "message": "Merge \"Write statsd configuration to disk and add cmd to clear it\""
    },
    {
      "commit": "87d983cf6f609cf3467d05d92bba30329953fbdb",
      "tree": "4ba4e72413ae7e66c680864c304bf9ed87475cbb",
      "parents": [
        "fb9ec66ef025fed04b12c90a0c279a8b0296cfb8"
      ],
      "author": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Tue Nov 14 21:31:43 2017 -0800"
      },
      "committer": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Thu Nov 16 16:25:34 2017 -0800"
      },
      "message": "Write statsd configuration to disk and add cmd to clear it\n\nTest: statsd, statsd_test\nChange-Id: Iba37a7f295256d24969185bdde6cbf28f9b89a55\n"
    },
    {
      "commit": "5b968dbe29d7d5cda5de650f6b2e410eb80c14c9",
      "tree": "8f8c03ff60df7a37fb1e04bf25f501c210060ad2",
      "parents": [
        "fb9ec66ef025fed04b12c90a0c279a8b0296cfb8",
        "d41c4220d06875cea2d19a7991c3227bd56ea611"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 16 21:28:10 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 16 21:28:10 2017 +0000"
      },
      "message": "Merge \"Fix some bugs found in statsd\""
    },
    {
      "commit": "a81a0ffa52ca31f31589e2a94d3c5ade1c3bd5c2",
      "tree": "e19eb6d44689e133b45f034dcd918e9631bed1bb",
      "parents": [
        "d41c4220d06875cea2d19a7991c3227bd56ea611"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Nov 16 10:10:30 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Nov 16 10:15:46 2017 -0800"
      },
      "message": "Sync proto from google3\n\nDefault initial value for Condition changed to false\n\nTest: statsd_test\n\nChange-Id: I73ad80d873f2ff1264d18b1eec6d882ad0e9bb6f\n"
    },
    {
      "commit": "62462871b50480acc19ada846787ec7c3ee462bb",
      "tree": "37c5a48de7b28f99fc0d303281d211f76ca7fd51",
      "parents": [
        "a73e165c2ea0bb6499b89dd335d6ef878c92b8e9",
        "de4ca10e10463393bd5b4b11c30b795fc3998059"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 16 18:01:22 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 16 18:01:22 2017 +0000"
      },
      "message": "Merge \"Update statsd proto comment\""
    },
    {
      "commit": "d41c4220d06875cea2d19a7991c3227bd56ea611",
      "tree": "b91a1a2185fd64a379e52be2e5352f542903e800",
      "parents": [
        "a786f00f069c33aab5171f615cb3e35ed1755ede"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Nov 15 19:26:14 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Nov 16 09:25:53 2017 -0800"
      },
      "message": "Fix some bugs found in statsd\n\n+ in log matcher, condition tracker and duration metric\n\nTest: added unit test\nChange-Id: Id633e856ba5453842487321d7ddc0c64100e4bb8\n"
    },
    {
      "commit": "de4ca10e10463393bd5b4b11c30b795fc3998059",
      "tree": "d035e3f163c7bf4b2a07a809be40fa3f8ee207bc",
      "parents": [
        "1610206b04c16bccd0847b7af1faa2ece523850e"
      ],
      "author": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Wed Nov 15 22:57:24 2017 -0800"
      },
      "committer": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Wed Nov 15 22:58:01 2017 -0800"
      },
      "message": "Update statsd proto comment\n\nTest: not needed.\nChange-Id: I2f0c16f2e305624128eaca4658d5ccb9f2a20fe5\n"
    },
    {
      "commit": "42753a512e2719ca078851a62760a19890641e6f",
      "tree": "f61e3976b22ab4c4345765da7e0efaa3e184bd75",
      "parents": [
        "3c31b2f32a78a7944332e1d126df9917d04409af",
        "0feae94babf0518ac28b7c529b4e16762d48e6de"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 16 03:34:55 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 16 03:34:55 2017 +0000"
      },
      "message": "Merge \"Fix AOSP copyright years in statsd\""
    },
    {
      "commit": "0ea19901ef78de19437c08bbcbb7af6663ad6f4b",
      "tree": "4f3c4879af8ba0b7e96509a163a5c0780e7565c8",
      "parents": [
        "a786f00f069c33aab5171f615cb3e35ed1755ede"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Nov 15 15:44:45 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Nov 15 16:45:59 2017 -0800"
      },
      "message": "One more feature in DurationMetric -- nesting on top of Or and Max\n\n+ Added counters to count the starts.\n\nTest: added some unit test in statsd_test.\n\nTODO: ADD MORE UNIT TESTS\n\nChange-Id: I3575e921a4abab27c4ea50fffde19cc1d4564030\n"
    },
    {
      "commit": "0feae94babf0518ac28b7c529b4e16762d48e6de",
      "tree": "e262d1057ceb7b7477430c21fbd3e84b0c8d6c74",
      "parents": [
        "1610206b04c16bccd0847b7af1faa2ece523850e"
      ],
      "author": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Wed Nov 15 14:38:48 2017 -0800"
      },
      "committer": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Wed Nov 15 14:39:22 2017 -0800"
      },
      "message": "Fix AOSP copyright years in statsd\n\nTest: no test needed\n\nChange-Id: I230b7d51eb00dafb16913d038475c3ac14b44096\n"
    },
    {
      "commit": "5c925ad04ffe959e8fb00253b20daf1f7128b8d6",
      "tree": "baeb11a79bc4c17186bd148b180a863231a69c15",
      "parents": [
        "a786f00f069c33aab5171f615cb3e35ed1755ede"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Nov 15 14:15:46 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Nov 15 14:22:37 2017 -0800"
      },
      "message": "Sync the DurationMetric proto from google3.\n\nThere are other statsd_config changes for Anomaly detection, but requires\ncode change. So will sync later.\n\nTest: statsd_test\nChange-Id: I927e99bd0763cb949fe339993b232f53a4eefe7a\n"
    },
    {
      "commit": "c783baca1e3062652dab2d7258df61dfa6a30d7b",
      "tree": "9fb945b6a5f256920cda0e4c8357b19ba3ed1d6d",
      "parents": [
        "ea0baebfb93806f9b1c5d90186b354872a82257c",
        "ae2df01aae2ee7076af875c04e991140f685f733"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Tue Nov 14 22:03:54 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 14 22:03:54 2017 +0000"
      },
      "message": "Merge \"Rename \"stats_events\" as \"atom\".\""
    },
    {
      "commit": "341775bfefdbe24821dd80a4d5ea4b976f1bf051",
      "tree": "921c14a5e5e3608b2122c44a921e45a87556f766",
      "parents": [
        "fa361abde85b2bf6225f89d16e0cd9c2ca7a8a18",
        "adaf8b344e312853530e276ceff05783133ecf17"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 14 20:25:09 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 14 20:25:09 2017 +0000"
      },
      "message": "Merge \"Adds client API for interacting with statsd.\""
    },
    {
      "commit": "ae2df01aae2ee7076af875c04e991140f685f733",
      "tree": "1c7d34d21d60444344cb8c1b153863702d9ae029",
      "parents": [
        "0253dd036468246b95161ae6ec1a87c7751d00a3"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Tue Nov 14 09:17:21 2017 -0800"
      },
      "committer": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Tue Nov 14 11:56:05 2017 -0800"
      },
      "message": "Rename \"stats_events\" as \"atom\".\n\nAlso make atom WakelockStateChanged use the \"Type\" enum instead of int32.\n\nTest: Unittests are passing. Statsd is working.\n\nChange-Id: I0909e2d97297f78996a81366d66aae62d5bf5ce1\n"
    },
    {
      "commit": "d1815dc7b82f99259f6c41cfacc44972b867ef2d",
      "tree": "cfb6b2470b7c1197219ed3240d1e81d89057b2e3",
      "parents": [
        "0fbd9d163b22cc629047b5974be3bde265a51762"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Mon Nov 13 21:43:15 2017 -0800"
      },
      "committer": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Mon Nov 13 22:09:08 2017 -0800"
      },
      "message": "Sync statsd to the public proto changes:\n1/ use string id/name for all metrics/configs/matchers.\n2/ move alerts out of metric proto.\n\nTest: unit test passed.\nChange-Id: I08269f47be30f83f6dbadf873e7d62213449932b\n"
    },
    {
      "commit": "adaf8b344e312853530e276ceff05783133ecf17",
      "tree": "e650b5b1f29ba71f5eedbf16d57e4dad809fd1e6",
      "parents": [
        "2dd2cbcb12a21adccd3c349590a01e7ed009f679"
      ],
      "author": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Fri Nov 03 15:42:08 2017 -0700"
      },
      "committer": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Mon Nov 13 19:37:12 2017 -0800"
      },
      "message": "Adds client API for interacting with statsd.\n\nThis API will primarily be used by GmsCore to send updated configs.\nAlso, sending a config will implicitly notify the StatsD that this\nclient wants to know when it should request data for this config.\n\nWe send a broadcast so that all interested subscribers can know if\ndata needs to be pulled.\n\nTest: Manually tested that sending broadcast works via new adb\ncommand added in StatsService.\n\nChange-Id: I23cdd1df706036e14b32c3d01af30c3d4af819fa\n"
    },
    {
      "commit": "6736c893a73c567d3794d88ae0d17abab34b7a6f",
      "tree": "710c2511205845b3406590524cbc7d7e18c25b00",
      "parents": [
        "e33bc3b967aef6f10df82e5b374e4b701ce6ca69"
      ],
      "author": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Thu Nov 09 10:50:09 2017 -0800"
      },
      "committer": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Mon Nov 13 13:42:17 2017 -0800"
      },
      "message": "Unit tests for ValueMetricProducer\nStatsPullerManager is refactored so that we can mock it.\nIt may need more refactor pass to make is safer for longer runs.\n\nTest: unit test\nChange-Id: Ief0c99710e4d06e1454678f8b749c9599467d114\n"
    },
    {
      "commit": "e33bc3b967aef6f10df82e5b374e4b701ce6ca69",
      "tree": "b3b97072166e54b3e4666a5c4d2de1780b293404",
      "parents": [
        "7f8def9d5a71f4ccb1ecdd90637f7b3c162dcab8"
      ],
      "author": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Mon Nov 06 17:56:44 2017 -0800"
      },
      "committer": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Sat Nov 11 15:40:06 2017 -0800"
      },
      "message": "add CpuTimePerUidPuller and CpuTimePerUidFreqPuller\nNote: these pullers return monotonically increasing numbers.\nThe uids could include isolated uids that needs further translation in\nstatsd.\n\nTest: manually tested on device and check print outs\nChange-Id: I7097aec0417a3ac567b9b86149b757ac27cd58d8\n"
    },
    {
      "commit": "7f8def9d5a71f4ccb1ecdd90637f7b3c162dcab8",
      "tree": "c81c11d3db40892e16ec003968cec0b4282985ee",
      "parents": [
        "2888533e3cc288402aa0480e8aa56136b54f1c25"
      ],
      "author": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Fri Nov 03 09:33:15 2017 -0700"
      },
      "committer": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Sat Nov 11 10:49:56 2017 -0800"
      },
      "message": "pull cpu time per freq\nalso adjust lock for ValueMetricProducer.cpp\n\nTest: manual test\nChange-Id: Ib96e3011d7bcf44ac92346d880196c425623a86f\n"
    },
    {
      "commit": "87244f1f550937dd006e6e07052b932d906f3a5d",
      "tree": "80aa6bca27836b19ca75964a3d09257185ca750e",
      "parents": [
        "01528f4f2b2d7ccec4b4c4c4ab73584880103975",
        "4e6364ac1cc272098c57c3e166a3518d1495a48e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Nov 11 01:03:59 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 11 01:03:59 2017 +0000"
      },
      "message": "Merge \"make statsd less chatty.\""
    },
    {
      "commit": "01528f4f2b2d7ccec4b4c4c4ab73584880103975",
      "tree": "9ec372f2ef3838c828daca35c36cdd62be838722",
      "parents": [
        "88a1719fda177269152e5480d51eb6d85d06ad75",
        "b0378b093d9b937fe9a731a601d670d50f263078"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Nov 11 00:46:54 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 11 00:46:54 2017 +0000"
      },
      "message": "Merge \"1. Add FIELD_COUNT_REPEATED bit masks to repeated fields that were previously missing 2. Resolve segfault when serializing proto into vector of uint8_t 3. Add a local byte size variable for EventMetric data as we cannot call size() of ProtoOutputStream before we finish writing. 4. Replace hardcoded conversion of second to nano second with NS_PER_SEC\""
    },
    {
      "commit": "4e6364ac1cc272098c57c3e166a3518d1495a48e",
      "tree": "226b3cc2cea2ead79ed20728864e958c23675c6e",
      "parents": [
        "8c07286d2c5b1a2cce6f1ce3fe48fe19cacdf61a"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Fri Nov 10 14:35:58 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Fri Nov 10 14:35:58 2017 -0800"
      },
      "message": "make statsd less chatty.\n\nTest: builds and adb logcat\nChange-Id: I06ee9cce1844b21ed3960bbaf76262fca3357bf4\n"
    },
    {
      "commit": "b0378b093d9b937fe9a731a601d670d50f263078",
      "tree": "e7ee98225da2cb458992f393fc4eaea5f475b416",
      "parents": [
        "c8e3c7c816a4d9de42579df11d9302e117070ea1"
      ],
      "author": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Thu Nov 09 20:36:25 2017 -0800"
      },
      "committer": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Fri Nov 10 11:09:20 2017 -0800"
      },
      "message": "1. Add FIELD_COUNT_REPEATED bit masks to repeated fields that were previously missing\n2. Resolve segfault when serializing proto into vector of uint8_t\n3. Add a local byte size variable for EventMetric data as we cannot call\nsize() of ProtoOutputStream before we finish writing.\n4. Replace hardcoded conversion of second to nano second with NS_PER_SEC\n\nTest: statsd, statsd_test\n\nChange-Id: I47a2ce2b05e6191c18596489682118edcb41e945\n"
    },
    {
      "commit": "51f29ce476ad4546b005b19645155a21c588aa51",
      "tree": "cfeb8788121c2a60cb728d7403c64cf11587124a",
      "parents": [
        "3f6d0dca224cc118d5526842cf9ac3a86eb4dbc3",
        "967b2051fe17fa3c38d248a556f8c4ff21a573a7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 10 18:32:57 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 10 18:32:57 2017 +0000"
      },
      "message": "Merge \"Make SimpleCondition satisfactorily complicated.\""
    },
    {
      "commit": "967b2051fe17fa3c38d248a556f8c4ff21a573a7",
      "tree": "1027428b210f6a8e0926ad702d3345aa3eb81bdd",
      "parents": [
        "6ef8030a8e18cf7b25726dca9077727a031054cc"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Tue Nov 07 16:36:43 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Fri Nov 10 08:49:05 2017 -0800"
      },
      "message": "Make SimpleCondition satisfactorily complicated.\n\n+ Support nested counting\n+ Support StopAll\n+ Added default_condition to SimpleCondition config\n+ Some refactoring/clean up\n+ Added unit tests\n\nTest: Added unit tests, statsd_test\nChange-Id: I6564ac2e068ce6810e8090c0818064c625c7847a\n"
    },
    {
      "commit": "570d4db0c9d46458b3bda68e5a44a8d1ea38cbe4",
      "tree": "9172d094b27a7a6926c9abe3f0c0b43b1480fe68",
      "parents": [
        "fd1c507884d9aa7d43e58de5814136dba16da6a9",
        "21582961d779ea7190bd35a07805b9e41b43b05c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 09 23:53:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 09 23:53:58 2017 +0000"
      },
      "message": "Merge \"Tracks isolated uid\u0027s and their parent uid.\""
    },
    {
      "commit": "78c059ffe28ad6e0b23471ffa7e77fc2b444f191",
      "tree": "99819388d71b5cff5f3e7b140f2051054fc51686",
      "parents": [
        "968dbf4c7fe98bf64e6c671164767c3d3cd814bd",
        "17adac9cf3e03ad95372eb8657b26909d0414ac0"
      ],
      "author": {
        "name": "Howard Ro",
        "email": "yro@google.com",
        "time": "Thu Nov 09 23:37:20 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 09 23:37:20 2017 +0000"
      },
      "message": "Merge \"Finish migrating to use ProtoOutputStream. This change will take the outputs of each MetricProducer\u0027s and merge the results into ConfigMetricsReport which holds ConfigKey, repeated field of StatsLogReport, and UidMap. The data will be represented as vector\u003cuint8_t\u003e which can be passed down to binder call for clients to pick up. Also, all unnecessary dependencies to stats_log proto have been removed.\""
    },
    {
      "commit": "21582961d779ea7190bd35a07805b9e41b43b05c",
      "tree": "16d577de6703e5f2f87957a5e753734be0e48240",
      "parents": [
        "69dde2ed8d626fecfef32790e324398dcb7f3cad"
      ],
      "author": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Wed Nov 01 17:32:46 2017 -0700"
      },
      "committer": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Thu Nov 09 13:39:43 2017 -0800"
      },
      "message": "Tracks isolated uid\u0027s and their parent uid.\n\nWe push events from BatteryStatsImpl if an isolated uid is added or\nremoved and we have a custom rule in statsd to use these events to\nupdate our uid map. In the future, we need to use this map to\nconvert all incoming uid\u0027s to their host uid.\n\nTest: Added unit-test to UidMap_test.\nChange-Id: I33c0451eb2c886161f22dd12e479d216fad0940d\n"
    },
    {
      "commit": "3eba62186592382ed3d97cecca0c547487e4b2e4",
      "tree": "c605ab8d08344c48441169e759c92e6d78a968d9",
      "parents": [
        "45a9600e68f3e356c5dbc34d7e9812a4e99279e7"
      ],
      "author": {
        "name": "Yang Lu",
        "email": "yanglu@google.com",
        "time": "Wed Oct 25 19:54:45 2017 -0700"
      },
      "committer": {
        "name": "Yangster",
        "email": "yanglu@google.com",
        "time": "Thu Nov 09 12:32:13 2017 -0800"
      },
      "message": "Update CountAnomalyTracker to handle slicing.\n\nRe-added CountAnomalyTracker (under the name DiscreteAnomalyDetector).\nIt is now able to handle dimensions.\n\nTest: unit test passed.\n\nChange-Id: I133fcf6db99b9e305756f7ee5891c25f0f276348\n"
    },
    {
      "commit": "17adac9cf3e03ad95372eb8657b26909d0414ac0",
      "tree": "e670fb86237e80349ac694dd19042323a3d90236",
      "parents": [
        "4a3d844742fca89c142ee24a469830d435d64689"
      ],
      "author": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Wed Nov 08 23:16:29 2017 -0800"
      },
      "committer": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Wed Nov 08 23:40:28 2017 -0800"
      },
      "message": "Finish migrating to use ProtoOutputStream. This change will take the\noutputs of each MetricProducer\u0027s and merge the results into\nConfigMetricsReport which holds ConfigKey, repeated field of\nStatsLogReport, and UidMap. The data will be represented as\nvector\u003cuint8_t\u003e which can be passed down to binder call for clients to\npick up. Also, all unnecessary dependencies to stats_log proto have been\nremoved.\n\nTest: statsd, statsd_test\nChange-Id: Ia69137cbc8613644a892e6be1e87b4858bd39fe3\n"
    },
    {
      "commit": "2b0f88678b2877a8e9f83cea60f097322b078367",
      "tree": "69ed35bb538be0a426ffd9e1c4c2dbafd896585d",
      "parents": [
        "6c5c1d73461880b55c8f08f3b38197c290524560"
      ],
      "author": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Mon Nov 06 14:27:31 2017 -0800"
      },
      "committer": {
        "name": "yro",
        "email": "yro@google.com",
        "time": "Tue Nov 07 17:33:37 2017 -0800"
      },
      "message": "Migrate all remaining MetricProducers to use ProtoOutputStream\n\nTest: statsd, statsd_test\nChange-Id: I1087e1c1ffb372ca288dfc575cb7a372b11ce8c5\n"
    },
    {
      "commit": "93fe3a34a02c673eaee4a2d18565ba8df20685cb",
      "tree": "b23a79f6622f54662de9c77a42a0a4f126398824",
      "parents": [
        "d7f98747b37882c9e0821287d8dfa43f72e8c95f"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Thu Nov 02 13:52:59 2017 -0700"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon Nov 06 17:20:10 2017 -0800"
      },
      "message": "Add unit tests for CountMetricProducer, EventMetricProducer\n\nAnd other miscellaneous fixes.\n+ clang-format\n+ 2 bug fixes, one in dump-report command, one in ResourcePowerManagerPuller\n\nTest: statsd_test\n\nChange-Id: Ibd164d948ad62adcc529d813df1210781e38be47\n"
    },
    {
      "commit": "b64fad915126b0c9616ee0a6030844514bccfb11",
      "tree": "1870d863397a6d688c7d655aede464d85c298df1",
      "parents": [
        "d72e3a66daec08050cadec9be1d7671358db5e84",
        "8a0595f498c57b6ca2ad75ce649dc7ab60cc9f97"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 06 21:37:41 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 06 21:37:41 2017 +0000"
      },
      "message": "Merge \"Fix the nullptr bug after move operation.\""
    },
    {
      "commit": "8a0595f498c57b6ca2ad75ce649dc7ab60cc9f97",
      "tree": "7db8691cbe30365f2297242b9b58e710a91e7991",
      "parents": [
        "a7d81598b5cd7c12e97f64015c9f5e316eadaf13"
      ],
      "author": {
        "name": "Yangster",
        "email": "yanglu@google.com",
        "time": "Mon Nov 06 09:34:01 2017 -0800"
      },
      "committer": {
        "name": "Yangster",
        "email": "yanglu@google.com",
        "time": "Mon Nov 06 11:38:30 2017 -0800"
      },
      "message": "Fix the nullptr bug after move operation.\n\nTest: passed\nChange-Id: I1433b59ffe8fef1b26c424a535c30a4d1e15dff2\n"
    },
    {
      "commit": "1d4d686001b220e114df737154f143ffabc212f1",
      "tree": "114e010b3b76d3c4112518b811b967d7efbd6dba",
      "parents": [
        "f8a6f1da8f7aa9b782f20c3dd0246534e90d34d6"
      ],
      "author": {
        "name": "Yangster",
        "email": "yanglu@google.com",
        "time": "Tue Oct 31 12:58:51 2017 -0700"
      },
      "committer": {
        "name": "Yangster",
        "email": "yanglu@google.com",
        "time": "Fri Nov 03 16:42:43 2017 -0700"
      },
      "message": "Gauge metric producer.\n\nTest: manual tests passed for pushed device temperature.\nChange-Id: I7592a4c04666606b745cdb41db8f9d8a96a966da\n"
    },
    {
      "commit": "896b6e4b9001f51cede73b7e3b681c01e3c82e75",
      "tree": "d1f5114a3a18bfc6575f60e283456ff0f181f483",
      "parents": [
        "bbea453b33e4cda0e435438344aabc523471830b",
        "5305e1ddc22bfe9ad941cb2550987aaba8de234c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 03 01:54:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 03 01:54:40 2017 +0000"
      },
      "message": "Merge \"pull resource power manager stats into statsd\""
    }
  ],
  "next": "6462f4564e3e5aff44f23686a65baa1a5b4057a5"
}
