)]}'
{
  "log": [
    {
      "commit": "d0dfca434582aa535a678669822c1dec294b6fe2",
      "tree": "8e16eea165b7560ae4e9c4af9bd8cecc2cc5e123",
      "parents": [
        "702e715e356ef3ca6f1662a5b13f3b2073b13225",
        "5eb37c1e134df02ed6a32535624d9959c5a53fc0"
      ],
      "author": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Tue Feb 07 08:56:40 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "gerrit2@50f9da5d34fb",
        "time": "Tue Feb 07 08:56:40 2017 +0000"
      },
      "message": "Merge \"Fix decoders and filters for hostname-free metrics\""
    },
    {
      "commit": "702e715e356ef3ca6f1662a5b13f3b2073b13225",
      "tree": "e32fd54b1954acede9f7b195e1056f9cc53d37b4",
      "parents": [
        "a135f371b24d61120e3641ebc6bdeaba5338e697",
        "0c99daa5c122ee112ef4ae41bf298f837c2dcac4"
      ],
      "author": {
        "name": "Ales Komarek",
        "email": "akomarek@mirantis.com",
        "time": "Tue Feb 07 08:51:21 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "gerrit2@50f9da5d34fb",
        "time": "Tue Feb 07 08:51:21 2017 +0000"
      },
      "message": "Merge \"Add Lua filter to get metrics from auth messages\""
    },
    {
      "commit": "a135f371b24d61120e3641ebc6bdeaba5338e697",
      "tree": "62f65e47014c4735616cdcd06b330bc8071dcc28",
      "parents": [
        "9612dacbafd4fe955c3fa3a0abecc494951d4d73",
        "24ad8e7620d022952ac992fe7dc649c64310deae"
      ],
      "author": {
        "name": "Aleš Komárek",
        "email": "github@newt.cz",
        "time": "Mon Feb 06 13:52:21 2017 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 06 13:52:21 2017 +0100"
      },
      "message": "Merge pull request #114 from ppetit/sensu\n\nAdding support for sensu as alerting destination"
    },
    {
      "commit": "24ad8e7620d022952ac992fe7dc649c64310deae",
      "tree": "0d8e0d6d06be3281bd5430d4f78e7bb90c9d51b2",
      "parents": [
        "65094620c9c53568f1abb9ac8e97d5aa8c822c07"
      ],
      "author": {
        "name": "Patrick Petit",
        "email": "ppetit@mirantis.com",
        "time": "Thu Jan 19 17:04:09 2017 +0100"
      },
      "committer": {
        "name": "Patrick Petit",
        "email": "ppetit@mirantis.com",
        "time": "Fri Feb 03 18:31:59 2017 +0100"
      },
      "message": "Adding support for sensu as alerting destination\nThe AFD and GSE metrics are sent by the aggregator to local sensu-client.\nA sensu-client client should be running on all nodes though (not only the\naggregator) for the sensu integrtion to work correctly.\n"
    },
    {
      "commit": "5eb37c1e134df02ed6a32535624d9959c5a53fc0",
      "tree": "8f5dc970697ba7286606d3075dc499294e363898",
      "parents": [
        "9612dacbafd4fe955c3fa3a0abecc494951d4d73"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Thu Feb 02 14:43:10 2017 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Thu Feb 02 17:09:18 2017 +0100"
      },
      "message": "Fix decoders and filters for hostname-free metrics\n\nWhen porting StackLight to MK, we missed an important code change [1]\nthat fixes the metrics not associated to a particular host. This change\nis backporting the fix in the current code base.\n\n[1] https://review.openstack.org/#/c/378689/\n\nChange-Id: If368f49c5b58e703f23723714871f5950d965183\n"
    },
    {
      "commit": "9612dacbafd4fe955c3fa3a0abecc494951d4d73",
      "tree": "9ef8509b9c565f2e0ed4243af66cbdd4229d30ac",
      "parents": [
        "4a51bfb9f0caf7b4043c94a269e42221616a3bfb"
      ],
      "author": {
        "name": "Filip Pytloun",
        "email": "filip@pytloun.cz",
        "time": "Thu Feb 02 13:02:03 2017 +0100"
      },
      "committer": {
        "name": "Filip Pytloun",
        "email": "filip@pytloun.cz",
        "time": "Thu Feb 02 13:02:03 2017 +0100"
      },
      "message": "Unify Makefile, .gitignore and update readme\n"
    },
    {
      "commit": "0c99daa5c122ee112ef4ae41bf298f837c2dcac4",
      "tree": "fbbe623776f5ccefedaa9f59303a92646b1a4b17",
      "parents": [
        "4a51bfb9f0caf7b4043c94a269e42221616a3bfb"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Fri Jan 27 14:29:55 2017 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Tue Jan 31 15:35:57 2017 +0000"
      },
      "message": "Add Lua filter to get metrics from auth messages\n\nThis filter sends the following multi-value metrics every minute:\n\n- authentications_total, these counters reset to zero when the filter\n  is restarted\n  - all: the total number of authentications\n  - success: the total number of successful authentications\n  - failed: the total number of failed authentications\n- authentications_rate\n  - all: authentications per second in the last minute\n  - success: successful authentications per second in the last minute\n  - failed: failed authentications per second in the last minute\n- authentications_percent\n  - success: percentage of successful authentications in the last minute\n  - failed: percentage of failed authentications in the last minute\n\nChange-Id: Ia54ff110512e249d70d6568a4633da42748d45f5\n"
    },
    {
      "commit": "4a51bfb9f0caf7b4043c94a269e42221616a3bfb",
      "tree": "5cf343df475daddd1c1e34f52200d664cabf7e83",
      "parents": [
        "be584997a375619757d3b7fb4ddd3752bb37ca8f"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Fri Jan 27 12:17:51 2017 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Mon Jan 30 15:09:25 2017 +0100"
      },
      "message": "Send CADF audit events to Elasticsearch\n\nChange-Id: I0c359bf7eccd8c401348880359d0f189fd9bd42b\n"
    },
    {
      "commit": "be584997a375619757d3b7fb4ddd3752bb37ca8f",
      "tree": "6f1cff4232ba5255f3f553872a24e913cb69766a",
      "parents": [
        "3ec63f34fd1fa37c90a7dce226b6767adcb573ff"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Fri Jan 27 12:16:43 2017 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Mon Jan 30 15:09:24 2017 +0100"
      },
      "message": "Extend notification decoder to support CADF\n\nChange-Id: Ie16578792cc954c344e64cfe45e8b4504e4126e3\n"
    },
    {
      "commit": "3ec63f34fd1fa37c90a7dce226b6767adcb573ff",
      "tree": "204c824809b409dc93524f206ea3e38fda5f32f0",
      "parents": [
        "52e8f66b31e8aa2c35cfb23bccf8c2cc224265ed",
        "28a0de6437006cc8ea3d71dfa3fbc1f364468814"
      ],
      "author": {
        "name": "pasquier-s",
        "email": "spasquier@mirantis.com",
        "time": "Tue Jan 24 17:05:01 2017 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 24 17:05:01 2017 +0100"
      },
      "message": "Merge pull request #113 from simonpasquier/improve-keystone-wsgi-decoder\n\nImprove the Keystone WSGI log decoder"
    },
    {
      "commit": "52e8f66b31e8aa2c35cfb23bccf8c2cc224265ed",
      "tree": "4a2be7f0161d0e1478718a461a95fda57f02eebb",
      "parents": [
        "79dd83490cd683523889abc4e135c5bd465fff3a",
        "ee5d9ae55170744dd7648bab04218a412e9f987a"
      ],
      "author": {
        "name": "pasquier-s",
        "email": "spasquier@mirantis.com",
        "time": "Tue Jan 24 14:23:13 2017 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jan 24 14:23:13 2017 +0100"
      },
      "message": "Merge pull request #117 from simonpasquier/cast-http-status-to-int\n\nCast \u0027http_status\u0027 field into an integer"
    },
    {
      "commit": "28a0de6437006cc8ea3d71dfa3fbc1f364468814",
      "tree": "c18428dcbad10b3e80f36b1d57ba4bc235602ba7",
      "parents": [
        "65094620c9c53568f1abb9ac8e97d5aa8c822c07"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Thu Jan 19 11:14:37 2017 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Tue Jan 24 14:14:44 2017 +0100"
      },
      "message": "Improve the Keystone WSGI log decoder\n\nThis Keystone WSGI log decoder is now able to support arbitrary Apache\nlog formats.\n"
    },
    {
      "commit": "ee5d9ae55170744dd7648bab04218a412e9f987a",
      "tree": "4a2be7f0161d0e1478718a461a95fda57f02eebb",
      "parents": [
        "79dd83490cd683523889abc4e135c5bd465fff3a"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Tue Jan 24 08:55:36 2017 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Tue Jan 24 08:55:36 2017 +0100"
      },
      "message": "Cast \u0027http_status\u0027 field into an integer\n"
    },
    {
      "commit": "79dd83490cd683523889abc4e135c5bd465fff3a",
      "tree": "4cfe27ab7c68578c278b6f5bba87af0e9315c223",
      "parents": [
        "16ea4772c80f280660328f1cf9631e5ff53b1e95",
        "60b5e0130ac6e8569e53e63193861ff4ea43677a"
      ],
      "author": {
        "name": "pasquier-s",
        "email": "spasquier@mirantis.com",
        "time": "Mon Jan 23 16:18:35 2017 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 23 16:18:35 2017 +0100"
      },
      "message": "Merge pull request #115 from obourdon/nova_aggregates\n\nAdd metrics for Nova aggregates"
    },
    {
      "commit": "16ea4772c80f280660328f1cf9631e5ff53b1e95",
      "tree": "8608a399bdcc9ff289529b7219f5c8e7347e1e74",
      "parents": [
        "65094620c9c53568f1abb9ac8e97d5aa8c822c07",
        "e82a895e90bd9ca0e75345e9e94d4454eca73f35"
      ],
      "author": {
        "name": "pasquier-s",
        "email": "spasquier@mirantis.com",
        "time": "Mon Jan 23 10:38:59 2017 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 23 10:38:59 2017 +0100"
      },
      "message": "Merge pull request #116 from simonpasquier/add-udp-output-support\n\nAdd support for UdpOutput plugin"
    },
    {
      "commit": "e82a895e90bd9ca0e75345e9e94d4454eca73f35",
      "tree": "8608a399bdcc9ff289529b7219f5c8e7347e1e74",
      "parents": [
        "65094620c9c53568f1abb9ac8e97d5aa8c822c07"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Fri Jan 20 10:27:54 2017 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Fri Jan 20 17:00:49 2017 +0100"
      },
      "message": "Add support for UdpOutput plugin\n"
    },
    {
      "commit": "60b5e0130ac6e8569e53e63193861ff4ea43677a",
      "tree": "2367d853b9ce1084b208827523d2cc464c41e749",
      "parents": [
        "65094620c9c53568f1abb9ac8e97d5aa8c822c07"
      ],
      "author": {
        "name": "Olivier Bourdon",
        "email": "obourdon@mirantis.com",
        "time": "Fri Jan 20 09:54:49 2017 +0100"
      },
      "committer": {
        "name": "Olivier Bourdon",
        "email": "obourdon@mirantis.com",
        "time": "Fri Jan 20 09:57:15 2017 +0100"
      },
      "message": "Add metrics for Nova aggregates\n"
    },
    {
      "commit": "65094620c9c53568f1abb9ac8e97d5aa8c822c07",
      "tree": "2d6344fb036fe453052ca81045319ab4aba41695",
      "parents": [
        "f99a2e34ece9c01524348a07e473fa1bd2b6a359",
        "7ee03413dcb12a71a3b20173ea156df36c65707d"
      ],
      "author": {
        "name": "pasquier-s",
        "email": "spasquier@mirantis.com",
        "time": "Mon Jan 09 09:09:20 2017 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 09 09:09:20 2017 +0100"
      },
      "message": "Merge pull request #112 from ityaptin/master\n\n[ceilometer-collector] Continue resource injecting after samples failure"
    },
    {
      "commit": "7ee03413dcb12a71a3b20173ea156df36c65707d",
      "tree": "2d6344fb036fe453052ca81045319ab4aba41695",
      "parents": [
        "f99a2e34ece9c01524348a07e473fa1bd2b6a359"
      ],
      "author": {
        "name": "Ilya Tyaptin",
        "email": "ityaptin@mirantis.com",
        "time": "Tue Dec 20 18:25:32 2016 +0400"
      },
      "committer": {
        "name": "Ilya Tyaptin",
        "email": "ityaptin@mirantis.com",
        "time": "Tue Dec 20 18:29:03 2016 +0400"
      },
      "message": "Do not cancel resource injecting after samples failure\n\nThis change is need because we should save resources even\nif samples data is corrupted.\nAlso, -2 exit codes changed to -1, because -2 is used\nfor encoders only\n"
    },
    {
      "commit": "f99a2e34ece9c01524348a07e473fa1bd2b6a359",
      "tree": "89276e36790caed1ff23b9840887528bd312977c",
      "parents": [
        "0352f86cb7d3803b06354355b2ea46036f73425d",
        "a1218331319a6024e4160ecb13bd31ff0ff13f95"
      ],
      "author": {
        "name": "pasquier-s",
        "email": "spasquier@mirantis.com",
        "time": "Tue Dec 20 10:52:34 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 20 10:52:34 2016 +0100"
      },
      "message": "Merge pull request #111 from simonpasquier/restore-block-policy\n\nRestore block policy"
    },
    {
      "commit": "a1218331319a6024e4160ecb13bd31ff0ff13f95",
      "tree": "89276e36790caed1ff23b9840887528bd312977c",
      "parents": [
        "0a9b52af98273debecc44bf2fdecd8da58947425"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Tue Dec 20 09:59:04 2016 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Tue Dec 20 09:59:04 2016 +0100"
      },
      "message": "Add logger_matcher option to the logs_counter filter\n\nThis avoids hardcoding the matcher in the Lua code.\n"
    },
    {
      "commit": "0a9b52af98273debecc44bf2fdecd8da58947425",
      "tree": "c6b77611ae56c079166dadda3365095c9cd96606",
      "parents": [
        "70857dc6366690048fee413da739aa08d64d6e6c"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Fri Dec 16 15:26:00 2016 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Tue Dec 20 09:29:46 2016 +0100"
      },
      "message": "Move hdd_errors filter to the Heka formula\n\nThis is to be consistent with the other log_collector filters.\n"
    },
    {
      "commit": "70857dc6366690048fee413da739aa08d64d6e6c",
      "tree": "b8c9ea2d9a9eaf3465b42de90f008ae0a67923bd",
      "parents": [
        "e9d98eeb89ecfc03df0ad569550a36aab040f743"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Fri Dec 16 15:23:37 2016 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Tue Dec 20 09:29:46 2016 +0100"
      },
      "message": "Improve inject_bulk_metric()\n\nThis change ensures that bulk metrics have an explicit Logger field as\nwell as Fields[source] and Fields[type] like regular metric messages.\nIt also makes the configuration of the input metric plugin on the\nmetric_collector side more explicit about which metrics to deserialize.\n"
    },
    {
      "commit": "e9d98eeb89ecfc03df0ad569550a36aab040f743",
      "tree": "3c92a20158d97f05005f3cba79e7f9088e2ed938",
      "parents": [
        "569082e4d01bc0ad21732deb5139095309801511"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Fri Dec 16 14:42:01 2016 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Tue Dec 20 09:29:43 2016 +0100"
      },
      "message": "Move convert_to_sec() to lma_utils module\n"
    },
    {
      "commit": "569082e4d01bc0ad21732deb5139095309801511",
      "tree": "6743facfd7d1f8df8e9c0acaf2d0ec03c387543a",
      "parents": [
        "a595a97b5496d3beb208f8d9116f385943fd5988"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Fri Dec 16 14:35:59 2016 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Tue Dec 20 09:29:07 2016 +0100"
      },
      "message": "Restore \u0027block\u0027 policy for Elasticsearch output\n"
    },
    {
      "commit": "a595a97b5496d3beb208f8d9116f385943fd5988",
      "tree": "9c3c4a5c7ef69705cf6d15f124cac8d030ee47f0",
      "parents": [
        "0352f86cb7d3803b06354355b2ea46036f73425d"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Fri Dec 16 14:29:05 2016 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Tue Dec 20 09:29:03 2016 +0100"
      },
      "message": "Send log_messages metric as bulk\n\nUsing bulk metrics for the log counters reduces largely the likelihood\nof blocking the Heka pipeline. Instead of injecting (x services\n* y levels) metric messages, the filter injects only one big message.\n\nThis changes also updates the configuration of the metric_collector\nservice to deserialize the bulk metric to support alarms on log\ncounters.\n"
    },
    {
      "commit": "0352f86cb7d3803b06354355b2ea46036f73425d",
      "tree": "873e8d2e18501460446d1d971b36eb6bfde8b328",
      "parents": [
        "b0187b54555024553c735354d602d45001ba3f82",
        "9e97c130e6bab598422ac39c57ddadfe5fff7b46"
      ],
      "author": {
        "name": "pasquier-s",
        "email": "spasquier@mirantis.com",
        "time": "Thu Dec 15 10:58:53 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 15 10:58:53 2016 +0100"
      },
      "message": "Merge pull request #109 from elemoine/elasticsearch-drop\n\nUse full action \"drop\" for logs"
    },
    {
      "commit": "b0187b54555024553c735354d602d45001ba3f82",
      "tree": "ab2e5d97cfd2917609b56da06363af4352e86a4f",
      "parents": [
        "59d91c1f9c75fe76fdc2ca0ed22f1ea559036090",
        "31143bf2a3ff630e05f8dce3614bb10b73c04e28"
      ],
      "author": {
        "name": "pasquier-s",
        "email": "spasquier@mirantis.com",
        "time": "Wed Dec 14 09:38:51 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 14 09:38:51 2016 +0100"
      },
      "message": "Merge pull request #110 from ityaptin/master\n\nFix issue with missed endif"
    },
    {
      "commit": "31143bf2a3ff630e05f8dce3614bb10b73c04e28",
      "tree": "ab2e5d97cfd2917609b56da06363af4352e86a4f",
      "parents": [
        "59d91c1f9c75fe76fdc2ca0ed22f1ea559036090"
      ],
      "author": {
        "name": "Ilya Tyaptin",
        "email": "ityaptin@mirantis.com",
        "time": "Wed Dec 14 11:00:14 2016 +0400"
      },
      "committer": {
        "name": "Ilya Tyaptin",
        "email": "ityaptin@mirantis.com",
        "time": "Wed Dec 14 11:04:37 2016 +0400"
      },
      "message": "Fix issue with missed endif\n"
    },
    {
      "commit": "59d91c1f9c75fe76fdc2ca0ed22f1ea559036090",
      "tree": "1cc17983d44303f85fc2e62157be8f14eccc7d92",
      "parents": [
        "1946bb064493633cb597269f904e2e511352912a",
        "48b0c1bf8ff64842fe44e957ca008c08063ca02f"
      ],
      "author": {
        "name": "swann croiset",
        "email": "scroiset@mirantis.com",
        "time": "Tue Dec 13 17:20:40 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 13 17:20:40 2016 +0100"
      },
      "message": "Merge pull request #106 from SwannCroiset/nagios-host-env\n\nNagios host env"
    },
    {
      "commit": "48b0c1bf8ff64842fe44e957ca008c08063ca02f",
      "tree": "1cc17983d44303f85fc2e62157be8f14eccc7d92",
      "parents": [
        "f122e6b5d55cbc0391521fe8d49fa4e0ecf01480"
      ],
      "author": {
        "name": "Swann Croiset",
        "email": "scroiset@mirantis.com",
        "time": "Tue Dec 13 09:37:53 2016 +0100"
      },
      "committer": {
        "name": "Swann Croiset",
        "email": "scroiset@mirantis.com",
        "time": "Tue Dec 13 17:18:30 2016 +0100"
      },
      "message": "Call once string.format to build host_dimension field\n"
    },
    {
      "commit": "f122e6b5d55cbc0391521fe8d49fa4e0ecf01480",
      "tree": "7b6502184ab1f2b5c31c3922886029fc1e5b89f3",
      "parents": [
        "a7cf2d5214185873e54b036bbc4db10e8f935b87"
      ],
      "author": {
        "name": "Swann Croiset",
        "email": "scroiset@mirantis.com",
        "time": "Mon Dec 12 15:37:26 2016 +0100"
      },
      "committer": {
        "name": "Swann Croiset",
        "email": "scroiset@mirantis.com",
        "time": "Tue Dec 13 17:18:30 2016 +0100"
      },
      "message": "Support legacy heka.server without parse error\n"
    },
    {
      "commit": "a7cf2d5214185873e54b036bbc4db10e8f935b87",
      "tree": "4ab8880ae7bdd62344ec543ac44f1d2e4b2ce875",
      "parents": [
        "1946bb064493633cb597269f904e2e511352912a"
      ],
      "author": {
        "name": "Swann Croiset",
        "email": "scroiset@mirantis.com",
        "time": "Mon Dec 12 14:25:19 2016 +0100"
      },
      "committer": {
        "name": "Swann Croiset",
        "email": "scroiset@mirantis.com",
        "time": "Tue Dec 13 17:18:28 2016 +0100"
      },
      "message": "Suffix Nagios host with the environment_label dimension\n"
    },
    {
      "commit": "1946bb064493633cb597269f904e2e511352912a",
      "tree": "5542691ea6444b773c72895031135f6e233d7275",
      "parents": [
        "f11c2ad5e111a9977620569f04a9c305fe5255af",
        "c6d8df498ba7fd4c151968723c281a7f061f1103"
      ],
      "author": {
        "name": "pasquier-s",
        "email": "spasquier@mirantis.com",
        "time": "Tue Dec 13 16:43:49 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 13 16:43:49 2016 +0100"
      },
      "message": "Merge pull request #108 from simonpasquier/fix-afd-alarm-matcher\n\nFix AFD alarm messsage matcher"
    },
    {
      "commit": "c6d8df498ba7fd4c151968723c281a7f061f1103",
      "tree": "c5888f5745722738b38ffb81ce40d35458a81296",
      "parents": [
        "8a5ae386481428e445d422fa911c19e1ba0c0aec"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Tue Dec 13 13:27:33 2016 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Tue Dec 13 13:27:33 2016 +0100"
      },
      "message": "Remove trailing spaces\n"
    },
    {
      "commit": "8a5ae386481428e445d422fa911c19e1ba0c0aec",
      "tree": "7af936614a6ff844f6d6a7995e31d3f1d55cfec6",
      "parents": [
        "a65938a32c8d4b1a61b1ee28a1737686e288b5c6"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Tue Dec 13 13:25:04 2016 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Tue Dec 13 13:25:04 2016 +0100"
      },
      "message": "Fix message matcher for AFD filters\n\nThe AFD filters should match all the types of metrics. In particular,\nthe previous code missed \u0027multivalue_metric\u0027 messages.\n"
    },
    {
      "commit": "f11c2ad5e111a9977620569f04a9c305fe5255af",
      "tree": "720f3b633d1e0a26bbaa7f8ca9829a7911e1e969",
      "parents": [
        "010d638073af54f5cced7b6b191bb321b3e19fae",
        "c47a5df02ef31600f9b55a1a4b42532843b4df16"
      ],
      "author": {
        "name": "pasquier-s",
        "email": "spasquier@mirantis.com",
        "time": "Tue Dec 13 09:05:42 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 13 09:05:42 2016 +0100"
      },
      "message": "Merge pull request #107 from ppetit/policies\n\nFinal rework of status_of_members policy"
    },
    {
      "commit": "c47a5df02ef31600f9b55a1a4b42532843b4df16",
      "tree": "a5a3c0feb1576e1330196d0ef93884f173331e43",
      "parents": [
        "4b93fb790cfd6d4ff72ca4904e9d3b318483246b"
      ],
      "author": {
        "name": "Patrick Petit",
        "email": "ppetit@mirantis.com",
        "time": "Mon Dec 12 17:28:28 2016 +0100"
      },
      "committer": {
        "name": "Patrick Petit",
        "email": "ppetit@mirantis.com",
        "time": "Mon Dec 12 18:06:29 2016 +0100"
      },
      "message": "Final rework of status_of_members policy\n"
    },
    {
      "commit": "9e97c130e6bab598422ac39c57ddadfe5fff7b46",
      "tree": "e2310fa9e0081e04f163dde6bd6e89a371c99f76",
      "parents": [
        "4b93fb790cfd6d4ff72ca4904e9d3b318483246b"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Mon Dec 12 15:58:19 2016 +0000"
      },
      "committer": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Mon Dec 12 15:58:19 2016 +0000"
      },
      "message": "Use full action \"drop\" for logs\n"
    },
    {
      "commit": "010d638073af54f5cced7b6b191bb321b3e19fae",
      "tree": "8c6601cbb548db91b4ef939d72580fc5aacb9375",
      "parents": [
        "967a0dd7c2ba597442e317926b1c44a4485fccfc",
        "e63fa479dc12de670f21519c233e00c0fe42ecfb"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "eric.lemoine@gmail.com",
        "time": "Mon Dec 12 16:34:48 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 12 16:34:48 2016 +0100"
      },
      "message": "Merge pull request #102 from ityaptin/master\n\nAvoid groups initialization  if required params aren\u0027t defined"
    },
    {
      "commit": "e63fa479dc12de670f21519c233e00c0fe42ecfb",
      "tree": "8c6601cbb548db91b4ef939d72580fc5aacb9375",
      "parents": [
        "75a5fc1cab86f59e35786e03f69fe307899818c3"
      ],
      "author": {
        "name": "Ilya Tyaptin",
        "email": "ityaptin@mirantis.com",
        "time": "Mon Dec 12 16:08:16 2016 +0400"
      },
      "committer": {
        "name": "Ilya Tyaptin",
        "email": "ityaptin@mirantis.com",
        "time": "Mon Dec 12 19:28:03 2016 +0400"
      },
      "message": "Avoid definition of empty ceilometer_collector config groups\n\nIn ceilometer collector we don\u0027t need a initialization of decoder,\nencoder, input and output if amqp, influxdb or elasticsearch connections\nare not defined.\n"
    },
    {
      "commit": "75a5fc1cab86f59e35786e03f69fe307899818c3",
      "tree": "346621f1530e527a2f03a4b57e349cb34a6b05f0",
      "parents": [
        "d31484e10d2be125e841a216359a8467800c74cf"
      ],
      "author": {
        "name": "Ilya Tyaptin",
        "email": "ityaptin@mirantis.com",
        "time": "Mon Dec 12 16:43:16 2016 +0400"
      },
      "committer": {
        "name": "Ilya Tyaptin",
        "email": "ityaptin@mirantis.com",
        "time": "Mon Dec 12 19:27:48 2016 +0400"
      },
      "message": "Avoid definition of empty stacklight heka config groups\n\nConfiguration groups as decoder, input, output or encoder shouldn\u0027t\nbe initialized without required params.\n"
    },
    {
      "commit": "d31484e10d2be125e841a216359a8467800c74cf",
      "tree": "3b82987aae11e7f620a9e8a0bd22dacdfb07b355",
      "parents": [
        "4b93fb790cfd6d4ff72ca4904e9d3b318483246b"
      ],
      "author": {
        "name": "Ilya Tyaptin",
        "email": "ityaptin@mirantis.com",
        "time": "Mon Dec 12 19:25:07 2016 +0400"
      },
      "committer": {
        "name": "Ilya Tyaptin",
        "email": "ityaptin@mirantis.com",
        "time": "Mon Dec 12 19:27:48 2016 +0400"
      },
      "message": "Fix behavior of heka_alarming.py for None service_data\n\nCurrently if service data has a key with None value:\n`{a: None}`, function `grains_for_mine` raises exception.\nIt\u0027s incorrect. For right approach it should only pass this pair.\n"
    },
    {
      "commit": "967a0dd7c2ba597442e317926b1c44a4485fccfc",
      "tree": "c82f2a263229637875bde4dbafa2f822db19f139",
      "parents": [
        "a63784b5e5caa527ac3b4904666311b270d6e6a6",
        "bbe9c4a6f49d34162faccce7245fb5a1419476de"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "eric.lemoine@gmail.com",
        "time": "Mon Dec 12 15:58:24 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 12 15:58:24 2016 +0100"
      },
      "message": "Merge pull request #105 from tcpcloud/revert-104-policies\n\nRevert \"For sake of consistency with availability_of_members\""
    },
    {
      "commit": "bbe9c4a6f49d34162faccce7245fb5a1419476de",
      "tree": "c82f2a263229637875bde4dbafa2f822db19f139",
      "parents": [
        "a63784b5e5caa527ac3b4904666311b270d6e6a6"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "eric.lemoine@gmail.com",
        "time": "Mon Dec 12 15:57:43 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 12 15:57:43 2016 +0100"
      },
      "message": "Revert \"For sake of consistency with availability_of_members\"\n"
    },
    {
      "commit": "a63784b5e5caa527ac3b4904666311b270d6e6a6",
      "tree": "e035a13b1268990e7c39626c0365e94cc2a48d01",
      "parents": [
        "4b93fb790cfd6d4ff72ca4904e9d3b318483246b",
        "9c09aa826a68ae5428dc43c0446e309961f08ca9"
      ],
      "author": {
        "name": "Patrick Petit",
        "email": "ppetit@mirantis.com",
        "time": "Mon Dec 12 15:36:21 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 12 15:36:21 2016 +0100"
      },
      "message": "Merge pull request #104 from ppetit/policies\n\nFor sake of consistency with availability_of_members"
    },
    {
      "commit": "9c09aa826a68ae5428dc43c0446e309961f08ca9",
      "tree": "e035a13b1268990e7c39626c0365e94cc2a48d01",
      "parents": [
        "4b93fb790cfd6d4ff72ca4904e9d3b318483246b"
      ],
      "author": {
        "name": "Patrick Petit",
        "email": "ppetit@mirantis.com",
        "time": "Mon Dec 12 14:30:38 2016 +0100"
      },
      "committer": {
        "name": "Patrick Petit",
        "email": "ppetit@mirantis.com",
        "time": "Mon Dec 12 15:14:38 2016 +0100"
      },
      "message": "For sake of consistency with availability_of_members\n"
    },
    {
      "commit": "4b93fb790cfd6d4ff72ca4904e9d3b318483246b",
      "tree": "c82f2a263229637875bde4dbafa2f822db19f139",
      "parents": [
        "1f369af9157410b707501be67d5aa2db71811790",
        "a2ee49e323536051e14a7d7e8cc152714583206d"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "eric.lemoine@gmail.com",
        "time": "Mon Dec 12 10:40:44 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 12 10:40:44 2016 +0100"
      },
      "message": "Merge pull request #101 from elemoine/remove-majority-of-members\n\nRemove the majority_of_members policy"
    },
    {
      "commit": "1f369af9157410b707501be67d5aa2db71811790",
      "tree": "b745c1ac62ca3fab4408b03ff933d9f445914090",
      "parents": [
        "8754fca84412508f851dc1e9ad42582ce5b3e7ee",
        "fa1f4af38eb0ec13f8de7189e2809b36eb6ed4c4"
      ],
      "author": {
        "name": "swann croiset",
        "email": "scroiset@mirantis.com",
        "time": "Fri Dec 09 14:16:16 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 09 14:16:16 2016 +0100"
      },
      "message": "Merge pull request #99 from SwannCroiset/rm-dashboard-output\n\nRemove heka self-monitoring"
    },
    {
      "commit": "fa1f4af38eb0ec13f8de7189e2809b36eb6ed4c4",
      "tree": "b745c1ac62ca3fab4408b03ff933d9f445914090",
      "parents": [
        "8754fca84412508f851dc1e9ad42582ce5b3e7ee"
      ],
      "author": {
        "name": "Swann Croiset",
        "email": "scroiset@mirantis.com",
        "time": "Fri Dec 09 12:49:43 2016 +0100"
      },
      "committer": {
        "name": "Swann Croiset",
        "email": "scroiset@mirantis.com",
        "time": "Fri Dec 09 12:51:48 2016 +0100"
      },
      "message": "Remove heka self-monitoring\n\nIt has been observed that this self-monitoring can overload the Heka pipeline,\nfurthermore, there is not Grafana dashboard to display those metrics.\n"
    },
    {
      "commit": "8754fca84412508f851dc1e9ad42582ce5b3e7ee",
      "tree": "d73acd3f6b21ba3953f655d75c5d7c6bc9696f7e",
      "parents": [
        "a6c6fb34ad7dec99c646c3348f90d267fd48f573",
        "381d73c20fdea3242dac7e725b8bf4cf858b9ca1"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "eric.lemoine@gmail.com",
        "time": "Thu Dec 08 16:49:37 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 08 16:49:37 2016 +0100"
      },
      "message": "Merge pull request #92 from elemoine/ceilometer-amqp\n\nUse the amqp_ prefix for AMQP variables"
    },
    {
      "commit": "a2ee49e323536051e14a7d7e8cc152714583206d",
      "tree": "d9c008fa0b34308552ee3df9896c2af62149b9d9",
      "parents": [
        "a6c6fb34ad7dec99c646c3348f90d267fd48f573"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Thu Dec 08 11:22:24 2016 +0000"
      },
      "committer": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Thu Dec 08 11:22:24 2016 +0000"
      },
      "message": "Remove the majority_of_members policy\n"
    },
    {
      "commit": "a6c6fb34ad7dec99c646c3348f90d267fd48f573",
      "tree": "5d46a5f286ed90de3b6eb7f185119ac4bf5b45cd",
      "parents": [
        "a65938a32c8d4b1a61b1ee28a1737686e288b5c6",
        "3c70de10f9b9fb9cd00387b1349deb3f0151a5d9"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "eric.lemoine@gmail.com",
        "time": "Thu Dec 08 11:05:31 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 08 11:05:31 2016 +0100"
      },
      "message": "Merge pull request #96 from ppetit/policies\n\nPolicies"
    },
    {
      "commit": "3c70de10f9b9fb9cd00387b1349deb3f0151a5d9",
      "tree": "5d46a5f286ed90de3b6eb7f185119ac4bf5b45cd",
      "parents": [
        "a65938a32c8d4b1a61b1ee28a1737686e288b5c6"
      ],
      "author": {
        "name": "Patrick Petit",
        "email": "ppetit@mirantis.com",
        "time": "Tue Dec 06 19:40:32 2016 +0100"
      },
      "committer": {
        "name": "Patrick Petit",
        "email": "ppetit@mirantis.com",
        "time": "Thu Dec 08 10:16:25 2016 +0100"
      },
      "message": "Fixed policies\n"
    },
    {
      "commit": "381d73c20fdea3242dac7e725b8bf4cf858b9ca1",
      "tree": "e74a8acfcfb56639ecf04c6ec184089da030a0fd",
      "parents": [
        "a65938a32c8d4b1a61b1ee28a1737686e288b5c6"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Tue Dec 06 12:28:04 2016 +0000"
      },
      "committer": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Wed Dec 07 12:54:11 2016 +0000"
      },
      "message": "Use the amqp_ prefix for AMQP variables\n\nCurrently we use the rabbit_ prefix for ceilometer_collector and the amqp_\nprefix for the remote_collector. This commit changes rabbit_ to amqp_ to\nuse the same variable names everywhere.\n"
    },
    {
      "commit": "a65938a32c8d4b1a61b1ee28a1737686e288b5c6",
      "tree": "be58469e902470b64da90df6bd8cbdb60a16ca3d",
      "parents": [
        "8c4680e36a83ac95dee1d676526bac3f0717d8c8",
        "c0cb82c123fcee552c125ba5ee3700eccc6461a2"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "eric.lemoine@gmail.com",
        "time": "Wed Dec 07 13:52:58 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 07 13:52:58 2016 +0100"
      },
      "message": "Merge pull request #97 from elemoine/log-rotate\n\nNo longer use a specific logrotate script for Heka logs"
    },
    {
      "commit": "8c4680e36a83ac95dee1d676526bac3f0717d8c8",
      "tree": "3faab3da5b3363fb8df73839fcf699e383b695ec",
      "parents": [
        "91ccbffd6ba8581e332bbee73bc2ac02a5243871",
        "d1be7c9929449e8bc2f1b1ef3f68076555563c03"
      ],
      "author": {
        "name": "Aleš Komárek",
        "email": "github@newt.cz",
        "time": "Wed Dec 07 12:54:13 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 07 12:54:13 2016 +0100"
      },
      "message": "Merge pull request #91 from elemoine/defaults\n\nAdd missing default values"
    },
    {
      "commit": "91ccbffd6ba8581e332bbee73bc2ac02a5243871",
      "tree": "cad88bab22dc001eed764741cf45ec82b6dbfb8a",
      "parents": [
        "54d730f7e2875d3c4a79e29e8d9c2f1ae8db2039",
        "1eaa43a24eac777805306143629cd75a1801de1a"
      ],
      "author": {
        "name": "pasquier-s",
        "email": "spasquier@mirantis.com",
        "time": "Wed Dec 07 11:26:28 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 07 11:26:28 2016 +0100"
      },
      "message": "Merge pull request #95 from SwannCroiset/syslog-severity-info\n\nMake INFO the default syslog severity level"
    },
    {
      "commit": "54d730f7e2875d3c4a79e29e8d9c2f1ae8db2039",
      "tree": "733ffb7fbc89a97fe9a910d530d61a4f1803ca37",
      "parents": [
        "44a3dfac35e8e6275b86e3c8faec117b822c2656",
        "c6d6df6eb1a2343ccd81bc77616091f9e279f4e6"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "eric.lemoine@gmail.com",
        "time": "Wed Dec 07 10:52:22 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Dec 07 10:52:22 2016 +0100"
      },
      "message": "Merge pull request #94 from elemoine/log-collector-output\n\nMake metric_collector output configurable"
    },
    {
      "commit": "c0cb82c123fcee552c125ba5ee3700eccc6461a2",
      "tree": "91ea2417a55ee67640a3889e59893f2e1d873048",
      "parents": [
        "11e577f3c290d30720e329e578a9e521b0085400"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Wed Dec 07 09:39:22 2016 +0000"
      },
      "committer": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Wed Dec 07 09:39:29 2016 +0000"
      },
      "message": "Change logrotate configuration\n\nWith the revert commit 11e577f the Heka logrotate configuration inherits\nfrom the main logrotate configuration. This means that the \"su root\nsyslog\" setting can be removed. And with logrotate being executed every\nday using \"hourly\" in the Heka logrotate configuration doesn\u0027t make\nsense anymore.\n"
    },
    {
      "commit": "11e577f3c290d30720e329e578a9e521b0085400",
      "tree": "55f3a768003cb9578fe576732f39b26690756c61",
      "parents": [
        "44a3dfac35e8e6275b86e3c8faec117b822c2656"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Wed Dec 07 09:36:38 2016 +0000"
      },
      "committer": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Wed Dec 07 09:36:38 2016 +0000"
      },
      "message": "Revert \"Add specific logrotate script and crontab\"\n\nThis reverts commit 2eb3a183278587136a6d3e8f7a6bb49144332150.\n"
    },
    {
      "commit": "c6d6df6eb1a2343ccd81bc77616091f9e279f4e6",
      "tree": "733ffb7fbc89a97fe9a910d530d61a4f1803ca37",
      "parents": [
        "44a3dfac35e8e6275b86e3c8faec117b822c2656"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Tue Dec 06 14:19:58 2016 +0000"
      },
      "committer": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Tue Dec 06 16:30:15 2016 +0000"
      },
      "message": "Make metric_collector output configurable\n\nThis commit makes the \"metric_collector\" output of the log_collector\nconfigurable, for consistency with the other outputs.\n"
    },
    {
      "commit": "1eaa43a24eac777805306143629cd75a1801de1a",
      "tree": "2a346add195849d0d9bb400b5f8b05ee41e214fd",
      "parents": [
        "44a3dfac35e8e6275b86e3c8faec117b822c2656"
      ],
      "author": {
        "name": "Swann Croiset",
        "email": "scroiset@mirantis.com",
        "time": "Tue Dec 06 16:11:54 2016 +0100"
      },
      "committer": {
        "name": "Swann Croiset",
        "email": "scroiset@mirantis.com",
        "time": "Tue Dec 06 16:11:54 2016 +0100"
      },
      "message": "Make INFO the default syslog severity level\n\nOtherwise the severity is DEBUG.\n"
    },
    {
      "commit": "d1be7c9929449e8bc2f1b1ef3f68076555563c03",
      "tree": "1bf24be5821f36d8483b364b14577bcb10f621a1",
      "parents": [
        "44a3dfac35e8e6275b86e3c8faec117b822c2656"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Tue Dec 06 13:18:29 2016 +0000"
      },
      "committer": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Tue Dec 06 14:07:33 2016 +0000"
      },
      "message": "Add missing default values\n"
    },
    {
      "commit": "44a3dfac35e8e6275b86e3c8faec117b822c2656",
      "tree": "ad229d63de3380d9023c766dbbfa81392c62b1d5",
      "parents": [
        "e7f15b3aff4b1a55ed9a9dce1360a634461ceaf1",
        "0aba3fda8f6d4f2fa3fac7b7c74c64e5dedc7745"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "eric.lemoine@gmail.com",
        "time": "Tue Dec 06 15:06:06 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 06 15:06:06 2016 +0100"
      },
      "message": "Merge pull request #90 from elemoine/readme\n\nUpdate README.rst"
    },
    {
      "commit": "0aba3fda8f6d4f2fa3fac7b7c74c64e5dedc7745",
      "tree": "38e3d11dbed6a1789a4af426a2d91020c67c9de2",
      "parents": [
        "d268965a463127df9c3dee6c20062ad0277c2333"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Tue Dec 06 10:36:39 2016 +0000"
      },
      "committer": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Tue Dec 06 13:47:26 2016 +0000"
      },
      "message": "Update README.rst\n\nUpdate the README.rst file to properly document how to configure\nlog_collector, metric_collector, remote_collector, aggregator and\nceilometer_collector.\n"
    },
    {
      "commit": "e7f15b3aff4b1a55ed9a9dce1360a634461ceaf1",
      "tree": "8b446abc3b6d6ce3fdcc9f6cf361dab6971e970a",
      "parents": [
        "d268965a463127df9c3dee6c20062ad0277c2333",
        "78c318e262c04e1d3bd10db495f7c01564222fec"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "eric.lemoine@gmail.com",
        "time": "Tue Dec 06 13:46:44 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Dec 06 13:46:44 2016 +0100"
      },
      "message": "Merge pull request #84 from ppetit/policy\n\nAdded a policy for members of node clusters"
    },
    {
      "commit": "78c318e262c04e1d3bd10db495f7c01564222fec",
      "tree": "6ea57c587b5b070cdb32f39c7242449d41a926ec",
      "parents": [
        "19a3b277ed4bb1e6a451b2504ee10845a3171f07"
      ],
      "author": {
        "name": "Patrick Petit",
        "email": "ppetit@mirantis.com",
        "time": "Fri Dec 02 11:59:02 2016 +0100"
      },
      "committer": {
        "name": "Patrick Petit",
        "email": "ppetit@mirantis.com",
        "time": "Tue Dec 06 13:45:07 2016 +0100"
      },
      "message": "Added a policy for members of node clusters\n"
    },
    {
      "commit": "d268965a463127df9c3dee6c20062ad0277c2333",
      "tree": "e359c3d6f6b43c1fd00b2b424db24acd5d36abde",
      "parents": [
        "ce8bf3a43ce9f44da1eee1a7de57cd3c5cea65ab",
        "2eb3a183278587136a6d3e8f7a6bb49144332150"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "eric.lemoine@gmail.com",
        "time": "Mon Dec 05 14:41:29 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 05 14:41:29 2016 +0100"
      },
      "message": "Merge pull request #89 from elemoine/logrotate\n\nConfigure logrotate when systemd is not used"
    },
    {
      "commit": "2eb3a183278587136a6d3e8f7a6bb49144332150",
      "tree": "e359c3d6f6b43c1fd00b2b424db24acd5d36abde",
      "parents": [
        "eabd8c90e7237da0a59f996f94f758abc319d123"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Mon Dec 05 12:36:46 2016 +0000"
      },
      "committer": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Mon Dec 05 12:51:39 2016 +0000"
      },
      "message": "Add specific logrotate script and crontab\n\nThe log rate produced by Heka may be high when the Elasticsearch output\nqueue is full. For that reason, we want to rotate log files every hour.\nBy default, logrotate runs daily on Ubuntu. So we use a specific\nlogrotate script and crontab.\n"
    },
    {
      "commit": "eabd8c90e7237da0a59f996f94f758abc319d123",
      "tree": "95c0a6705b78a64d28a49c7d57806acdfb053ed3",
      "parents": [
        "ce8bf3a43ce9f44da1eee1a7de57cd3c5cea65ab"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Fri Dec 02 17:13:22 2016 +0100"
      },
      "committer": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Mon Dec 05 12:51:39 2016 +0000"
      },
      "message": "Configure logrotate\n\nThis adds a logrotate configuration for Heka when systemd is not used.\n"
    },
    {
      "commit": "ce8bf3a43ce9f44da1eee1a7de57cd3c5cea65ab",
      "tree": "97c3c192580efd615f2247b7434bbfcda82d10c8",
      "parents": [
        "1122946a581e51f5670b27a64d139f6aa7561659",
        "f7b5cfaa50c2daf1719fb53b6c2669666c4e9f4e"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "eric.lemoine@gmail.com",
        "time": "Mon Dec 05 10:53:23 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Dec 05 10:53:23 2016 +0100"
      },
      "message": "Merge pull request #88 from elemoine/logfile\n\nDo not create log file if systemd is used"
    },
    {
      "commit": "f7b5cfaa50c2daf1719fb53b6c2669666c4e9f4e",
      "tree": "97c3c192580efd615f2247b7434bbfcda82d10c8",
      "parents": [
        "1122946a581e51f5670b27a64d139f6aa7561659"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Fri Dec 02 17:06:17 2016 +0100"
      },
      "committer": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Fri Dec 02 17:06:17 2016 +0100"
      },
      "message": "Do not create log file if systemd is used\n"
    },
    {
      "commit": "1122946a581e51f5670b27a64d139f6aa7561659",
      "tree": "c9a9a339748d42d7de17f3648f55ab84d3428d1d",
      "parents": [
        "2b82ca0bc2049b3ffd9c8156665bc4939fd49a61",
        "e1eb3afc147710f77294d7c1314b13b4a6514982"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "eric.lemoine@gmail.com",
        "time": "Fri Dec 02 14:43:20 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 02 14:43:20 2016 +0100"
      },
      "message": "Merge pull request #86 from elemoine/rule-value\n\nTake rule value field into account"
    },
    {
      "commit": "2b82ca0bc2049b3ffd9c8156665bc4939fd49a61",
      "tree": "d2646c6f856a8d1ca95fd59590e9ad4a74aba12b",
      "parents": [
        "33b6c23248aeaa71fbb320f1cbaeb7e662226bed",
        "f2fa3d51f95b9176bb5b36904acbf366de23405a"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "eric.lemoine@gmail.com",
        "time": "Fri Dec 02 14:13:46 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 02 14:13:46 2016 +0100"
      },
      "message": "Merge pull request #87 from SwannCroiset/fix-apache-access-decoder\n\nFix http_response_time for Apache access decoder"
    },
    {
      "commit": "f2fa3d51f95b9176bb5b36904acbf366de23405a",
      "tree": "d2646c6f856a8d1ca95fd59590e9ad4a74aba12b",
      "parents": [
        "33b6c23248aeaa71fbb320f1cbaeb7e662226bed"
      ],
      "author": {
        "name": "Swann Croiset",
        "email": "scroiset@mirantis.com",
        "time": "Fri Dec 02 14:11:26 2016 +0100"
      },
      "committer": {
        "name": "Swann Croiset",
        "email": "scroiset@mirantis.com",
        "time": "Fri Dec 02 14:11:26 2016 +0100"
      },
      "message": "Fix http_response_time for Apache access decoder\n"
    },
    {
      "commit": "e1eb3afc147710f77294d7c1314b13b4a6514982",
      "tree": "c07eab931bdd2359e23a1a925927cdc2807f5712",
      "parents": [
        "33b6c23248aeaa71fbb320f1cbaeb7e662226bed"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Fri Dec 02 12:56:37 2016 +0000"
      },
      "committer": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Fri Dec 02 12:56:44 2016 +0000"
      },
      "message": "Take rule value field into account\n\nAn alarm rule may include a field \"value\" specifying the name of\nthe value field to use. That field was not taken into account.\n"
    },
    {
      "commit": "33b6c23248aeaa71fbb320f1cbaeb7e662226bed",
      "tree": "929465835e6af1fd7f1687a6dc4eaf18afee40a3",
      "parents": [
        "19a3b277ed4bb1e6a451b2504ee10845a3171f07",
        "b6702135e9d1c6c3dd77917538a4d066602058d1"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "eric.lemoine@gmail.com",
        "time": "Fri Dec 02 13:10:12 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 02 13:10:12 2016 +0100"
      },
      "message": "Merge pull request #85 from elemoine/sync-code\n\nSupport cinder|neutron|nova_services_percent metrics"
    },
    {
      "commit": "b6702135e9d1c6c3dd77917538a4d066602058d1",
      "tree": "62cdbbba2037bf74795d66c9e105afc3c707b2a7",
      "parents": [
        "63ec82909b3efe2306906d10a2779e61bca4fa05"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Fri Dec 02 11:56:48 2016 +0000"
      },
      "committer": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Fri Dec 02 11:56:48 2016 +0000"
      },
      "message": "Support cinder|neutron|nova_services_percent metrics\n"
    },
    {
      "commit": "19a3b277ed4bb1e6a451b2504ee10845a3171f07",
      "tree": "e5204b848ec113131ff1405356730effab88500b",
      "parents": [
        "5458f0733335fc14b3ab57fa3261204ca9c47f1e",
        "d70e3e6510a63af55303a4ba63bc9b09e7376d64"
      ],
      "author": {
        "name": "Aleš Komárek",
        "email": "github@newt.cz",
        "time": "Fri Dec 02 10:10:54 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 02 10:10:54 2016 +0100"
      },
      "message": "Merge pull request #82 from SwannCroiset/apache-decoder\n\nAdd Apache access log decoder"
    },
    {
      "commit": "5458f0733335fc14b3ab57fa3261204ca9c47f1e",
      "tree": "b3f97444ecf3d9c91a883ed87ac8ea28438ccf2a",
      "parents": [
        "8977923ecab3c2dbbfb9ca5e331b613993f16c97",
        "20e5553953a1cad885f4b6084819f05259772abb"
      ],
      "author": {
        "name": "swann croiset",
        "email": "scroiset@mirantis.com",
        "time": "Fri Dec 02 09:13:36 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Dec 02 09:13:35 2016 +0100"
      },
      "message": "Merge pull request #83 from SwannCroiset/fix-heka-restart\n\nRestart Heka services when Lua lib have changed"
    },
    {
      "commit": "8977923ecab3c2dbbfb9ca5e331b613993f16c97",
      "tree": "db24f8ced8501970a2e8a1dbf0e2ea5dd8884719",
      "parents": [
        "63ec82909b3efe2306906d10a2779e61bca4fa05",
        "579e5f9664648943ff628d936cc809654dc8345c"
      ],
      "author": {
        "name": "pasquier-s",
        "email": "spasquier@mirantis.com",
        "time": "Thu Dec 01 17:55:21 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Dec 01 17:55:21 2016 +0100"
      },
      "message": "Merge pull request #81 from simonpasquier/support-v2-notifications\n\nSupport Oslo messaging v2 notifications"
    },
    {
      "commit": "579e5f9664648943ff628d936cc809654dc8345c",
      "tree": "db24f8ced8501970a2e8a1dbf0e2ea5dd8884719",
      "parents": [
        "63ec82909b3efe2306906d10a2779e61bca4fa05"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Thu Dec 01 09:58:57 2016 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Thu Dec 01 17:18:34 2016 +0100"
      },
      "message": "Support Oslo messaging v2 notifications\n"
    },
    {
      "commit": "20e5553953a1cad885f4b6084819f05259772abb",
      "tree": "b785688b7ca2811278927ded8ec5d60ab3e5e13d",
      "parents": [
        "63ec82909b3efe2306906d10a2779e61bca4fa05"
      ],
      "author": {
        "name": "Swann Croiset",
        "email": "scroiset@mirantis.com",
        "time": "Thu Dec 01 16:33:12 2016 +0100"
      },
      "committer": {
        "name": "Swann Croiset",
        "email": "scroiset@mirantis.com",
        "time": "Thu Dec 01 16:43:05 2016 +0100"
      },
      "message": "Restart Heka services when Lua lib have changed\n\nThe glob pattern doesn\u0027t work with file.recurse.\nThis is a regression introduced by 5c3e9136743816100f52ec7b9c099bf939653300\n"
    },
    {
      "commit": "d70e3e6510a63af55303a4ba63bc9b09e7376d64",
      "tree": "e9f3942c4a9531ce24fe4802af8ab97e59988e9e",
      "parents": [
        "63ec82909b3efe2306906d10a2779e61bca4fa05"
      ],
      "author": {
        "name": "Swann Croiset",
        "email": "scroiset@mirantis.com",
        "time": "Thu Dec 01 15:57:15 2016 +0100"
      },
      "committer": {
        "name": "Swann Croiset",
        "email": "scroiset@mirantis.com",
        "time": "Thu Dec 01 16:22:13 2016 +0100"
      },
      "message": "Add Apache access log decoder for StackLight\n\nThe encoder create expected message fileds for StackLight.\n"
    },
    {
      "commit": "63ec82909b3efe2306906d10a2779e61bca4fa05",
      "tree": "e76748af024a8b7c943dfa625d2b35dfdeb377ed",
      "parents": [
        "7cd89b1c9d53f024f00557199044900170849c6f",
        "d4789ae7413a8cf1a52afd182070412cbd6fc5c0"
      ],
      "author": {
        "name": "pasquier-s",
        "email": "spasquier@mirantis.com",
        "time": "Wed Nov 30 16:32:10 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 30 16:32:10 2016 +0100"
      },
      "message": "Merge pull request #78 from simonpasquier/update-collectd-decoder-for-elasticsearch\n\nUpdate collectd decoder for Elasticsearch metrics"
    },
    {
      "commit": "7cd89b1c9d53f024f00557199044900170849c6f",
      "tree": "e46c7479f99a168ddb681b5fe97b6c05297f0c0c",
      "parents": [
        "1d60be19d8ec86e4bcf267d1d66948cac270b620",
        "547c995a07a556c99de314781d4141f3b56205a4"
      ],
      "author": {
        "name": "pasquier-s",
        "email": "spasquier@mirantis.com",
        "time": "Wed Nov 30 14:12:03 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 30 14:12:03 2016 +0100"
      },
      "message": "Merge pull request #80 from ityaptin/fix_heka_configs\n\nFix issue with endif in heka.yml"
    },
    {
      "commit": "547c995a07a556c99de314781d4141f3b56205a4",
      "tree": "e46c7479f99a168ddb681b5fe97b6c05297f0c0c",
      "parents": [
        "1d60be19d8ec86e4bcf267d1d66948cac270b620"
      ],
      "author": {
        "name": "Ilya Tyaptin",
        "email": "ityaptin@mirantis.com",
        "time": "Wed Nov 30 15:51:22 2016 +0300"
      },
      "committer": {
        "name": "Ilya Tyaptin",
        "email": "ityaptin@mirantis.com",
        "time": "Wed Nov 30 16:04:51 2016 +0300"
      },
      "message": "Fix issue with endif in heka.yml\n\nEarly the one endif in heka.yml has been missed, this commit fixes it.\n"
    },
    {
      "commit": "1d60be19d8ec86e4bcf267d1d66948cac270b620",
      "tree": "1df6c418433b9c4d95196ef83379c06e3c87d171",
      "parents": [
        "78f4232060d000344a7b0d70b9965908835eb0cb",
        "e138dae0527a71feaaa2063760718f248bb76f52"
      ],
      "author": {
        "name": "pasquier-s",
        "email": "spasquier@mirantis.com",
        "time": "Wed Nov 30 11:18:08 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Nov 30 11:18:08 2016 +0100"
      },
      "message": "Merge pull request #79 from simonpasquier/add-resource-creation-time-filter\n\nAdd filter to compute resource creation timings"
    },
    {
      "commit": "e138dae0527a71feaaa2063760718f248bb76f52",
      "tree": "1df6c418433b9c4d95196ef83379c06e3c87d171",
      "parents": [
        "78f4232060d000344a7b0d70b9965908835eb0cb"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Wed Nov 30 10:19:16 2016 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Wed Nov 30 10:23:07 2016 +0100"
      },
      "message": "Add filter to compute resource creation timings\n\nThis filter uses the OpenStack notifications to compute additional\nmetrics like the volume creation time (for Cinder) and the instance\ncreation time (for Nova).\n"
    },
    {
      "commit": "d4789ae7413a8cf1a52afd182070412cbd6fc5c0",
      "tree": "16a82d95f713e853e459b95c489604c062e785cb",
      "parents": [
        "2bedf4a7f7f41b1adbfcbe9e8a58826e7ada9b67"
      ],
      "author": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Wed Nov 30 10:12:40 2016 +0100"
      },
      "committer": {
        "name": "Simon Pasquier",
        "email": "spasquier@mirantis.com",
        "time": "Wed Nov 30 10:12:40 2016 +0100"
      },
      "message": "Update collectd decoder for Elasticsearch metrics\n\nThe Elasticsearch metrics from collectd now comply with the default\ndecoding scheme.\n"
    },
    {
      "commit": "78f4232060d000344a7b0d70b9965908835eb0cb",
      "tree": "3e9fe0c7b223db0a7a9d1cd3713dfd0ea5391845",
      "parents": [
        "2bedf4a7f7f41b1adbfcbe9e8a58826e7ada9b67"
      ],
      "author": {
        "name": "Aleš Komárek",
        "email": "github@newt.cz",
        "time": "Tue Nov 29 17:23:35 2016 +0100"
      },
      "committer": {
        "name": "Filip Pytloun",
        "email": "filip@pytloun.cz",
        "time": "Tue Nov 29 17:23:35 2016 +0100"
      },
      "message": "Doc rendering and monitoring generation orchestrate (#77)\n\n* doc\r\n\r\n* Pillar targetting\r\n"
    },
    {
      "commit": "2bedf4a7f7f41b1adbfcbe9e8a58826e7ada9b67",
      "tree": "56a9b0787f59d9a8db571428c632882c91cf063a",
      "parents": [
        "bb95e58820b0757dc053ce6bf6d5e83de122a35f",
        "e7b86eae69da7050480d599a0decd0b772c66413"
      ],
      "author": {
        "name": "Aleš Komárek",
        "email": "github@newt.cz",
        "time": "Mon Nov 28 10:39:45 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 28 10:39:45 2016 +0100"
      },
      "message": "Merge pull request #76 from elemoine/unclosed-statement\n\nFix unclosed if statement"
    },
    {
      "commit": "e7b86eae69da7050480d599a0decd0b772c66413",
      "tree": "56a9b0787f59d9a8db571428c632882c91cf063a",
      "parents": [
        "bb95e58820b0757dc053ce6bf6d5e83de122a35f"
      ],
      "author": {
        "name": "Dmirty Kalashnik",
        "email": "dkalashnik@mirantis.com",
        "time": "Sat Nov 26 23:22:30 2016 +0300"
      },
      "committer": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Mon Nov 28 09:25:49 2016 +0000"
      },
      "message": "Fix unclosed if statement (#73)\n\nFix indentation for better readability"
    },
    {
      "commit": "bb95e58820b0757dc053ce6bf6d5e83de122a35f",
      "tree": "56ab696cdbba2d2ec4a90f70e682284235747fb6",
      "parents": [
        "fbea1a09730c41fad183a754ba23c740a822da62",
        "e16cac5769e78bd2de6f54d5bf076ff59ceba825"
      ],
      "author": {
        "name": "Aleš Komárek",
        "email": "github@newt.cz",
        "time": "Mon Nov 28 10:23:14 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 28 10:23:14 2016 +0100"
      },
      "message": "Merge pull request #75 from tcpcloud/stacklight\n\nStacklight"
    },
    {
      "commit": "fbea1a09730c41fad183a754ba23c740a822da62",
      "tree": "80b950c2fed111290694457c14bc6fa1c499e21c",
      "parents": [
        "9a0c2cadc34a9942f5b01954cb046ce1351ae434",
        "41a907a448ea1a0f8dc7c57359373067167bfed9"
      ],
      "author": {
        "name": "Aleš Komárek",
        "email": "github@newt.cz",
        "time": "Mon Nov 28 10:22:15 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Nov 28 10:22:15 2016 +0100"
      },
      "message": "Merge pull request #74 from elemoine/revert\n\nRevert last two commits"
    },
    {
      "commit": "41a907a448ea1a0f8dc7c57359373067167bfed9",
      "tree": "80b950c2fed111290694457c14bc6fa1c499e21c",
      "parents": [
        "9b8180ad8db1274b594ab063d1d4f0fc97fa57e7"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Mon Nov 28 07:14:29 2016 +0000"
      },
      "committer": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Mon Nov 28 07:14:29 2016 +0000"
      },
      "message": "Revert \"Stacklight (#71)\"\n\nThis reverts commit 4fdb8e9d0ba398dad4e663482d1ce31e94b1f585.\n"
    },
    {
      "commit": "9b8180ad8db1274b594ab063d1d4f0fc97fa57e7",
      "tree": "56ab696cdbba2d2ec4a90f70e682284235747fb6",
      "parents": [
        "9a0c2cadc34a9942f5b01954cb046ce1351ae434"
      ],
      "author": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Mon Nov 28 07:13:57 2016 +0000"
      },
      "committer": {
        "name": "Éric Lemoine",
        "email": "elemoine@mirantis.com",
        "time": "Mon Nov 28 07:13:57 2016 +0000"
      },
      "message": "Revert \"Fix unclosed if statement (#73)\"\n\nThis reverts commit 9a0c2cadc34a9942f5b01954cb046ce1351ae434.\n"
    },
    {
      "commit": "9a0c2cadc34a9942f5b01954cb046ce1351ae434",
      "tree": "56a9b0787f59d9a8db571428c632882c91cf063a",
      "parents": [
        "4fdb8e9d0ba398dad4e663482d1ce31e94b1f585"
      ],
      "author": {
        "name": "Dmirty Kalashnik",
        "email": "dkalashnik@mirantis.com",
        "time": "Sat Nov 26 23:22:30 2016 +0300"
      },
      "committer": {
        "name": "Aleš Komárek",
        "email": "github@newt.cz",
        "time": "Sat Nov 26 21:22:30 2016 +0100"
      },
      "message": "Fix unclosed if statement (#73)\n\nFix indentation for better readability"
    },
    {
      "commit": "4fdb8e9d0ba398dad4e663482d1ce31e94b1f585",
      "tree": "56ab696cdbba2d2ec4a90f70e682284235747fb6",
      "parents": [
        "41a41d43c5cc5960ae0930c9332b62bc0446b77d"
      ],
      "author": {
        "name": "Aleš Komárek",
        "email": "github@newt.cz",
        "time": "Sat Nov 26 12:11:16 2016 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Nov 26 12:11:16 2016 +0100"
      },
      "message": "Stacklight (#71)\n\n* Stacklight integration\r\n\r\n* Round 2\r\n\r\n* Variable service_name is missing for systemd file\r\n\r\n* preserve_data and ticker_interval are not strings\r\n\r\npreserve_data is a boolean, and ticker_interval is a number, so their values\r\nshouldn\u0027t have quotes.\r\n\r\n* Use \"ignore missing\" with the j2 include statement\r\n\r\n* Added cache dir\r\n\r\n* Use module_dir instead of module_directory\r\n\r\nThis fixes a bug where module_directory is used as the variable name instead of\r\nmodule_dir.\r\n\r\n* Use the proper module directory\r\n\r\nThe stacklight module dir is /usr/share/lma_collector/common, not\r\n/usr/share/lma_collector_modules. This fixes it.\r\n\r\n* Add the extra_fields.lua module\r\n\r\nThis commit adds the extra_fields Lua module. The extra fields table defined in\r\nthis module is empty right now. Eventually, this file will be a Jinja2 template\r\nand the content of the extra fields table will be generated based on the user\r\nconfiguration.\r\n\r\n* Regex encoder fix\r\n\r\n* Fix the decoder configuration\r\n\r\nThis commit uses proper decoder names in heka/meta/heka.yml. It also removes\r\nthe aggregator input for now, because it does not have an associated decoder.\r\n\r\n* Make Heka send metrics to InfluxDB\r\n\r\n* Add HTTP metrics filter to log_collector\r\n\r\n* Add logs counter filter to log_collector\r\n\r\n* Templatize extra_fields.lua file\r\n\r\n* Make InfluxDB time precision configurable\r\n\r\n* Configure Elasticsearch output through Pillar\r\n\r\n* Use influxdb_time_precision for InfluxDB output\r\n\r\nThis uses influxdb_time_precision set on metric_collector for configuring the\r\ntime precision in the InfluxDB output. This is to use just one parameter for\r\nboth the InfluxDB accumulator filter and InfluxDB output.\r\n\r\n* Increase maximum open files limit to 102400\r\n\r\n* Add alarming support\r\n\r\n* Revert \"[WIP] Add alarming support\"\r\n\r\n* Remove the aggregator output for now\r\n\r\nThis removes the aggregator output for now, as the aggregator doesn\u0027t work for\r\nnow. This is to avoid output errors in Heka.\r\n\r\n* Do not place Heka logs in /var/log/upstart\r\n\r\nWith this commit all the Heka logs are sent to /var/log/\u003cheka_service\u003e.log.\r\nPreviously, stdout was sent to /var/log/\u003cheka_service\u003e.log and stderr was sent\r\nto /var/log/upstart/\u003cheka_service\u003e.log, which was confusing to the operator.\r\n\r\n* Remove http check input plugin\r\n\r\nBecause it is not used anymore.\r\n\r\n* Add alarming support\r\n\r\n* Make the aggregator load heka/meta/heka.yml\r\n\r\nCurrently _service.sls does not load aggregator metadata from\r\nheka/meta/heka.yml. This commit fixes that.\r\n\r\n* Use filter_by to merge node grains data\r\n\r\n* Make the output/tcp.toml template extendable\r\n\r\n* Add an aggregator.toml output template\r\n\r\nThis template extends the tcp.toml output template.\r\n\r\n* Add generic timezone support to decoders\r\n\r\nThis change add a new parameter \u0027adjust_timezone\u0027 for the sandbox\r\ndecoder. This parameter should be set to true when the data to be\r\ndecoded doesn\u0027t contain the proper timezone information.\r\n\r\n* Add a run_lua_tests.sh script\r\n\r\nThis script will be used to run the Lua tests (yet to be added).\r\n\r\nTo run the script:\r\n\r\n    cd tests\r\n    ./run_lua_tests.sh\r\n\r\n* Copy Lua tests from fuel-plugin-lma-collector\r\n\r\n* Fix the afd tests\r\n\r\n* Fix the gse tests\r\n\r\n* Add aggregator config to support metadata\r\n\r\n* Fix the definition of the remote_collector service\r\n\r\nThis change removes unneeded plugins and adds the ones that are\r\notherwise required.\r\n\r\n* Fix state dependency\r\n\r\n* Add monitoring of the Heka processes\r\n\r\n* Set influxdb_time_precision in aggregator class\r\n\r\n* Disable the heka service completely\r\n\r\nWithout this patch `service heka status` reports that the heka service is\r\nrunning. For example:\r\n\r\nroot@ctl01:/etc/init.d# /etc/init.d/heka status\r\n * hekad is running\r\n\r\n* Define the highest_severity policy\r\n\r\n* Generate the gse_policies Lua module\r\n\r\n* Generate gse topology module for each alarm cluster\r\n\r\n* Generate gse filter toml for each cluster alarm\r\n\r\n* Adapt GSE Lua code\r\n\r\n* Remove gse cluster_field parameter\r\n\r\nThis parameter is not needed anymore. Heka\u0027s message_matchers are now used to\r\nmatch input messages.\r\n\r\n* Support dimensions in gse metrics\r\n\r\n* Do not rely on pacemaker_local_resource_active\r\n\r\n* Define the majority_of_members policy\r\n\r\n* Define the availability_of_members policy\r\n\r\n* Configure outputs in support metadata\r\n\r\n* Fix bug in map.jinja\r\n\r\nFix a bug in map.jinja where the filter_by for the metric_collector modified\r\nthe influxdb_defaults dict re-used for the remote_collector. The filter_by\r\nfunction does deep merges, so some caution is required.\r\n\r\n* Cleaning useless default map keys\r\n\r\n* Make remote collector send only afd metrics to influx\r\n\r\n* Add aggregator output to remote collector\r\n\r\n* Extend collectd decoder to support vrrp metrics\r\n\r\n* Update map.jinja\r\n\r\n* Update collectd decoder to parse ntpd metrics\r\n\r\n* Redefine alerting property\r\n\r\nThe alerting property can be one of \u0027disabled\u0027, \u0027enabled\u0027 or\r\n\u0027enabled_with_notification\u0027\r\n\r\n* Fix the gse_policies structure\r\n\r\nThe structure of the generated gse_policies.lua file is not correct. This\r\ncommit fixes that.\r\n\r\n* Add Nagios output for metric_collector\r\n\r\nThe patch embeds the Lua sandbox encoder for Nagios.\r\n\r\n* Add Nagios output for the aggregator\r\n\r\n* Send only alarm-related data to mine\r\n\r\n* Fix the grains_for_mine function\r\n\r\n* Fix flake8 in heka_alarming.py\r\n\r\n* Configure Hekad poolsize by pillar data\r\n\r\nThe poolsize must be increased depending on the number of filters.\r\nTypically, the metric_collector on controller nodes and the aggregator on\r\nmonitoring node(s) should probably use poolsize\u003d200.\r\n\r\n* Make Heka service watch Lua dir\r\n\r\nIn this way the service will restart when the content of\r\n/usr/share/lma_collector changes.\r\n\r\n* Enable collection of notifications\r\n\r\n* Add missing hostname variable in GSE code\r\n\r\n* Add a log decoder for Galera\r\n\r\n* Simplify message matchers\r\n\r\nThis removes the \"Field[aggregator] \u003d\u003d NIL\" part in the Heka message matchers.\r\n\r\nWe used to use a scribbler decoder to tag input messages coming in through the\r\naggregator input. We now have a dedicated Heka \"aggregator\" instance, so this\r\nmechanism is not necessary anymore.\r\n\r\n* Update collectd decoder for nginx metrics\r\n\r\n* Return an err message when set_member_status fails\r\n\r\nWith this commit an explicit error message is displayed in the Heka logs when\r\nset_member_status fails because the cluster has \"group_by\" set to \"hostname\"\r\nand an input message with no \"hostname\" field is received.\r\n\r\nThis addresses a comment from @SwannCroiset in #51.\r\n\r\n* Add contrail log parsers\r\n\r\n* Fix the heka grains for the aggregator/remote_collector\r\n\r\nPreviously, the heka salt grains of the node running aggregator/remote_collector\r\nget all the metric_collector alarms from all nodes (/etc/salt/grains.d/heka).\r\nThe resulting mines data is then wrong for the monitoring node, while that\r\nsitutation fortunately has no impact regarding metric_collector alarm\r\nconfigurations, the Nagios service leverging mine data get a wrong list of\r\nalarms for the monitoring node.\r\n\r\nThis patch fixes the issue with minimal changes but it appears that the logic\r\nbehind _service.sls state is not optimal and become hard to understand.\r\nThis state is executed several times with different contexts for every heka\r\n\u0027server\u0027 types and is not indempotent, indeed the /etc/salt/grains.d/heka file\r\ncontent is different between \u0027local\u0027 servers (metric|log)_collector and\r\n\u0027remote\u0027 servers remote_collector|aggregator.\r\n\r\n* Fix issue in lma_alarm.lua template\r\n\r\n* Add a log decoder for GlusterFS\r\n\r\n* Fix collectd Lua decoder for system metrics\r\n\r\nThe regression has been introduced by 74ad71d41.\r\n\r\n* Update collectd decoder for disk metrics\r\n\r\nThe disk plugin shipping with the 5.5. version of collectd (installed on\r\nXenial) provides new metrics: disk_io_time and disk_weighted_io_time.\r\n\r\n* Use a dimension key for the Nagios host displaying alarm clusters\r\n\r\n* Add redis log parser\r\n\r\n* Add zookeeper log parser\r\n\r\n* Add cassandra log parser\r\n\r\n* Set actual swap_size in collectd decoder\r\n\r\nSalt does not create Swap-related grains, but the \"ps\" module has\r\na \"swap_memory\" function that can be used to get Swap data. This commit\r\nuses that function to set swap_size in the collectd decoder.\r\n\r\n* Send annotations to InfluxDB\r\n\r\n* Add ifmap log parser\r\n\r\n* Support remote_collector and aggregator in cluster\r\n\r\nWhen deployed in a cluster, the remote_collector and aggregator\r\nservices are only started when the node holds the virtual IP address.\r\n\r\n* Add an os_telemetry_collector service\r\n\r\nos_telemetry_collector implements reading of Сeilometer samples\r\nfrom RabbitMQ and pulling them to InfluxDB (samples) and\r\nElasticSearch (resources)\r\n\r\n* heka server role, backward compat\r\n"
    }
  ],
  "next": "e16cac5769e78bd2de6f54d5bf076ff59ceba825"
}
