)]}'
{"id":"openstack%2Fcloudkitty~704787","triplet_id":"openstack%2Fcloudkitty~master~I8a1a75a74e04cb9babdf09f115620b152861e218","project":"openstack/cloudkitty","branch":"master","hashtags":[],"change_id":"I8a1a75a74e04cb9babdf09f115620b152861e218","subject":"Standardize aggregation methods and granularities for Gnocchi collector","status":"MERGED","created":"2020-01-29 12:29:34.000000000","updated":"2020-01-31 10:45:41.000000000","submitted":"2020-01-31 10:42:33.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"704787-1580467353593-71032318","meta_rev_id":"aafd6062b32d9994371a4f670e6143adc3e44187","_number":704787,"virtual_id_number":704787,"owner":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2020-01-31 10:42:33.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2020-01-31 09:48:30.000000000","_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2020-01-31 09:48:30.000000000","_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2020-01-31 09:48:30.000000000","updated_by":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"reviewer":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"state":"REVIEWER"},{"updated":"2020-01-31 10:42:33.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"590c1abd4985ed1eb8a13c414dc19c81ad0f4d20","author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"date":"2020-01-29 12:29:34.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"dc6a2e281a568939d6c0a06e1df693e5877401ba","author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"date":"2020-01-29 12:41:04.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"a4e70de6a9de93df16dd3f2aa0be51f714782078","author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"date":"2020-01-29 12:44:20.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"10dd1bf89a9b2184044c21f0ff8f0362da0e55cc","author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"date":"2020-01-29 12:46:28.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"74be358c8cba6d260d9b8b6f74ba165bc1dadf1e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-01-29 13:33:39.000000000","message":"Patch Set 4: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttp://docs.openstack.org/infra/manual/developers.html#automated-testing\n\n\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/c84bbb139cbc4d71b963f0e8deb70354 : SUCCESS in 3m 39s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/423c6ffcdb0a44da9c2afc3281d0e6cd : SUCCESS in 6m 36s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/cf7355363640424cb51b2f0a24d32c90 : FAILURE in 4m 12s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/02ba90dbc9124e53bf7505c912c48a9d : SUCCESS in 4m 13s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/d3aaf303e38f47bfa74a1ff183873e1f : SUCCESS in 4m 24s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/444b3b880351410382c95438cc1d1783 : SUCCESS in 4m 18s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/540bfad4f8ea4379b57261121da4d516 : SUCCESS in 5m 50s\n- cloudkitty-tempest-full-v2-storage-influxdb https://zuul.opendev.org/t/openstack/build/c917fbfd176743829a8cbaf031c02711 : SUCCESS in 38m 38s\n- cloudkitty-tempest-full-v2-storage-elasticsearch https://zuul.opendev.org/t/openstack/build/71cf50de05cd4488afe11247823424f5 : SUCCESS in 41m 47s (non-voting)\n- cloudkitty-tempest-full-v1-storage-sqlalchemy https://zuul.opendev.org/t/openstack/build/1b2e533878ed42f6a8e5392fd6affc4d : SUCCESS in 38m 07s\n- cloudkitty-tempest-full-ipv6-only https://zuul.opendev.org/t/openstack/build/3efed772e4734ef681a2baad880d4f22 : SUCCESS in 36m 18s\n- cloudkitty-tox-bandit https://zuul.opendev.org/t/openstack/build/889bb2f9879a477e9ed8d7159e3f609c : SUCCESS in 3m 36s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"e451ea4d454af2a70f8be226386322bcf4996854","author":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"date":"2020-01-29 13:57:36.000000000","message":"Uploaded patch set 5.","accounts_in_message":[],"_revision_number":5},{"id":"1106730b8e642aab4c7f41a1032a04e70a20e4e6","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-01-29 14:42:16.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/e0b112c93b9346f1a30e6dcdfa81ad94 : SUCCESS in 4m 20s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/dc346772a7074c33aa1ffaff6c8985c8 : SUCCESS in 5m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/af9594c62e3841a986aefecdd51f3c51 : SUCCESS in 4m 04s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/e49165fc92164f5885dfcd6c6d270919 : SUCCESS in 5m 10s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/ff08c4d3cf204a9bba89d9aec8452018 : SUCCESS in 4m 30s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/43dd31122f754d32b3496f25390ce90c : SUCCESS in 4m 51s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7cb6d7d29c544f45aeeff72173b4fe79 : SUCCESS in 6m 24s\n- cloudkitty-tempest-full-v2-storage-influxdb https://zuul.opendev.org/t/openstack/build/30b7055309644ba39b37262259e9d96b : SUCCESS in 36m 13s\n- cloudkitty-tempest-full-v2-storage-elasticsearch https://zuul.opendev.org/t/openstack/build/10078b5bfa084066bfc3faf372a42a4b : SUCCESS in 38m 20s (non-voting)\n- cloudkitty-tempest-full-v1-storage-sqlalchemy https://zuul.opendev.org/t/openstack/build/eebd0a946399412d944466e12422880f : SUCCESS in 31m 51s\n- cloudkitty-tempest-full-ipv6-only https://zuul.opendev.org/t/openstack/build/a2347f7baeef4c15af865fdcd54adfcf : SUCCESS in 39m 30s\n- cloudkitty-tox-bandit https://zuul.opendev.org/t/openstack/build/2801473966c04260b47007a4585d7d37 : SUCCESS in 3m 58s (non-voting)","accounts_in_message":[],"_revision_number":5},{"id":"a690aaa423a7977b23ddc670d59c5b14fde368d2","author":{"_account_id":29503,"name":"Justin Ferrieu","email":"jferrieu@objectif-libre.com","username":"jferrieu"},"date":"2020-01-31 09:48:30.000000000","message":"Patch Set 5: Code-Review+2 Workflow+1\n\nHi Rafael,\n\nThat seems awesome,\n\nThanks for your contribution,\n\nIt is much appreciated,\n\nEverything LGTM.","accounts_in_message":[],"_revision_number":5},{"id":"e27ebf7fbd4c368ec00da99f1515c61f6ff0b8d0","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-01-31 09:48:42.000000000","message":"Patch Set 5: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":5},{"id":"32cc002ad8b5a670d5106d62f20759557ee9f157","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-01-31 10:42:33.000000000","message":"Patch Set 5: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/05171ef04f88403697e3ace06471bbff : SUCCESS in 4m 37s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c7cdb127057f4f34ad90d2ede1354d36 : SUCCESS in 4m 43s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/c819f510c536422ca9ace678c85fb79f : SUCCESS in 4m 46s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/34f840edeb6f45ea955da80e50b2ae95 : SUCCESS in 4m 14s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/47c718cf00c14cd8b172d587016911d9 : SUCCESS in 10m 55s\n- cloudkitty-tempest-full-v2-storage-influxdb https://zuul.opendev.org/t/openstack/build/f388e08126ae4fa8a05d493ff4d40c20 : SUCCESS in 52m 19s\n- cloudkitty-tempest-full-v1-storage-sqlalchemy https://zuul.opendev.org/t/openstack/build/c19485b0206c4fb88cc5cfee7f4a0919 : SUCCESS in 37m 48s\n- cloudkitty-tempest-full-ipv6-only https://zuul.opendev.org/t/openstack/build/b651ee162827446691f9067471f5181e : SUCCESS in 37m 52s","accounts_in_message":[],"_revision_number":5},{"id":"c4b27e9be8042edd2358d78bddab4ee40419f27d","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-01-31 10:42:33.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":5},{"id":"aafd6062b32d9994371a4f670e6143adc3e44187","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-01-31 10:45:41.000000000","message":"Patch Set 5:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/bb86edb285254ce3b07b065d688cdb1f : SUCCESS in 2m 43s","accounts_in_message":[],"_revision_number":5}],"current_revision_number":5,"current_revision":"385d20520f7163c08d39d17d0dc87ffc80839ec9","revisions":{"da1c0ddbbd0573c4c332ff05e36eecd4a2910b61":{"kind":"REWORK","_number":1,"created":"2020-01-29 12:29:34.000000000","uploader":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"ref":"refs/changes/87/704787/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cloudkitty","ref":"refs/changes/87/704787/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/1"}}},"commit":{"parents":[{"commit":"9e505f31a9f7d085a1fdec8c5910813e6a1204a4","subject":"Merge \"Add support for the query_function field to the Prometheus collector\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/9e505f31a9f7d085a1fdec8c5910813e6a1204a4"}]}],"author":{"name":"Rafael Weingärtner","email":"rafael@apache.org","date":"2020-01-29 12:29:12.000000000","tz":-180},"committer":{"name":"Rafael Weingärtner","email":"rafael@apache.org","date":"2020-01-29 12:29:12.000000000","tz":-180},"subject":"Standardize aggregation methods and granularities for Gnocchi collector","message":"Standardize aggregation methods and granularities for Gnocchi collector\n\nThis PR proposes the standardization of aggregation methods allowed by\nCloudKitty in Gnocchi collector as the aggregation methods available in\nGnocchi API for both archive policies and aggregation API. The rationale is\nthat we need to support the same aggregation methods available there.\nOtherwise, users can try to use something available in the Gnocchi API, and it\ndoes not work due to a limitation in CloudKitty.\n\nWe also propose to set the default granularity as 3600. CloudKitty is already\nusing one hour time frames by default. There is no sense in not setting the\ngranularity as 3600 as well. If we do not define the granularity 3600 by\ndefault, CloudKitty will always retrieve (in the aggregation API) measurements\nfor all available granularities, which is an overhead. Besides being an\noverhead, it can cause huge inconsistencies, if for some reason (that we\npainfully discovered in production), the granularity of 3600 is not returned.\nThe method \"_format_data\"  does not check if the data being\n\"formated\"/obtained from the measurements object represents the 3600 (1h) time\nframe, it just retrieves the first element, and moves on; thus, leading to\nwrong billing information.\n\nAnd last, but not least, we propose a debug log to show in the log files, when\ndebug log level is enabled, the response received in the aggregation API. This\ncan enable debug for operation people. Otherwise, we need to change code to be\nable to troubleshoot problems with CloudKitty processing when using Gnocchi\ncollector.\n\nChange-Id: I8a1a75a74e04cb9babdf09f115620b152861e218\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/da1c0ddbbd0573c4c332ff05e36eecd4a2910b61"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/da1c0ddbbd0573c4c332ff05e36eecd4a2910b61"}]},"branch":"refs/heads/master"},"647118482d2fb43dac8260aa5be376f015ee85dc":{"kind":"REWORK","_number":2,"created":"2020-01-29 12:41:04.000000000","uploader":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"ref":"refs/changes/87/704787/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cloudkitty","ref":"refs/changes/87/704787/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/2"}}},"commit":{"parents":[{"commit":"9e505f31a9f7d085a1fdec8c5910813e6a1204a4","subject":"Merge \"Add support for the query_function field to the Prometheus collector\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/9e505f31a9f7d085a1fdec8c5910813e6a1204a4"}]}],"author":{"name":"Rafael Weingärtner","email":"rafael@apache.org","date":"2020-01-29 12:29:12.000000000","tz":-180},"committer":{"name":"Rafael Weingärtner","email":"rafael@apache.org","date":"2020-01-29 12:40:49.000000000","tz":-180},"subject":"Standardize aggregation methods and granularities for Gnocchi collector","message":"Standardize aggregation methods and granularities for Gnocchi collector\n\nThis PR proposes the standardization of aggregation methods allowed by\nCloudKitty in Gnocchi collector as the aggregation methods available in\nGnocchi API for both archive policies and aggregation API. The rationale is\nthat we need to support the same aggregation methods available there.\nOtherwise, users can try to use something available in the Gnocchi API, and it\ndoes not work due to a limitation in CloudKitty.\n\nWe also propose to set the default granularity as 3600. CloudKitty is already\nusing one hour time frames by default. There is no sense in not setting the\ngranularity as 3600 as well. If we do not define the granularity 3600 by\ndefault, CloudKitty will always retrieve (in the aggregation API) measurements\nfor all available granularities, which is an overhead. Besides being an\noverhead, it can cause huge inconsistencies, if for some reason (that we\npainfully discovered in production), the granularity of 3600 is not returned.\nThe method \"_format_data\"  does not check if the data being\n\"formated\"/obtained from the measurements object represents the 3600 (1h) time\nframe, it just retrieves the first element, and moves on; thus, leading to\nwrong billing information.\n\nAnd last, but not least, we propose a debug log to show in the log files, when\ndebug log level is enabled, the response received in the aggregation API. This\ncan enable debug for operation people. Otherwise, we need to change code to be\nable to troubleshoot problems with CloudKitty processing when using Gnocchi\ncollector.\n\nChange-Id: I8a1a75a74e04cb9babdf09f115620b152861e218\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/647118482d2fb43dac8260aa5be376f015ee85dc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/647118482d2fb43dac8260aa5be376f015ee85dc"}]},"branch":"refs/heads/master"},"05afa720612e5d382263e5a9a6ebd3ab3766736c":{"kind":"REWORK","_number":3,"created":"2020-01-29 12:44:20.000000000","uploader":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"ref":"refs/changes/87/704787/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cloudkitty","ref":"refs/changes/87/704787/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/3"}}},"commit":{"parents":[{"commit":"9e505f31a9f7d085a1fdec8c5910813e6a1204a4","subject":"Merge \"Add support for the query_function field to the Prometheus collector\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/9e505f31a9f7d085a1fdec8c5910813e6a1204a4"}]}],"author":{"name":"Rafael Weingärtner","email":"rafael@apache.org","date":"2020-01-29 12:29:12.000000000","tz":-180},"committer":{"name":"Rafael Weingärtner","email":"rafael@apache.org","date":"2020-01-29 12:44:06.000000000","tz":-180},"subject":"Standardize aggregation methods and granularities for Gnocchi collector","message":"Standardize aggregation methods and granularities for Gnocchi collector\n\nThis PR proposes the standardization of aggregation methods allowed by\nCloudKitty in Gnocchi collector as the aggregation methods available in\nGnocchi API for both archive policies and aggregation API. The rationale is\nthat we need to support the same aggregation methods available there.\nOtherwise, users can try to use something available in the Gnocchi API, and it\ndoes not work due to a limitation in CloudKitty.\n\nWe also propose to set the default granularity as 3600. CloudKitty is already\nusing one hour time frames by default. There is no sense in not setting the\ngranularity as 3600 as well. If we do not define the granularity 3600 by\ndefault, CloudKitty will always retrieve (in the aggregation API) measurements\nfor all available granularities, which is an overhead. Besides being an\noverhead, it can cause huge inconsistencies, if for some reason (that we\npainfully discovered in production), the granularity of 3600 is not returned.\nThe method \"_format_data\"  does not check if the data being\n\"formated\"/obtained from the measurements object represents the 3600 (1h) time\nframe, it just retrieves the first element, and moves on; thus, leading to\nwrong billing information.\n\nAnd last, but not least, we propose a debug log to show in the log files, when\ndebug log level is enabled, the response received in the aggregation API. This\ncan enable debug for operation people. Otherwise, we need to change code to be\nable to troubleshoot problems with CloudKitty processing when using Gnocchi\ncollector.\n\nChange-Id: I8a1a75a74e04cb9babdf09f115620b152861e218\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/05afa720612e5d382263e5a9a6ebd3ab3766736c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/05afa720612e5d382263e5a9a6ebd3ab3766736c"}]},"branch":"refs/heads/master"},"bbe53f99cdb9ed0dd364c9c3e3df86edad3dcea9":{"kind":"REWORK","_number":4,"created":"2020-01-29 12:46:28.000000000","uploader":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"ref":"refs/changes/87/704787/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cloudkitty","ref":"refs/changes/87/704787/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/4"}}},"commit":{"parents":[{"commit":"9e505f31a9f7d085a1fdec8c5910813e6a1204a4","subject":"Merge \"Add support for the query_function field to the Prometheus collector\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/9e505f31a9f7d085a1fdec8c5910813e6a1204a4"}]}],"author":{"name":"Rafael Weingärtner","email":"rafael@apache.org","date":"2020-01-29 12:29:12.000000000","tz":-180},"committer":{"name":"Rafael Weingärtner","email":"rafael@apache.org","date":"2020-01-29 12:46:16.000000000","tz":-180},"subject":"Standardize aggregation methods and granularities for Gnocchi collector","message":"Standardize aggregation methods and granularities for Gnocchi collector\n\nThis PR proposes the standardization of aggregation methods allowed by\nCloudKitty in Gnocchi collector as the aggregation methods available in\nGnocchi API for both archive policies and aggregation API. The rationale is\nthat we need to support the same aggregation methods available there.\nOtherwise, users can try to use something available in the Gnocchi API, and it\ndoes not work due to a limitation in CloudKitty.\n\nWe also propose to set the default granularity as 3600. CloudKitty is already\nusing one hour time frames by default. There is no sense in not setting the\ngranularity as 3600 as well. If we do not define the granularity 3600 by\ndefault, CloudKitty will always retrieve (in the aggregation API) measurements\nfor all available granularities, which is an overhead. Besides being an\noverhead, it can cause huge inconsistencies, if for some reason (that we\npainfully discovered in production), the granularity of 3600 is not returned.\nThe method \"_format_data\"  does not check if the data being\n\"formated\"/obtained from the measurements object represents the 3600 (1h) time\nframe, it just retrieves the first element, and moves on; thus, leading to\nwrong billing information.\n\nAnd last, but not least, we propose a debug log to show in the log files, when\ndebug log level is enabled, the response received in the aggregation API. This\ncan enable debug for operation people. Otherwise, we need to change code to be\nable to troubleshoot problems with CloudKitty processing when using Gnocchi\ncollector.\n\nChange-Id: I8a1a75a74e04cb9babdf09f115620b152861e218\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/bbe53f99cdb9ed0dd364c9c3e3df86edad3dcea9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/bbe53f99cdb9ed0dd364c9c3e3df86edad3dcea9"}]},"branch":"refs/heads/master"},"385d20520f7163c08d39d17d0dc87ffc80839ec9":{"kind":"REWORK","_number":5,"created":"2020-01-29 13:57:36.000000000","uploader":{"_account_id":28356,"name":"Rafael Weingartner","email":"rafael@apache.org","username":"rafaelweingartner"},"ref":"refs/changes/87/704787/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/cloudkitty","ref":"refs/changes/87/704787/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/cloudkitty refs/changes/87/704787/5"}}},"commit":{"parents":[{"commit":"9e505f31a9f7d085a1fdec8c5910813e6a1204a4","subject":"Merge \"Add support for the query_function field to the Prometheus collector\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/9e505f31a9f7d085a1fdec8c5910813e6a1204a4"}]}],"author":{"name":"Rafael Weingärtner","email":"rafael@apache.org","date":"2020-01-29 12:29:12.000000000","tz":-180},"committer":{"name":"Rafael Weingärtner","email":"rafael@apache.org","date":"2020-01-29 13:57:22.000000000","tz":-180},"subject":"Standardize aggregation methods and granularities for Gnocchi collector","message":"Standardize aggregation methods and granularities for Gnocchi collector\n\nThis PR proposes the standardization of aggregation methods allowed by\nCloudKitty in Gnocchi collector as the aggregation methods available in\nGnocchi API for both archive policies and aggregation API. The rationale is\nthat we need to support the same aggregation methods available there.\nOtherwise, users can try to use something available in the Gnocchi API, and it\ndoes not work due to a limitation in CloudKitty.\n\nWe also propose to set the default granularity as 3600. CloudKitty is already\nusing one hour time frames by default. There is no sense in not setting the\ngranularity as 3600 as well. If we do not define the granularity 3600 by\ndefault, CloudKitty will always retrieve (in the aggregation API) measurements\nfor all available granularities, which is an overhead. Besides being an\noverhead, it can cause huge inconsistencies, if for some reason (that we\npainfully discovered in production), the granularity of 3600 is not returned.\nThe method \"_format_data\"  does not check if the data being\n\"formated\"/obtained from the measurements object represents the 3600 (1h) time\nframe, it just retrieves the first element, and moves on; thus, leading to\nwrong billing information.\n\nAnd last, but not least, we propose a debug log to show in the log files, when\ndebug log level is enabled, the response received in the aggregation API. This\ncan enable debug for operation people. Otherwise, we need to change code to be\nable to troubleshoot problems with CloudKitty processing when using Gnocchi\ncollector.\n\nChange-Id: I8a1a75a74e04cb9babdf09f115620b152861e218\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/385d20520f7163c08d39d17d0dc87ffc80839ec9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/cloudkitty/commit/385d20520f7163c08d39d17d0dc87ffc80839ec9"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
