)]}'
{
  "log": [
    {
      "commit": "c51ec6767f7fb17336ca59bbab22d476879c400a",
      "tree": "522db3f4a76826e855450b4f4b78200583b4f6bd",
      "parents": [
        "2514d1ca7910a34502c04e9b5e70066431a3a78c",
        "8f2f3d82053693b0dac828e848e2bb238e1db2d2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 08 03:50:57 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 08 03:50:57 2017 +0000"
      },
      "message": "Merge changes Ib254db7e,I4aa0539a\n\n* changes:\n  Anomaly Alert declarations in StatsdStats\n  Anomaly detection statsdstats\n"
    },
    {
      "commit": "8f2f3d82053693b0dac828e848e2bb238e1db2d2",
      "tree": "4707180959cdd6809f84d992cb5d645aecff8bb5",
      "parents": [
        "1d0136d322899cd9db4416c22873ee7ed01d843a"
      ],
      "author": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Thu Dec 07 13:53:21 2017 -0800"
      },
      "committer": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Thu Dec 07 18:00:44 2017 -0800"
      },
      "message": "Anomaly Alert declarations in StatsdStats\n\nStatsdStats now tracks the number of times an anomaly is detected (per\nconfig, per alert name).\n\nAlso adds a configKey to AnomalyTracker, which is needed, not only for\nstatsdstats, but also (in the future) for reporting the header\ninformation to incidentd.\n\nBug: 67978682\nTest: adb shell data/nativetest64/statsd_test/statsd_test\nChange-Id: Ib254db7e1edb4f0f193f4772d17f14934cdf7e30\n"
    },
    {
      "commit": "1d0136d322899cd9db4416c22873ee7ed01d843a",
      "tree": "95f260a1efbe1d74b5e2289da8710cddb210f62a",
      "parents": [
        "3834e91e1341af979c17def675369071da7ad882"
      ],
      "author": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Fri Dec 01 11:13:32 2017 -0800"
      },
      "committer": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Thu Dec 07 17:59:30 2017 -0800"
      },
      "message": "Anomaly detection statsdstats\n\nAdds statsdstats for tracking the number of anomaly alarms registered.\n\nTest: adb shell data/nativetest64/statsd_test/statsd_test\nBug: 67978682\nChange-Id: I4aa0539a13c60ccb3b7fd2a4f41c4ad867f3a4ea\n"
    },
    {
      "commit": "9d25218985ba8ea944b4a51d194744b5a85a1105",
      "tree": "5fba1cc5d616d6ffd9568ae15e7425a8390f4151",
      "parents": [
        "1381e6ddc332a269fe8094fecfea7dd2e5c030ed",
        "9709fa26f1e3f713e0558c5cce71c28f208afbe9"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Thu Dec 07 20:23:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 07 20:23:37 2017 +0000"
      },
      "message": "Merge \"Track PSS in loadtest.\""
    },
    {
      "commit": "e224d7ab8ce2c766a16c0c6b2ed398bba6c4e398",
      "tree": "851fb3051daa675398f9a8f0505e990671cbe817",
      "parents": [
        "c7efe16191836ebd376306d1aa093cfd29ebb3fd",
        "cfdf3a446b4b58b1600ebda19b7b7d2f1a057d26"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 07 20:12:09 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 07 20:12:09 2017 +0000"
      },
      "message": "Merge \"Attribution proto in atoms.\""
    },
    {
      "commit": "cfdf3a446b4b58b1600ebda19b7b7d2f1a057d26",
      "tree": "41424491ffb36ba7960aba34798b779e9192451c",
      "parents": [
        "734afbe61e3a7180649aebe4a89fb9e21dd668ae"
      ],
      "author": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Wed Dec 06 13:42:38 2017 -0800"
      },
      "committer": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Thu Dec 07 10:29:09 2017 -0800"
      },
      "message": "Attribution proto in atoms.\n\nTest: statsd unit tests passed.\n\nChange-Id: I3562319708376ea9d9a14e08382e57590eee7bf1\n"
    },
    {
      "commit": "9709fa26f1e3f713e0558c5cce71c28f208afbe9",
      "tree": "27c05cbc7b414ef3b8ccae5a03fd6ae0a2ad3466",
      "parents": [
        "057087457b123f1810d028ac044e2ece9e7610e3"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Wed Dec 06 15:54:41 2017 -0800"
      },
      "committer": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Thu Dec 07 10:10:48 2017 -0800"
      },
      "message": "Track PSS in loadtest.\n\nTest: Ran the loadtest. Not changing statsd.\n\nChange-Id: Idc43cba59ec2c9d4213e20b395a083fdda58e8c4\n"
    },
    {
      "commit": "f20ed0321032d70d715eb1ccdde338689a30c7f1",
      "tree": "c5d9f70f20c1afdc10b9f0fd9307680454478848",
      "parents": [
        "734afbe61e3a7180649aebe4a89fb9e21dd668ae",
        "a5b5191351a85ea33641dc42ee4223189b3612f3"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Thu Dec 07 17:58:57 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 07 17:58:57 2017 +0000"
      },
      "message": "Merge \"Rename EventConditionLink as MetricConditionLink in statsd_config.proto.\""
    },
    {
      "commit": "2710ca1e9d5ed8b2e755a9b948be8113ebb82023",
      "tree": "4704f3d690427e6da757b19040fa458182938e7a",
      "parents": [
        "dcb520b4ed5889281124d3520a1675d0a7418a0a"
      ],
      "author": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Tue Dec 05 18:36:56 2017 +0000"
      },
      "committer": {
        "name": "Paul Duffin",
        "email": "paulduffin@google.com",
        "time": "Thu Dec 07 07:38:59 2017 +0000"
      },
      "message": "Flatten dependency hierarchy of legacy-android-test\n\nPrevious changes statically included legacy-android-test in preparation\nfor removing android.test.* and junit.* classes from the android.jar.\nUnfortunately, that lead to duplicate classes between APKs and the\nbootclasspath which caused build problems (Proguard) and also runtime\nproblems (when targeting and running on older releases).\n\nSwitching from statically including the classes to using the runtime\nlibraries cannot be done in one step because legacy-android-test is\nstatically included in libraries which are used in many APKs and so\nremoving it from those libraries requires that all APKs be updated at\nonce. Doing that atomically across dozens of projects is not practical.\n\nThis change modifies APKS that statically include the\nlegacy-android-test library indirectly.\n\n* If the APK manifest uses the android.test.runner library then the APK\n  is modified to stop statically including legacy-android-test and\n  instead build against android.test.base/mock/runner libraries instead.\n\n* Otherwise, the APK statically includes legacy-android-test.\n\nAlso, any libraries that statically include are modified to stop\nstatically including it and if it has source dependencies on the classes\nis changed to build against the android.test.base/mock/runner libraries.\n\nThe following change descriptions were generated automatically and so\nmay be a little repetitive. They are provided to give the reviewer\nenough information to check the comments match what has actually been\nchanged and check the reasoning behind the changes.\n\n* cmds/uiautomator/instrumentation/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because uiautomator-instrumentation is not a package so does not\n    need to statically include the classes\n\n* cmds/uiautomator/library/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    uiautomator.core has a source dependency on its classes\n\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because uiautomator.core is not a package so does not need to\n    statically include the classes\n\n* core/tests/BroadcastRadioTests/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    BroadcastRadioTests\u0027s source depends on its classes and because of\n    these changes they are no longer present on the compilation path.\n    The classes do not need to be statically included because the\n    classes will be provided by the runtime, either from the default\n    bootclasspath or from the android.test.runner library that\n    BroadcastRadioTests specifies in its manifest.\n\n* core/tests/coretests/Android.mk\n    Added \u0027android.test.base\u0027 and \u0027android.test.mock\u0027 to\n    LOCAL_JAVA_LIBRARIES because FrameworksCoreTests\u0027s source depends\n    on their classes and because of these changes they are no longer\n    present on the compilation path. The classes do not need to be\n    statically included because the classes will be provided by the\n    runtime, either from the default bootclasspath or from the\n    android.test.runner library that FrameworksCoreTests specifies in\n    its manifest.\n\n* core/tests/featureflagtests/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    FrameworksCoreFeatureFlagTests\u0027s source depends on its classes and\n    because of these changes they are no longer present on the\n    compilation path. The classes do not need to be statically included\n    because the classes will be provided by the runtime, either from\n    the default bootclasspath or from the android.test.runner library\n    that FrameworksCoreFeatureFlagTests specifies in its manifest.\n\n* core/tests/systemproperties/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    FrameworksCoreSystemPropertiesTests\u0027s source depends on its classes\n    and because of these changes they are no longer present on the\n    compilation path. The classes do not need to be statically included\n    because the classes will be provided by the runtime, either from\n    the default bootclasspath or from the android.test.runner library\n    that FrameworksCoreSystemPropertiesTests specifies in its manifest.\n\n* core/tests/utillib/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because frameworks-core-util-lib is not a package so does not need\n    to statically include the classes\n\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    frameworks-core-util-lib has a source dependency on its classes\n\n* core/tests/utiltests/Android.mk\n    Added \u0027android.test.base\u0027 and \u0027android.test.mock\u0027 to\n    LOCAL_JAVA_LIBRARIES because FrameworksUtilTests\u0027s source depends\n    on their classes and because of these changes they are no longer\n    present on the compilation path. The classes do not need to be\n    statically included because the classes will be provided by the\n    runtime, either from the default bootclasspath or from the\n    android.test.runner library that FrameworksUtilTests specifies in\n    its manifest.\n\n* location/tests/locationtests/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    FrameworksLocationTests\u0027s source depends on its classes and because\n    of these changes they are no longer present on the compilation\n    path. The classes do not need to be statically included because the\n    classes will be provided by the runtime, either from the default\n    bootclasspath or from the android.test.runner library that\n    FrameworksLocationTests specifies in its manifest.\n\n* lowpan/tests/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    FrameworksLowpanApiTests\u0027s source depends on its classes and\n    because of these changes they are no longer present on the\n    compilation path. The classes do not need to be statically included\n    because the classes will be provided by the runtime, either from\n    the default bootclasspath or from the android.test.runner library\n    that FrameworksLowpanApiTests specifies in its manifest.\n\n* packages/Osu2/tests/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    OsuTests\u0027s source depends on its classes and because of these\n    changes they are no longer present on the compilation path. The\n    classes do not need to be statically included because the classes\n    will be provided by the runtime, either from the default\n    bootclasspath or from the android.test.runner library that OsuTests\n    specifies in its manifest.\n\n* packages/SettingsProvider/test/Android.mk\n    Replaced \u0027legacy-android-test\u0027 with \u0027android.test.base\u0027 in\n    LOCAL_JAVA_LIBRARIES because SettingsProviderTest\u0027s source depends\n    on its classes. The classes do not need to be statically included\n    because the classes will be provided by the runtime, either from\n    the default bootclasspath or from the android.test.runner library\n    that SettingsProviderTest specifies in its manifest.\n\n* services/tests/notification/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    FrameworksNotificationTests\u0027s source depends on its classes and\n    because of these changes they are no longer present on the\n    compilation path. The classes do not need to be statically included\n    because the classes will be provided by the runtime, either from\n    the default bootclasspath or from the android.test.runner library\n    that FrameworksNotificationTests specifies in its manifest.\n\n* services/tests/servicestests/Android.mk\n    Replaced \u0027legacy-android-test\u0027 with \u0027android.test.base\u0027 and\n    \u0027android.test.runner\u0027 in LOCAL_JAVA_LIBRARIES because\n    FrameworksServicesTests\u0027s source depends on their classes. The\n    classes do not need to be statically included because the classes\n    will be provided by the runtime, either from the default\n    bootclasspath or from the android.test.runner library that\n    FrameworksServicesTests specifies in its manifest.\n\n* services/tests/shortcutmanagerutils/Android.mk\n    Added \u0027android.test.runner.stubs\u0027 to LOCAL_JAVA_LIBRARIES because\n    ShortcutManagerTestUtils has a source dependency on its classes\n\n* tests/AppLaunch/Android.mk\n    Replaced \u0027legacy-android-test\u0027 with \u0027android.test.base\u0027 and\n    \u0027android.test.runner\u0027 in LOCAL_JAVA_LIBRARIES because AppLaunch\u0027s\n    source depends on their classes. The classes do not need to be\n    statically included because the classes will be provided by the\n    runtime, either from the default bootclasspath or from the\n    android.test.runner library that AppLaunch specifies in its\n    manifest.\n\n* tests/Camera2Tests/SmartCamera/SimpleCamera/tests/Android.mk\n    Replaced \u0027legacy-android-test\u0027 with \u0027android.test.base\u0027 in\n    LOCAL_JAVA_LIBRARIES because SmartCamera-tests\u0027s source depends on\n    its classes. The classes do not need to be statically included\n    because the classes will be provided by the runtime, either from\n    the default bootclasspath or from the android.test.runner library\n    that SmartCamera-tests specifies in its manifest.\n\n* tests/ServiceCrashTest/Android.mk\n    Replaced \u0027legacy-android-test\u0027 with \u0027android.test.base\u0027 in\n    LOCAL_JAVA_LIBRARIES because ServiceCrashTest\u0027s source depends on\n    its classes. The classes do not need to be statically included\n    because the classes will be provided by the runtime, either from\n    the default bootclasspath or from the android.test.runner library\n    that ServiceCrashTest specifies in its manifest.\n\n* tests/net/Android.mk\n    Added \u0027android.test.base\u0027 and \u0027android.test.mock\u0027 to\n    LOCAL_JAVA_LIBRARIES because FrameworksNetTests\u0027s source depends on\n    their classes and because of these changes they are no longer\n    present on the compilation path. The classes do not need to be\n    statically included because the classes will be provided by the\n    runtime, either from the default bootclasspath or from the\n    android.test.runner library that FrameworksNetTests specifies in\n    its manifest.\n\n* tests/testables/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because testables is not a package so does not need to statically\n    include the classes\n\n    Added \u0027android.test.mock\u0027 to LOCAL_JAVA_LIBRARIES because testables\n    has a source dependency on its classes\n\n* tests/utils/testutils/Android.mk\n    Removed legacy-android-test from LOCAL_STATIC_JAVA_LIBRARIES\n    because frameworks-base-testutils is not a package so does not need\n    to statically include the classes\n\n    Added \u0027android.test.base\u0027 and \u0027android.test.mock\u0027 to\n    LOCAL_JAVA_LIBRARIES because frameworks-base-testutils has a source\n    dependency on their classes\n\n* wifi/tests/Android.mk\n    Added \u0027android.test.base\u0027 to LOCAL_JAVA_LIBRARIES because\n    FrameworksWifiApiTests\u0027s source depends on its classes and because\n    of these changes they are no longer present on the compilation\n    path. The classes do not need to be statically included because the\n    classes will be provided by the runtime, either from the default\n    bootclasspath or from the android.test.runner library that\n    FrameworksWifiApiTests specifies in its manifest.\n\nBug: 30188076\nTest: make checkbuild\nChange-Id: Ia6a48234f28e7e1789049cf4b37cd7fe0bc8251c\n"
    },
    {
      "commit": "42a24dcce51c429b66b91abfa8c6c92f2af5ed94",
      "tree": "e259800d25a8f91d9ba2298f3707f997807a108c",
      "parents": [
        "4ab17843a1a8b95a37705a077d5be8bbded71667",
        "5c5eebca0e50f5ceb08ad271e4f25731a5b5f95c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 07 01:51:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 07 01:51:58 2017 +0000"
      },
      "message": "Merge \"Fix a deadlock in statsd.\""
    },
    {
      "commit": "5c5eebca0e50f5ceb08ad271e4f25731a5b5f95c",
      "tree": "4ae505d4bd3cee5c1735fac171e87a9478a6ded0",
      "parents": [
        "1f272d89e3cf850965fc0db30f1ae3614a1892b9"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Dec 06 15:35:50 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Dec 06 15:35:50 2017 -0800"
      },
      "message": "Fix a deadlock in statsd.\n\nTest: manual\nChange-Id: I7676713f604699737d819ac67fe49bc5b5d8cf98\n"
    },
    {
      "commit": "6842a8c66f4458d2da92c75da056287fa3931637",
      "tree": "7ea023c8e6fa0a977f63e4459126614cead4d03a",
      "parents": [
        "3383a8895564bd9cd8507d56787826ae12eef953"
      ],
      "author": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Tue Dec 05 22:34:34 2017 -0800"
      },
      "committer": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Wed Dec 06 22:39:56 2017 +0000"
      },
      "message": "bug fix for StatsLogEventWraper tag id\nbug fix for ConfigManager fake config\n\nTest: cts test\nChange-Id: Ia07992dffb6520074c908151c96da1aa931f97f0\n"
    },
    {
      "commit": "43be09b58c6ec3009f0eb9cb0c904edbd81b23b5",
      "tree": "f2be452cca6a3a136f178d7e82601b208a0e7ad1",
      "parents": [
        "8bb6da69ee9c6631fe76e54574a677a452c7faa5",
        "16c8c6ab6fd0be70f64e169c35d0a6ba36c20937"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Dec 06 20:14:21 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 06 20:14:21 2017 +0000"
      },
      "message": "Merge \"Make matchesSimple return false if there is a parsing error\""
    },
    {
      "commit": "a5b5191351a85ea33641dc42ee4223189b3612f3",
      "tree": "9800014a5eca81763abced6c264e0d489da12658",
      "parents": [
        "057087457b123f1810d028ac044e2ece9e7610e3"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Tue Dec 05 21:43:52 2017 -0800"
      },
      "committer": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Tue Dec 05 21:51:46 2017 -0800"
      },
      "message": "Rename EventConditionLink as MetricConditionLink in statsd_config.proto.\n\nTest: Ran statsd_test and cts tests.\nChange-Id: Ia9a38892854443aa4f17d800a075860fcf874652\n"
    },
    {
      "commit": "6e43f5361cc73ad2c1126baa5f5551f9c65a920a",
      "tree": "c07a798b3d46867a2d1eab29208fa892c0113745",
      "parents": [
        "bd4518d95632c8a4efd417177a2ba59f2cdfa6f4",
        "12d01fa7c165a1f79091d4d742a48bffd7552650"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Wed Dec 06 03:38:56 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 06 03:38:56 2017 +0000"
      },
      "message": "Merge \"Rename more things in statsd_config.proto.\""
    },
    {
      "commit": "16c8c6ab6fd0be70f64e169c35d0a6ba36c20937",
      "tree": "8c589f2debe9db402f1f59b38486d644974eec6f",
      "parents": [
        "1f272d89e3cf850965fc0db30f1ae3614a1892b9"
      ],
      "author": {
        "name": "Tej Singh",
        "email": "singhtejinder@google.com",
        "time": "Tue Dec 05 19:23:42 2017 -0800"
      },
      "committer": {
        "name": "Tej Singh",
        "email": "singhtejinder@google.com",
        "time": "Tue Dec 05 19:23:42 2017 -0800"
      },
      "message": "Make matchesSimple return false if there is a parsing error\n\nPreviously, this would return true if there was an error getting\nvalue from the logEvent. This is bad because it would match\nif there was an error.\n\nTest: ran unit tests and cts test\nChange-Id: I83054c2a1b922ce374312e3091a8b668f6b89a8f\n"
    },
    {
      "commit": "312e898325372871eb73d5813adc029c54fb2780",
      "tree": "4174c8a947128b25b008af64956610e254ae4d68",
      "parents": [
        "1f272d89e3cf850965fc0db30f1ae3614a1892b9"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Tue Dec 05 15:29:03 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Tue Dec 05 15:29:03 2017 -0800"
      },
      "message": "Let the event flow to MetricsManager. Comment out the size check only.\n\nTest: statsd_test, and manual\nChange-Id: I862967510eaf4d402471e9dd6b9c85f6037dd7e1\n"
    },
    {
      "commit": "d5b9266f013f917dc314bb2151164a5a752fa548",
      "tree": "d6302929d4b524f749384ce51d5cd173e65f083c",
      "parents": [
        "c823b876c1f0afdf1e153f2cdbf3cbaef7b7db7c",
        "3accca05ddcad9d0b1b313eae49f273e39121d3c"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Dec 05 20:12:17 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 05 20:12:17 2017 +0000"
      },
      "message": "Merge \"Add major version code to platform.\""
    },
    {
      "commit": "0b73ccad8fb47b1bcc5c89b0c10fac937336ab1e",
      "tree": "2f05205e8008e39ba744896e297ec6ae6b1de088",
      "parents": [
        "456385cba9eaa3c1c04a8c0b877c896966234a44"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Tue Dec 05 09:29:24 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Tue Dec 05 09:37:06 2017 -0800"
      },
      "message": "Urgent fix. Once UidMap size exceeds the limit, statsd triggers data drop every time a log comes in\n\nTest: manual\nChange-Id: Idf93e5aca19b80acf964670fa4bc9f1f0781df1f\n"
    },
    {
      "commit": "12d01fa7c165a1f79091d4d742a48bffd7552650",
      "tree": "2abf40dbd5eeaaca71cbb7950cb1a449d68eea18",
      "parents": [
        "a2d0fc00125d9ad8a3ab465fdff25a3e2a437ae8"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Mon Dec 04 20:56:09 2017 -0800"
      },
      "committer": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Tue Dec 05 09:20:28 2017 -0800"
      },
      "message": "Rename more things in statsd_config.proto.\n\nSimpleCondition -\u003e SimplePredicate\nsimple_condition -\u003e simple_predicate\nCondition -\u003e Predicate\ncondition -\u003e predicate\n\nTest: Ran statsd and statsd_test.\n\nChange-Id: I3115fb51a4dc3cbe5f23535dfc448d5755b9ed7f\n"
    },
    {
      "commit": "456385cba9eaa3c1c04a8c0b877c896966234a44",
      "tree": "d8df9cbdfff966c51b38a87552b2ea2e5b4e7bfe",
      "parents": [
        "ef1037390a22b1376dffaca3aa20dc8c74ab79a0",
        "f60e0bad5908c51c954ca8dc763c8efd394c56dc"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Tue Dec 05 17:15:17 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 05 17:15:17 2017 +0000"
      },
      "message": "Merge \"Fix how DurationTracker passes results to DurationMetricProducer\""
    },
    {
      "commit": "a50d609e2f12f78a6e2412d264579a67fde4045e",
      "tree": "a9aff740c9bab0d9dbb3d6f4e794a9d033da7119",
      "parents": [
        "90f7ad1aa11a4fe7f8ef882d9001dd560814f21a",
        "450099db169d386077584d93486908c3bae1244e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 05 02:38:19 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 05 02:38:19 2017 +0000"
      },
      "message": "Merge \"AnomalyDetection invalidity depends on MetricProd\""
    },
    {
      "commit": "90f7ad1aa11a4fe7f8ef882d9001dd560814f21a",
      "tree": "d332b79ccf7ab06243e28ee35ca09a4db670e448",
      "parents": [
        "742fd61d4a4cf4f13af7815633d8cb80501fc7cb",
        "12942956bcd6213d3349227ae8567e63f9644935"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Dec 05 02:27:47 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 05 02:27:47 2017 +0000"
      },
      "message": "Merge \"Tiny fix to bug when statsd should clear data.\""
    },
    {
      "commit": "450099db169d386077584d93486908c3bae1244e",
      "tree": "97131175cd721be5416ae7b12c6378f13d6a1696",
      "parents": [
        "2f919ef86b2f69e70c08c88550250132daa8ff5f"
      ],
      "author": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Thu Nov 30 17:09:30 2017 -0800"
      },
      "committer": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Mon Dec 04 16:55:43 2017 -0800"
      },
      "message": "AnomalyDetection invalidity depends on MetricProd\n\nDurationMetricProducer has extra conditions that must be satisfied for\nan anomaly detection Alert (in the config) to be valid. This test must\nonly be run for DurationMetricProducer, and not other MetricProducers.\n\nIn the future, AnomalyTracker will be split into two, with a\nDuratoinAnomalyTracker subclass that will be created by\nDurationMetricProducer\u0027s createAnomalyTracker function.\n\nTest: CTS test in progress\nChange-Id: If172a71d15d5dabb2827859ddb2b5ff7ed386501\n"
    },
    {
      "commit": "12942956bcd6213d3349227ae8567e63f9644935",
      "tree": "9ef059c08e76712df9722cf29947f298e1a53ebe",
      "parents": [
        "2e8f3807379f5d5d151ad2cb434d8a7aca910238"
      ],
      "author": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Mon Dec 04 14:28:43 2017 -0800"
      },
      "committer": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Mon Dec 04 14:28:43 2017 -0800"
      },
      "message": "Tiny fix to bug when statsd should clear data.\n\nPreviously, we always sent a broadcast, even after we have exceeded\nthe memory limit for this config key. We switch the order so that\nwe drop the data if the limit is exceeded. If greater than 90% of the\nway to the limit, we send the broadcast.\n\nWe need to find a way to unit-test this behavior.\n\nTest: N/A.\nChange-Id: I6ea40b9e34dceb19805d9af24495d72878f787e0\n"
    },
    {
      "commit": "8a15f4df7730f2211d7615c0cabceb608b8ecf15",
      "tree": "3ee699df4e66c3e00a1de8ed9a4160fdfe048d94",
      "parents": [
        "edb95359226a7094bc7ba54d4d66880fe714e228",
        "b8c9aa8c9ccba4e64759c177381b742ca99a5487"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Mon Dec 04 21:59:14 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 04 21:59:14 2017 +0000"
      },
      "message": "Merge \"Rename a few things in statsd_config.proto.\""
    },
    {
      "commit": "3accca05ddcad9d0b1b313eae49f273e39121d3c",
      "tree": "7aca880abfecad17d7e3e1ad82e7891e480078a3",
      "parents": [
        "dc3a8c7f84bf3673e184ce4acc592a1df9402746"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Sep 20 09:32:11 2013 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Dec 04 13:02:10 2017 -0800"
      },
      "message": "Add major version code to platform.\n\nIt turns the version code into almost a 64-bit integer, with the\nnew major part being the upper 32 bits.\n\nThe only tricky part about this is the backup manager, since it\nstored 32-bit version codes in its backup data sets.  This is dealt\nwith by, when the major version code is not 0, writing MIN_INT as\nthe version code and following that by the full long version code,\nwhich we can detect when reading.  Note that this makes backup sets\ncontaining apps with major version codes incompatible with older\nversions of the platform.\n\nBug: 64459786\nTest: Added in Change-Id: Iab8a682b62103babd6c16a56b8dc1e97d7078658\nChange-Id: Ibfffe235bbfcf358b3741abd3f7197fdb063d3f3\n"
    },
    {
      "commit": "b8c9aa8c9ccba4e64759c177381b742ca99a5487",
      "tree": "20dc89516cc489ab807bbeaec89f56dcb842614b",
      "parents": [
        "e1e892d4a0a0d686871dd3f50d26505a9694bc61"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Sun Dec 03 14:27:25 2017 -0800"
      },
      "committer": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Mon Dec 04 10:59:23 2017 -0800"
      },
      "message": "Rename a few things in statsd_config.proto.\n\nThis for frameworks/base/\n\nSimpleLogEntryMatcher -\u003e SimpleAtomMatcher.\nsimple_log_entry_matcher -\u003e simple_atom_matcher\nLogEntryMatcher -\u003e AtomMatcher\nlog_entry_matcher -\u003e atom_matcher\n\nTest: Ran statsd_test.\n\nChange-Id: I7398758e3fab86235897c162884f5ceab3002510\n"
    },
    {
      "commit": "2e8f3807379f5d5d151ad2cb434d8a7aca910238",
      "tree": "0b67079827a7368229fbb39915907839b73189f1",
      "parents": [
        "d796c9062e9201ef8cbdb59abd982cd16f9b8ae1"
      ],
      "author": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Wed Nov 22 10:56:48 2017 -0800"
      },
      "committer": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Mon Dec 04 10:23:28 2017 -0800"
      },
      "message": "Adds new API to retrieve statsd metadata.\n\nThis API can be used by clients to gather stats about statsd, eg.\nmemory usage, number of metrics/matchers, etc. This data can be used\nto debug if devices are not providing expected metrics. The metadata\nwill be for all configurations, but will not contain the actual\ncollected metrics since those might have privacy implications.\n\nTest: Tests that statsd and Android still build.\nBug: 69522276\nChange-Id: I8e0fedc142f5deed7be6e6309f9444e67d8369ce\n"
    },
    {
      "commit": "29fdbc67fcf0015c713840756dd343002e83fffb",
      "tree": "4dcdea8c24fb0d7455ef84379021713fc7162a13",
      "parents": [
        "efb758420d4385e7064df8740611fbd9fdcdbcac",
        "a69e0a7d7c11d586c5a3ff74306a41c1456fd250"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Mon Dec 04 17:10:30 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 04 17:10:30 2017 +0000"
      },
      "message": "Merge changes from topic \"hw_bitmap\"\n\n* changes:\n  Update screenshot requests to render proper crop and rotation.\n  Revert \"Revert \"Updated screenshot code to reflect native changes.\"\"\n"
    },
    {
      "commit": "f92dc7f9b64c81935b6b10f23e946200b1dfcbb0",
      "tree": "e89c06a299ad8d90b21e4f5fc95dfcc97607d55f",
      "parents": [
        "e1e892d4a0a0d686871dd3f50d26505a9694bc61",
        "aa39bc739aff77b23d1eb214cf05f65a3fb7ccf5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Dec 04 00:02:52 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Dec 04 00:02:52 2017 +0000"
      },
      "message": "Merge \"Return correct results in StatsManager APIs\""
    },
    {
      "commit": "e1e892d4a0a0d686871dd3f50d26505a9694bc61",
      "tree": "42da21201ea0e8ca253138e6fb78a4d8de13e582",
      "parents": [
        "f156c04912d9b50e9d735daae9ea209721eaa371",
        "bc7a04b88db83b6bb91c2c50a4cd8b6bafabac06"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sun Dec 03 19:47:25 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Dec 03 19:47:25 2017 +0000"
      },
      "message": "Merge \"Create statsd loadtest app.\""
    },
    {
      "commit": "bc7a04b88db83b6bb91c2c50a4cd8b6bafabac06",
      "tree": "11ac0f8663729e00f6f28106c97b495abc63f752",
      "parents": [
        "304494b61d0da759cfc3e613f9d0bafb615cd175"
      ],
      "author": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Sat Nov 25 11:59:11 2017 -0800"
      },
      "committer": {
        "name": "Stefan Lafon",
        "email": "stlafon@google.com",
        "time": "Sun Dec 03 10:12:03 2017 -0800"
      },
      "message": "Create statsd loadtest app.\n\nThat app automatically sends a bunch of events to logd.\nThe frequency is adjustable.\n\nTest: Ran statsd.\n\nChange-Id: I7a88c140e39d22549cc76ef68059d292e85a8a24\n"
    },
    {
      "commit": "971c8ca6b13a3fd9cfc75c4f9fa037ac6b7bb550",
      "tree": "98bf2f5da24333c2c19b63deacdbf293baec60a6",
      "parents": [
        "427540609f8c276757551e2acdabbd01fb666526",
        "032fefc3b547726e675a112baa8d1b6c550ac192"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Dec 02 17:35:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 02 17:35:39 2017 +0000"
      },
      "message": "Merge \"bug fixes * add timestamp to those pull from StatsCompanionService * GaugeMetricProducer unregister from StatsPullerManager when dismissed\""
    },
    {
      "commit": "032fefc3b547726e675a112baa8d1b6c550ac192",
      "tree": "18bd607c5095f7646cd48da104969c7421131440",
      "parents": [
        "f511a7e48119db39a0f3a3fb5cfb5b710f794de7"
      ],
      "author": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Fri Dec 01 23:30:59 2017 -0800"
      },
      "committer": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Fri Dec 01 23:30:59 2017 -0800"
      },
      "message": "bug fixes\n* add timestamp to those pull from StatsCompanionService\n* GaugeMetricProducer unregister from StatsPullerManager when dismissed\n\nTest: cts test\nChange-Id: I930179979c146a7407aec3df7e76833f51e9b346\n"
    },
    {
      "commit": "68ac35cdf6bac74e48cc8a6fad223c944ff463ac",
      "tree": "09ed189197bb741694b2f1a297ca7cf88cc3b00d",
      "parents": [
        "ace4014402bf6bbaf900b425da61e2b87677de60",
        "bdf58942c86240070bacc25203177cf47f6a1577"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 01 23:51:32 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 01 23:51:32 2017 +0000"
      },
      "message": "Merge \"1. Implement Privacy Policy Tag Inheritance 2. Expose Dest values in IIncidentReportArgs.h\""
    },
    {
      "commit": "bdf58942c86240070bacc25203177cf47f6a1577",
      "tree": "08b0670d26381d0e897ba73582e0f8dd2958989d",
      "parents": [
        "316b8775ba5d5323025fca143539b2d792a528a6"
      ],
      "author": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Tue Nov 14 17:58:19 2017 -0800"
      },
      "committer": {
        "name": "Yi Jin",
        "email": "jinyithu@google.com",
        "time": "Fri Dec 01 13:37:13 2017 -0800"
      },
      "message": "1. Implement Privacy Policy Tag Inheritance\n2. Expose Dest values in IIncidentReportArgs.h\n\nPlease see bug for detail descriptions.\n\nBug: 67869340\nTest: unit tested and on-device test. Ran command:\n$ out/host/linux-x86/bin/incident-section-gen incidentd\nto test various of privacy taggings.\nChange-Id: I12af3d7da4c7c72bd63598893fe2c1f70b09baa4\n"
    },
    {
      "commit": "aa39bc739aff77b23d1eb214cf05f65a3fb7ccf5",
      "tree": "93ff371d49e4ace0d3220291fc61d3175520ef66",
      "parents": [
        "61e1386b3ac290a42c6f9fd3048303db89fbe18f"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Fri Dec 01 11:16:50 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Fri Dec 01 11:16:50 2017 -0800"
      },
      "message": "Return correct results in StatsManager APIs\n\nTest: manual\nChange-Id: I12f392beb082a8919b85a4f617a616c8344c1e3a\n"
    },
    {
      "commit": "f60e0bad5908c51c954ca8dc763c8efd394c56dc",
      "tree": "16be5673878158aeab93953c10062029918b2beb",
      "parents": [
        "61e1386b3ac290a42c6f9fd3048303db89fbe18f"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Nov 29 15:06:41 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Fri Dec 01 09:14:13 2017 -0800"
      },
      "message": "Fix how DurationTracker passes results to DurationMetricProducer\n\nThis allows us to safely delete old buckets after onDumpReport is called.\n\nTest: statsd_test\n\nChange-Id: If8e28a184dcaf491bcd9a62d0d61beabca5a91a5\n"
    },
    {
      "commit": "01b0fa53e686f640ef023d9def5e5602a951756a",
      "tree": "5f041d3e4faff9ea4195bf362aa8ba8b08a4346a",
      "parents": [
        "f511a7e48119db39a0f3a3fb5cfb5b710f794de7",
        "f2bee6fec965fd42ab223f1a3aa705f07ba79aea"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 01 02:33:08 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 01 02:33:08 2017 +0000"
      },
      "message": "Merge \"1/ Only expose thread-safe interfaces in metric producer. 2/ Simplify lock logic. 3/ Add test for duration metric producer.\""
    },
    {
      "commit": "4f0bb193bd2c8ca88d46a8ce4aa27cb7debb34c9",
      "tree": "c24addcba1874241a258c170f9f046209d844c7d",
      "parents": [
        "5235e10b70019af8248391f6c3cc7036c1e3658a",
        "b236c86b81a1e58fce6fe576dd336764138899d0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 30 23:11:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 30 23:11:49 2017 +0000"
      },
      "message": "Merge \"allow dump_report command to output proto binary in addition to text\""
    },
    {
      "commit": "ddccf0a94e5ad3673517246997da996e7a54768d",
      "tree": "077299fd3364c4c0ccde86e43226613697423192",
      "parents": [
        "ada2f4dcf8b481e9302d2fb597af9cde5f100d26"
      ],
      "author": {
        "name": "Bookatz",
        "email": "bookatz@google.com",
        "time": "Tue Nov 28 16:48:14 2017 -0800"
      },
      "committer": {
        "name": "Adam Bookatz",
        "email": "bookatz@google.com",
        "time": "Thu Nov 30 19:08:26 2017 +0000"
      },
      "message": "Add/fix a few statsd atoms\n\nAdding atoms:\nMobileRadioPowerStateChanged\nWifiRadioPowerStateChanged\nDeviceIdlingModeStateChanged\n\nMade the following other atom changes:\nAdded tag to WakeupAlarmOccurred\nChanged some ints to enums\nRemoved the obsolete UidWakelockStateChanged\n\nTest: none\nFixes: 69479171\nFixes: 69479176\nFixes: 69479177\nFixes: 69479169\nChange-Id: I815c0f896ef050a4bc1fca482fb02ccb8e78f009\n"
    },
    {
      "commit": "b236c86b81a1e58fce6fe576dd336764138899d0",
      "tree": "c6477cbf7a04e238f88aedf6eb2f65f5ba2e9e87",
      "parents": [
        "409743395c13451e8324675775c8e0b03167771d"
      ],
      "author": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Tue Nov 28 22:20:44 2017 -0800"
      },
      "committer": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Thu Nov 30 09:59:04 2017 -0800"
      },
      "message": "allow dump_report command to output proto binary\nin addition to text\n\nTest: cts test\nChange-Id: I439a371d54a57116cf2ad85899850ac4783101e2\n"
    },
    {
      "commit": "f2bee6fec965fd42ab223f1a3aa705f07ba79aea",
      "tree": "e54e47b2066e6a7c57bafb723d7a3d9c6d296f7c",
      "parents": [
        "cf6e63b4dbe69f140850d9709095a9b068474449"
      ],
      "author": {
        "name": "Yangster",
        "email": "yanglu@google.com",
        "time": "Wed Nov 29 12:01:05 2017 -0800"
      },
      "committer": {
        "name": "Yangster-mac",
        "email": "yanglu@google.com",
        "time": "Thu Nov 30 09:32:17 2017 -0800"
      },
      "message": "1/ Only expose thread-safe interfaces in metric producer.\n2/ Simplify lock logic.\n3/ Add test for duration metric producer.\n\nTest: all unit test passsed.\nChange-Id: If6ee2e69a17f12406f4b3ea3553b14642cd636d6\n"
    },
    {
      "commit": "05013b377266f9e4e2651c6aa819960479dc3676",
      "tree": "dabb7d37b7723e8d77126cceb9b2c5c75f47f5c9",
      "parents": [
        "9789f090a3dd6c8ba8a923d61d80b7bf189c0ea7"
      ],
      "author": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Tue Nov 21 10:21:41 2017 -0800"
      },
      "committer": {
        "name": "Chenjie Yu",
        "email": "cjyu@google.com",
        "time": "Thu Nov 30 06:54:54 2017 +0000"
      },
      "message": "add atoms and pulling methods for wifi controller activity and modem\ncontroller activity\n\nTest: manual test on device\nChange-Id: Ib4213b4bf8badaf22b5f655e0261f45a55ab6bb7\n"
    },
    {
      "commit": "f9d7ec5cf3e2408ad6b90183c96622768ae0b7d4",
      "tree": "701ead79ca7654e854ff061d8b1301c66132dda7",
      "parents": [
        "304494b61d0da759cfc3e613f9d0bafb615cd175",
        "77068c43e740f16cb4c84b9bd7c9f85b96d06b7c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 30 05:59:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 30 05:59:39 2017 +0000"
      },
      "message": "Merge \"Modify statsd dogfood app to use toString() of enum\""
    },
    {
      "commit": "77068c43e740f16cb4c84b9bd7c9f85b96d06b7c",
      "tree": "da2b3638f3e286c0c07816f84dbd9ce29e076c36",
      "parents": [
        "e95a425a7a614775f1e97d542baaf4c4f803c055"
      ],
      "author": {
        "name": "Tej Singh",
        "email": "singhtejinder@google.com",
        "time": "Wed Nov 29 19:25:32 2017 -0800"
      },
      "committer": {
        "name": "Tej Singh",
        "email": "singhtejinder@google.com",
        "time": "Wed Nov 29 19:33:08 2017 -0800"
      },
      "message": "Modify statsd dogfood app to use toString() of enum\n\nUsing this reduces code size and allows us to not have to\nmake a change whenever atoms.proto changes.\n\nTest: manual, tested app on device\n\nChange-Id: Ieb325a7a7bab7430273340bb9d05974fabbadc0d\n"
    },
    {
      "commit": "d7ec64ccd0c2b180fc9fd3ff526642e5e7e28af0",
      "tree": "fdb7c462b5bdbe5cfc44a79deee42a609564f7f4",
      "parents": [
        "a3dcd16044a4d8ad57293edfa94cf9b644bd506d"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Thu Nov 30 01:52:01 2017 +0000"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Wed Nov 29 17:54:23 2017 -0800"
      },
      "message": "Revert \"Revert \"Updated screenshot code to reflect native changes.\"\"\n\nThis reverts commit ea2eb5a14447869325ced829910f072c81913ef3.\n\nReason for revert: Ready to test out changes with SystemUI update\n\nChange-Id: I9c8d5672a530334300bc1ea454a7fd7900296c7c\n"
    },
    {
      "commit": "c136f45aee2c193e954c107f35109ccc8b1146b3",
      "tree": "5a0d04c466e980fab634ba0eb2c55b200a7f8936",
      "parents": [
        "22b94c3f0f8d3937efd15aa787d3084fd8e01c9e"
      ],
      "author": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Mon Nov 27 11:52:26 2017 -0800"
      },
      "committer": {
        "name": "David Chen",
        "email": "dwchen@google.com",
        "time": "Wed Nov 29 14:55:15 2017 -0800"
      },
      "message": "Adds guardrail for memory usage for statsd uid map.\n\nChecks if current memory usage of uid map is above a configured limit\nand if so, we start deleting snapshots. If there are no more\nsnapshots, we begin deleting two of the deltas. Also records stats\nin the guardrail StatsdStats. Also fixes an edge case where a config\nis added after the snapshots are added. We request a snapshot of all\ninstalled uid\u0027s at that moment. Finally, adds the uid map memory size\nwhen determining if we should send a broadcast to trigger collection.\n\nTest: Added unit-tests and check they pass on marlin.\nChange-Id: Id5d86378bd1efe12a06b409164c777c0c6f4e3ab\n"
    },
    {
      "commit": "12ccf86fdbc06adb4445edf78d3223079585a6f2",
      "tree": "19cf1223ce44b8e2f73d8fe8c1012accd6f2f5b2",
      "parents": [
        "8d0e284df437975d9995ea714ea325935e71c5dd",
        "6a8c799d901cbd166aa6463d7dea231bcf594a1e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 29 21:45:01 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 29 21:45:01 2017 +0000"
      },
      "message": "Merge \"Revert \"Thread-safe metric producers.\"\""
    },
    {
      "commit": "8d0e284df437975d9995ea714ea325935e71c5dd",
      "tree": "51ae4fb9811b0a28043d2a1aadc9b36f8499f94e",
      "parents": [
        "f7cff5e48ec2ce46a6f3e3b25a88c5f1dd712761",
        "ea2eb5a14447869325ced829910f072c81913ef3"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Wed Nov 29 21:42:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 29 21:42:37 2017 +0000"
      },
      "message": "Merge \"Revert \"Updated screenshot code to reflect native changes.\"\""
    },
    {
      "commit": "ea2eb5a14447869325ced829910f072c81913ef3",
      "tree": "dc8f10959a7fd18646e3d750bc155d4eb148e613",
      "parents": [
        "689e091c7faa30f005b9adc0b7b3d2066c62be84"
      ],
      "author": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Wed Nov 29 21:26:24 2017 +0000"
      },
      "committer": {
        "name": "Chavi Weingarten",
        "email": "chaviw@google.com",
        "time": "Wed Nov 29 21:38:57 2017 +0000"
      },
      "message": "Revert \"Updated screenshot code to reflect native changes.\"\n\nThis reverts commit 689e091c7faa30f005b9adc0b7b3d2066c62be84.\n\nReason for revert: SystemUI and some other places need to be updated as well. Will resubmit with the other necessary changes\n\nChange-Id: I8d1955b289d91a89c4d3f117c0ba0c3119ff51fc\nBug: 69898957\n"
    },
    {
      "commit": "6a8c799d901cbd166aa6463d7dea231bcf594a1e",
      "tree": "c8f9873e3bbb633cc3f7671e93b741fff301abe3",
      "parents": [
        "8de6939c494da838f6dbbda0631f66425dbbd25b"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Nov 29 20:02:07 2017 +0000"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Nov 29 20:02:07 2017 +0000"
      },
      "message": "Revert \"Thread-safe metric producers.\"\n\nThis reverts commit 8de6939c494da838f6dbbda0631f66425dbbd25b.\n\nChange-Id: Ieae841bfc5339b569f0fca909a6066de72806617\n"
    },
    {
      "commit": "7d93ce60507637c8a138ad060ac967219bd274bc",
      "tree": "a2cf6eccf624a95eaa8d688d01807129f0edd224",
      "parents": [
        "de449ea6e226f85edcf354c329f0fe61528cbe6a",
        "74fed9729fdabff8d2c5a3da89eac26b5aff21d4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 29 09:04:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 29 09:04:40 2017 +0000"
      },
      "message": "Merge \"Update adb command to remove all configs from statsd\""
    },
    {
      "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": "b4cb48105f757d680f4ab39d7437027407a65a95",
      "tree": "a78bc1ac96eb866dbd24be6f77276103eb8638af",
      "parents": [
        "e1a2016c6ac0abdcbfa5a71f6796403f24f53bca",
        "0fac5b17e6ec11461a35859740212daa13d2c5cd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Nov 29 06:00:57 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 29 06:00:57 2017 +0000"
      },
      "message": "Merge \"Add no more than 20 timestamps for a config in StatsdStats.\""
    },
    {
      "commit": "0fac5b17e6ec11461a35859740212daa13d2c5cd",
      "tree": "f1dc87e297b39501c4dc5aba53f2881be7c6c02b",
      "parents": [
        "d2b6b41095055ee385dc3f63fce6b8b5c0e55e26"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Tue Nov 28 16:07:02 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Tue Nov 28 16:07:02 2017 -0800"
      },
      "message": "Add no more than 20 timestamps for a config in StatsdStats.\n\nTo avoid the array to grow unboundedly.\n\nTest: added unit tests.\nChange-Id: I3c4823b2a89bb69428d81b9fe348e7ea9aba24c7\n"
    },
    {
      "commit": "689e091c7faa30f005b9adc0b7b3d2066c62be84",
      "tree": "423b01b4806be67f073d15c12b59fdf734e92395",
      "parents": [
        "418346a8cc44c587fdf7b22233e1634c2a838294"
      ],
      "author": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Mon Nov 20 18:33:05 2017 -0800"
      },
      "committer": {
        "name": "chaviw",
        "email": "chaviw@google.com",
        "time": "Tue Nov 28 15:16:10 2017 -0800"
      },
      "message": "Updated screenshot code to reflect native changes.\n\nThe changes in native code removed using a GraphicBufferProducer and\ninstead use only a GraphicBuffer to generate screenshots. Updated JNI\ncode so it calls the screensot function that returns a GraphicBuffer\nand handle returning either a Surface, GraphicBuffer, or Bitmap.\n\nAlso updated screencap shell code so it uses the new GraphicBuffer\nscreenshot code.\n\nTest: Recents, screenshot from SystemUi, screenshot from shell.\nChange-Id: I6cb4f619e59461790a2a8f0cd2ea1192d9ae66b6\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": "97d43d525caa91da79abf1f5b0ecc289d7fd9f06",
      "tree": "cc23fd6db84858ba512326c30b6b986e5ea251de",
      "parents": [
        "c8862caf4f2deebe7e81f8a291233fa1035ecdd4",
        "9975205ded668aba5576d4883b2073dc274b39f0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 27 22:13:20 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 27 22:13:20 2017 +0000"
      },
      "message": "Merge \"Fix a bug in test that cause the flakyness in SimpleConditionTracker_test.\""
    },
    {
      "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": "9975205ded668aba5576d4883b2073dc274b39f0",
      "tree": "a42f109caf84eeedadfff07bb9baf60912442897",
      "parents": [
        "c9fa2f6d4ea5c3f6730bee67646c0423f5693640"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon Nov 27 11:40:45 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Mon Nov 27 11:40:45 2017 -0800"
      },
      "message": "Fix a bug in test that cause the flakyness in SimpleConditionTracker_test.\n\nTest: statsd_test\nChange-Id: I9f785d26c857023fbe44d71eb3490a50fcc6139a\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": "9f36f6b3f4bdebf18e1af8ff4789d66cde85a2bc",
      "tree": "3a771da99e0b0c4cf8fb5e99a548698e394b3ba5",
      "parents": [
        "5719bceb4eae5c51f50630623bf83febfc9b39ab",
        "7c334a129e93e405a72e8299a1cd928af079d14f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 23 00:12:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 23 00:12:40 2017 +0000"
      },
      "message": "Merge \"Make member function as const whenever possible.\""
    },
    {
      "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": "93f46aa9f135e8157b1d81df625bd8934cb1368f",
      "tree": "97fc84d74c490a3d9edb64493faf97d6baf4a98a",
      "parents": [
        "7430d8d89667a39c5f993dc46c00c98814382f72"
      ],
      "author": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Nov 22 12:51:10 2017 -0800"
      },
      "committer": {
        "name": "Yao Chen",
        "email": "yaochen@google.com",
        "time": "Wed Nov 22 12:51:10 2017 -0800"
      },
      "message": "Fix ConfigManager unit test.\n\nTest: statsd_test\nChange-Id: I47c5458fef7a30a618e783a94c3f10659d0be742\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": "9253eeadbd6323a7f5accc7ba86e6bd224c9e848",
      "tree": "ff66aa0a02fb8655f1d1856c24ab16b81220319d",
      "parents": [
        "a8f07c0b1e6ba049245ee8a13a80c1a7af0e0a6b",
        "1704e3cf0c445512f0a9644485dd3449e874556b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 21 20:31:47 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 21 20:31:47 2017 +0000"
      },
      "message": "Merge \"The pm command is no more.\""
    }
  ],
  "next": "a82d460baf0989c7f2eaf36f7e3669748a1a91fd"
}
