)]}'
{"doc/source/configuration/collectors.rst":[{"author":{"_account_id":23173,"name":"Maxime Cottret","email":"maxime.cottret@gmail.com","username":"aolwas"},"change_message_id":"7ebdc171bcd79443f9fc257f1d3e0d7b19f7bb58","unresolved":false,"context_lines":[{"line_number":30,"context_line":"* The name as the parent block,"},{"line_number":31,"context_line":"* The final ``unit`` of the metric,"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"In case of a standalone Cloudkitty deployment, the names of the scraped metrics"},{"line_number":34,"context_line":"needs to be specified in the :file:`/etc/cloudkitty/cloudkitty.conf` file as a list"},{"line_number":35,"context_line":"of sources under the ``[source_fetcher]`` block."},{"line_number":36,"context_line":"Based on the above default :file:`/etc/cloudkitty/metrics.yml` file, the following"},{"line_number":37,"context_line":"needs to be added:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":".. code-block:: ini"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    [source_fetcher]"},{"line_number":42,"context_line":"    sources \u003d cpu, image.size, volume.size, network.outgoing.bytes, network.incoming.bytes, ip.floating, radosgw.objects.size"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Some fields are not mandatory, but can be useful:"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_8da30401","line":42,"range":{"start_line":33,"start_character":0,"end_line":42,"end_character":125},"updated":"2018-08-17 09:20:03.000000000","message":"are you sure ? For me, the fetcher provides a scope, ie a list of value of a given metadata to filter metric results.\n\nYou should not need to specify twice the metrics, even in standalone deployment.","commit_id":"6d38d44d5432e7c3ca39278003437b8d99c5fec1"},{"author":{"_account_id":26767,"name":"Martin CAMEY","email":"martin.camey@objectif-libre.com","username":"MC"},"change_message_id":"b618120a1d0826984fd5cab73ab1bb5a7e12de37","unresolved":false,"context_lines":[{"line_number":30,"context_line":"* The name as the parent block,"},{"line_number":31,"context_line":"* The final ``unit`` of the metric,"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"In case of a standalone Cloudkitty deployment, the names of the scraped metrics"},{"line_number":34,"context_line":"needs to be specified in the :file:`/etc/cloudkitty/cloudkitty.conf` file as a list"},{"line_number":35,"context_line":"of sources under the ``[source_fetcher]`` block."},{"line_number":36,"context_line":"Based on the above default :file:`/etc/cloudkitty/metrics.yml` file, the following"},{"line_number":37,"context_line":"needs to be added:"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":".. code-block:: ini"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    [source_fetcher]"},{"line_number":42,"context_line":"    sources \u003d cpu, image.size, volume.size, network.outgoing.bytes, network.incoming.bytes, ip.floating, radosgw.objects.size"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Some fields are not mandatory, but can be useful:"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_e9458116","line":42,"range":{"start_line":33,"start_character":0,"end_line":42,"end_character":125},"in_reply_to":"3f79a3b5_8da30401","updated":"2018-08-21 16:14:43.000000000","message":"I agree that we should not specify the metrics twice. But for the case of the SourceFetcher, I don\u0027t see another approach (see my comment in OpenStack part)","commit_id":"6d38d44d5432e7c3ca39278003437b8d99c5fec1"},{"author":{"_account_id":23173,"name":"Maxime Cottret","email":"maxime.cottret@gmail.com","username":"aolwas"},"change_message_id":"7ebdc171bcd79443f9fc257f1d3e0d7b19f7bb58","unresolved":false,"context_lines":[{"line_number":73,"context_line":"The following sections talks about Collector specific configuration."},{"line_number":74,"context_line":"For each collector, a Voluptuous validation schema is implemented, and will give useful information about the possible configuration."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Gnocchi collector configuration"},{"line_number":77,"context_line":"-------------------------------"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"The Gnocchi collector"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"Monasca collector configuration"},{"line_number":82,"context_line":"-------------------------------"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Prometheus collector configuration"},{"line_number":85,"context_line":"----------------------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_adf600f9","line":82,"range":{"start_line":76,"start_character":0,"end_line":82,"end_character":31},"updated":"2018-08-17 09:20:03.000000000","message":"We\u0027ll see with Luka to fill those sections in your patch before merging","commit_id":"6d38d44d5432e7c3ca39278003437b8d99c5fec1"},{"author":{"_account_id":23173,"name":"Maxime Cottret","email":"maxime.cottret@gmail.com","username":"aolwas"},"change_message_id":"7ebdc171bcd79443f9fc257f1d3e0d7b19f7bb58","unresolved":false,"context_lines":[{"line_number":81,"context_line":"Monasca collector configuration"},{"line_number":82,"context_line":"-------------------------------"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Prometheus collector configuration"},{"line_number":85,"context_line":"----------------------------------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"The Prometheus collector bases itself on the PromQL query language, and"},{"line_number":88,"context_line":"uses the Prometheus HTTP API."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Only the instant queries are supported due to the design of Cloudkitty."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"A query needs to be set for each metric to valorize:"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":".. code-block:: yaml"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    metrics:"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"      http_requests_total:"},{"line_number":99,"context_line":"        unit: request"},{"line_number":100,"context_line":"        extra_args:"},{"line_number":101,"context_line":"          query: \u0027http_requests_total\u0027"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"If a function that makes calculation back in time is used in the query,"},{"line_number":104,"context_line":"the period defined in the :file:`/etc/cloudkitty/cloudkitty.conf` file is used"},{"line_number":105,"context_line":"to set the time window."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"The use of the range duration should be done by appending"},{"line_number":108,"context_line":"the ``$period`` string in the query."},{"line_number":109,"context_line":"The collector will automatically replace it by the period value:"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":".. code-block:: yaml"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    metrics:"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"      http_requests_total:"},{"line_number":116,"context_line":"        unit: request"},{"line_number":117,"context_line":"        extra_args:"},{"line_number":118,"context_line":"          query: \u0027increase(http_requets_total[$period])\u0027"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"This is done to avoid Prometheus queries to exceed Cloudkitty time windows"},{"line_number":121,"context_line":"and to not valorize the same data twice."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_adb920ea","line":121,"range":{"start_line":84,"start_character":0,"end_line":121,"end_character":40},"updated":"2018-08-17 09:20:03.000000000","message":"This part should be in the prometheus collector patch, no ?","commit_id":"6d38d44d5432e7c3ca39278003437b8d99c5fec1"},{"author":{"_account_id":26767,"name":"Martin CAMEY","email":"martin.camey@objectif-libre.com","username":"MC"},"change_message_id":"b618120a1d0826984fd5cab73ab1bb5a7e12de37","unresolved":false,"context_lines":[{"line_number":81,"context_line":"Monasca collector configuration"},{"line_number":82,"context_line":"-------------------------------"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"Prometheus collector configuration"},{"line_number":85,"context_line":"----------------------------------"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"The Prometheus collector bases itself on the PromQL query language, and"},{"line_number":88,"context_line":"uses the Prometheus HTTP API."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Only the instant queries are supported due to the design of Cloudkitty."},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"A query needs to be set for each metric to valorize:"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":".. code-block:: yaml"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    metrics:"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"      http_requests_total:"},{"line_number":99,"context_line":"        unit: request"},{"line_number":100,"context_line":"        extra_args:"},{"line_number":101,"context_line":"          query: \u0027http_requests_total\u0027"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"If a function that makes calculation back in time is used in the query,"},{"line_number":104,"context_line":"the period defined in the :file:`/etc/cloudkitty/cloudkitty.conf` file is used"},{"line_number":105,"context_line":"to set the time window."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"The use of the range duration should be done by appending"},{"line_number":108,"context_line":"the ``$period`` string in the query."},{"line_number":109,"context_line":"The collector will automatically replace it by the period value:"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":".. code-block:: yaml"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    metrics:"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"      http_requests_total:"},{"line_number":116,"context_line":"        unit: request"},{"line_number":117,"context_line":"        extra_args:"},{"line_number":118,"context_line":"          query: \u0027increase(http_requets_total[$period])\u0027"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"This is done to avoid Prometheus queries to exceed Cloudkitty time windows"},{"line_number":121,"context_line":"and to not valorize the same data twice."}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_295a9929","line":121,"range":{"start_line":84,"start_character":0,"end_line":121,"end_character":40},"in_reply_to":"3f79a3b5_adb920ea","updated":"2018-08-21 16:14:43.000000000","message":"Of course, I just forgot to remove it before pushing! My bad :)","commit_id":"6d38d44d5432e7c3ca39278003437b8d99c5fec1"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":30,"context_line":"* The name as the parent block,"},{"line_number":31,"context_line":"* The final ``unit`` of the metric,"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"In case of a standalone Cloudkitty deployment, the names of the scraped metrics"},{"line_number":34,"context_line":"needs to be specified in the :file:`/etc/cloudkitty/cloudkitty.conf` file as a list"},{"line_number":35,"context_line":"of sources under the ``[source_fetcher]`` block."},{"line_number":36,"context_line":"Based on the above default :file:`/etc/cloudkitty/metrics.yml` file, the following"},{"line_number":37,"context_line":"needs to be added:"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_13af2d7d","line":35,"range":{"start_line":33,"start_character":0,"end_line":35,"end_character":48},"updated":"2018-08-28 12:07:30.000000000","message":"No. This is a very specific case. See comments in openstack file","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":".. code-block:: ini"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    [source_fetcher]"},{"line_number":42,"context_line":"    sources \u003d cpu, image.size, volume.size, network.outgoing.bytes, network.incoming.bytes, ip.floating, radosgw.objects.size"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Some fields are not mandatory, but can be useful:"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_82a52db7","line":42,"range":{"start_line":41,"start_character":3,"end_line":42,"end_character":125},"updated":"2018-08-28 12:07:30.000000000","message":"\"sources\" should be a list of scope ids","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":47,"context_line":"* ``factor``, defaults to 1, specify a value to multiply the metrics values with,"},{"line_number":48,"context_line":"* ``offset``, defaults to 0, specify a value to append after the multiplication."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"With both ``factor`` and ``offset``, all type of linear units conversions are covered."},{"line_number":51,"context_line":"It allows metrics valorization without being stuck with the original unit."},{"line_number":52,"context_line":"This is why the final unit needs to be defined too."},{"line_number":53,"context_line":"The final unit does not impact the conversion, but will be used after the conversion, as the new unit."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_33b269e6","line":50,"range":{"start_line":50,"start_character":40,"end_line":50,"end_character":45},"updated":"2018-08-28 12:07:30.000000000","message":"types","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"}],"doc/source/configuration/openstack.rst":[{"author":{"_account_id":23173,"name":"Maxime Cottret","email":"maxime.cottret@gmail.com","username":"aolwas"},"change_message_id":"7ebdc171bcd79443f9fc257f1d3e0d7b19f7bb58","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Fetcher Configuration"},{"line_number":5,"context_line":"---------------------"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"The `Fetcher` is a class that allows Cloudkitty to retrieve scope information"},{"line_number":8,"context_line":"about available metrics, giving a data source."},{"line_number":9,"context_line":"It fetches and splits information from the data source into scopes"},{"line_number":10,"context_line":"(e.g: by projet/tenant for Openstack, or by metric for some other data sources)."},{"line_number":11,"context_line":"The Fetcher makes possible to divide the metric collection and rating"},{"line_number":12,"context_line":"between multiple Cloudkitty processors, by affecting each one one or more scopes."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_ed6398b0","line":10,"range":{"start_line":7,"start_character":0,"end_line":10,"end_character":80},"updated":"2018-08-17 09:20:03.000000000","message":"For me the fetcher does not provide available metrics but only scope like projects in openstack or namespaces in k8s or regions/users/whatever.\n\nMetrics are provided by the metrics.yml and scope is used to filter metrics outputs to rate only provided scopes\n\nIn an openstack deployment, you can use the keystone fetcher to get the list of tenants with rating role, but you can also use the source fetcher to provide a static list of tenants to be rated, whichever the collector in use (prometheus, sql, gnocchi, etc)","commit_id":"6d38d44d5432e7c3ca39278003437b8d99c5fec1"},{"author":{"_account_id":26767,"name":"Martin CAMEY","email":"martin.camey@objectif-libre.com","username":"MC"},"change_message_id":"b618120a1d0826984fd5cab73ab1bb5a7e12de37","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Fetcher Configuration"},{"line_number":5,"context_line":"---------------------"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"The `Fetcher` is a class that allows Cloudkitty to retrieve scope information"},{"line_number":8,"context_line":"about available metrics, giving a data source."},{"line_number":9,"context_line":"It fetches and splits information from the data source into scopes"},{"line_number":10,"context_line":"(e.g: by projet/tenant for Openstack, or by metric for some other data sources)."},{"line_number":11,"context_line":"The Fetcher makes possible to divide the metric collection and rating"},{"line_number":12,"context_line":"between multiple Cloudkitty processors, by affecting each one one or more scopes."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_89bf2dfa","line":10,"range":{"start_line":7,"start_character":0,"end_line":10,"end_character":80},"in_reply_to":"3f79a3b5_ed6398b0","updated":"2018-08-21 16:14:43.000000000","message":"I agree for the OpenStack part, but when taking Prometheus as an example, you don\u0027t have any \u0027scope\u0027 concept, just a list of metrics. For the SourceFetcher, I think that the fetcher can only return a list of metric names (but maybe you see something that I don\u0027t!)","commit_id":"6d38d44d5432e7c3ca39278003437b8d99c5fec1"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Fetcher Configuration"},{"line_number":5,"context_line":"---------------------"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"The `Fetcher` is a class that allows Cloudkitty to retrieve scope information"},{"line_number":8,"context_line":"about available metrics, giving a data source."},{"line_number":9,"context_line":"It fetches and splits information from the data source into scopes"},{"line_number":10,"context_line":"(e.g: by projet/tenant for Openstack, or by metric for some other data sources)."},{"line_number":11,"context_line":"The Fetcher makes possible to divide the metric collection and rating"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_82f44d5c","line":8,"range":{"start_line":7,"start_character":0,"end_line":8,"end_character":45},"updated":"2018-08-28 12:07:30.000000000","message":"The fetcher returns a list of scopes from which data should be gathered. It has no influence on metrics","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":7,"context_line":"The `Fetcher` is a class that allows Cloudkitty to retrieve scope information"},{"line_number":8,"context_line":"about available metrics, giving a data source."},{"line_number":9,"context_line":"It fetches and splits information from the data source into scopes"},{"line_number":10,"context_line":"(e.g: by projet/tenant for Openstack, or by metric for some other data sources)."},{"line_number":11,"context_line":"The Fetcher makes possible to divide the metric collection and rating"},{"line_number":12,"context_line":"between multiple Cloudkitty processors, by affecting each one one or more scopes."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_62bfb160","line":10,"range":{"start_line":10,"start_character":38,"end_line":10,"end_character":78},"updated":"2018-08-28 12:07:30.000000000","message":"This example is not clear. Even if this can be achieved, it is a hack and not standard usage.","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":8,"context_line":"about available metrics, giving a data source."},{"line_number":9,"context_line":"It fetches and splits information from the data source into scopes"},{"line_number":10,"context_line":"(e.g: by projet/tenant for Openstack, or by metric for some other data sources)."},{"line_number":11,"context_line":"The Fetcher makes possible to divide the metric collection and rating"},{"line_number":12,"context_line":"between multiple Cloudkitty processors, by affecting each one one or more scopes."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"To retrieve the projects list from OpenStack, the `Tenant Fetcher` is used and enabled"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_d3c6959a","line":11,"range":{"start_line":11,"start_character":30,"end_line":11,"end_character":36},"updated":"2018-08-28 12:07:30.000000000","message":"share/dispatch/split. \"divide\" is used in arithmetics","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":9,"context_line":"It fetches and splits information from the data source into scopes"},{"line_number":10,"context_line":"(e.g: by projet/tenant for Openstack, or by metric for some other data sources)."},{"line_number":11,"context_line":"The Fetcher makes possible to divide the metric collection and rating"},{"line_number":12,"context_line":"between multiple Cloudkitty processors, by affecting each one one or more scopes."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"To retrieve the projects list from OpenStack, the `Tenant Fetcher` is used and enabled"},{"line_number":15,"context_line":"by setting ``keystone`` as the fetcher backend"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_62649122","line":12,"range":{"start_line":12,"start_character":43,"end_line":12,"end_character":61},"updated":"2018-08-28 12:07:30.000000000","message":"affecting to each one","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":101,"context_line":"The following assumes that the database and storage backends"},{"line_number":102,"context_line":"are correctly configured. This is covered in the ``Overview`` section."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"As we seen with the `Tenant Fetcher`, collectors and storage backends"},{"line_number":105,"context_line":"sometimes need additional configuration sections."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"The section\u0027s name has the following format:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_733221a9","line":104,"range":{"start_line":104,"start_character":21,"end_line":104,"end_character":27},"updated":"2018-08-28 12:07:30.000000000","message":"I think that the section should just be named \"fetcher\", in order to avoid tenant/scope confusions","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":101,"context_line":"The following assumes that the database and storage backends"},{"line_number":102,"context_line":"are correctly configured. This is covered in the ``Overview`` section."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"As we seen with the `Tenant Fetcher`, collectors and storage backends"},{"line_number":105,"context_line":"sometimes need additional configuration sections."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"The section\u0027s name has the following format:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_532fe53d","line":104,"range":{"start_line":104,"start_character":6,"end_line":104,"end_character":10},"updated":"2018-08-28 12:07:30.000000000","message":"have seen","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":104,"context_line":"As we seen with the `Tenant Fetcher`, collectors and storage backends"},{"line_number":105,"context_line":"sometimes need additional configuration sections."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"The section\u0027s name has the following format:"},{"line_number":108,"context_line":"``[{backend_name}_{backend_type}]`` (``[gnocchi_collector]`` for example), except"},{"line_number":109,"context_line":"for ``[storage_gnocchi]``."},{"line_number":110,"context_line":""},{"line_number":111,"context_line":".. note::"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_93ed7df1","line":109,"range":{"start_line":107,"start_character":0,"end_line":109,"end_character":26},"updated":"2018-08-28 12:07:30.000000000","message":"This is weird given the note just below","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":113,"context_line":"   The section name format should become ``[{backend_type}_{backend_name}]`` for"},{"line_number":114,"context_line":"   all sections in the future (``[storage_gnocchi]`` style)."},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"If you want to use the hybrid storage with Gnocchi as data source,"},{"line_number":117,"context_line":"add the following entry:"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":".. code-block:: ini"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_b3c19950","line":116,"range":{"start_line":116,"start_character":42,"end_line":116,"end_character":65},"updated":"2018-08-28 12:07:30.000000000","message":"In this case, gnocchi is the storage backend","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":119,"context_line":".. code-block:: ini"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"   [storage_gnocchi]"},{"line_number":122,"context_line":"   auth_section \u003d ks_auth"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"Collectors Configuration"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_02911d52","line":122,"range":{"start_line":122,"start_character":2,"end_line":122,"end_character":25},"updated":"2018-08-28 12:07:30.000000000","message":"Depends if gnocchi is used with keystone auth or not","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":125,"context_line":"Collectors Configuration"},{"line_number":126,"context_line":"------------------------"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"Two collectors are currently available for OpenStack: Gnocchi and Monasca."},{"line_number":129,"context_line":"The Monasca collector collects metrics published by the Ceilometer agent"},{"line_number":130,"context_line":"to Monasca using Ceilosca_."},{"line_number":131,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_2259b98c","line":128,"range":{"start_line":128,"start_character":0,"end_line":128,"end_character":74},"updated":"2018-08-28 12:07:30.000000000","message":"The prometheus collector is available now","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"}],"doc/source/configuration/overview.rst":[{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Overview"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"Cloudkitty allows any metric valorization."},{"line_number":5,"context_line":"That means you can affect a value to bill for each metric point."},{"line_number":6,"context_line":"It can be deployed within an OpenStack context or in a Standalone mode."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_023b5d37","line":4,"range":{"start_line":4,"start_character":29,"end_line":4,"end_character":41},"updated":"2018-08-28 12:07:30.000000000","message":"Rating","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"Cloudkitty allows any metric valorization."},{"line_number":5,"context_line":"That means you can affect a value to bill for each metric point."},{"line_number":6,"context_line":"It can be deployed within an OpenStack context or in a Standalone mode."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"To set the different metrics to valorize, two configuration files are used:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_624d7198","line":5,"range":{"start_line":5,"start_character":37,"end_line":5,"end_character":41},"updated":"2018-08-28 12:07:30.000000000","message":"rate","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":5,"context_line":"That means you can affect a value to bill for each metric point."},{"line_number":6,"context_line":"It can be deployed within an OpenStack context or in a Standalone mode."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"To set the different metrics to valorize, two configuration files are used:"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"The :file:`/etc/cloudkitty/cloudkitty.conf` to configure cloudkitty itself,"},{"line_number":11,"context_line":"and the :file:`/etc/cloudkitty/metrics.conf` to set the metrics to bill."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_e260a103","line":8,"range":{"start_line":8,"start_character":32,"end_line":8,"end_character":40},"updated":"2018-08-28 12:07:30.000000000","message":"rate","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":8,"context_line":"To set the different metrics to valorize, two configuration files are used:"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"The :file:`/etc/cloudkitty/cloudkitty.conf` to configure cloudkitty itself,"},{"line_number":11,"context_line":"and the :file:`/etc/cloudkitty/metrics.conf` to set the metrics to bill."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The first file usage, in `\".ini\" format`, is covered in the ``Openstack`` or ``Standalone``"},{"line_number":14,"context_line":"sections of the configuration documentation."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_bd140a42","line":11,"range":{"start_line":11,"start_character":67,"end_line":11,"end_character":71},"updated":"2018-08-28 12:07:30.000000000","message":"rate","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"  [storage]"},{"line_number":53,"context_line":"  backend \u003d hybrid"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"to use the v2 storage, or:"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":".. code-block:: ini"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_7d7af287","line":55,"range":{"start_line":55,"start_character":10,"end_line":55,"end_character":14},"updated":"2018-08-28 12:07:30.000000000","message":"hybrid","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":65,"context_line":"Cloudkitty Processor"},{"line_number":66,"context_line":"--------------------"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"The ``Cloudkitty Processor`` is the process responsible for the billing."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"If you installed Cloudkitty from packages, the processor can be started using::"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_fd65a2e1","line":68,"range":{"start_line":68,"start_character":64,"end_line":68,"end_character":71},"updated":"2018-08-28 12:07:30.000000000","message":"Data collection and rating","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"}],"doc/source/configuration/standalone.rst":[{"author":{"_account_id":23173,"name":"Maxime Cottret","email":"maxime.cottret@gmail.com","username":"aolwas"},"change_message_id":"7ebdc171bcd79443f9fc257f1d3e0d7b19f7bb58","unresolved":false,"context_lines":[{"line_number":7,"context_line":"The `Fetcher` is a class that allows Cloudkitty to retrieve information"},{"line_number":8,"context_line":"about available metrics, giving a data source."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"To retrieve metrics from a non-OpenStack sources, the `Source Fetcher` is used"},{"line_number":11,"context_line":"and enabled by setting ``source`` as the fetcher backend"},{"line_number":12,"context_line":"in the :file:`/etc/cloudkitty/cloudkitty.conf` file."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":".. code-block:: ini"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f79a3b5_6d90e84f","line":12,"range":{"start_line":10,"start_character":0,"end_line":12,"end_character":52},"updated":"2018-08-17 09:20:03.000000000","message":"see comment in the openstack part","commit_id":"6d38d44d5432e7c3ca39278003437b8d99c5fec1"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":7,"context_line":"The `Fetcher` is a class that allows Cloudkitty to retrieve information"},{"line_number":8,"context_line":"about available metrics, giving a data source."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"To retrieve metrics from a non-OpenStack sources, the `Source Fetcher` is used"},{"line_number":11,"context_line":"and enabled by setting ``source`` as the fetcher backend"},{"line_number":12,"context_line":"in the :file:`/etc/cloudkitty/cloudkitty.conf` file."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_02c83d52","line":10,"range":{"start_line":10,"start_character":41,"end_line":10,"end_character":48},"updated":"2018-08-28 12:07:30.000000000","message":"source","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":24,"context_line":"API endpoints needs to be configured."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Currently, for standalone deployements,"},{"line_number":27,"context_line":"the supported authentification stategies are: ``noauth``."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"More authentication strategies will be supported in the future."},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_62ded111","line":27,"range":{"start_line":27,"start_character":14,"end_line":27,"end_character":30},"updated":"2018-08-28 12:07:30.000000000","message":"authentication","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":46,"context_line":"Collectors Configuration"},{"line_number":47,"context_line":"------------------------"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Currently, the Gnocci Collector is available for non-OpenStack usage."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"The collect information, is separated from the Cloudkitty configuration file,"},{"line_number":52,"context_line":"in a Yaml one."}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_e2cc216b","line":49,"range":{"start_line":49,"start_character":14,"end_line":49,"end_character":21},"updated":"2018-08-28 12:07:30.000000000","message":"Typo","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"},{"author":{"_account_id":23060,"name":"Luka Peschke","email":"mail@lukapeschke.com","username":"lukapeschke"},"change_message_id":"a2f2757850fccfd25e6cc965f3b884162d80b56e","unresolved":false,"context_lines":[{"line_number":54,"context_line":"This allows Cloudkitty users and operators to change the metrology"},{"line_number":55,"context_line":"configuration, without modifying source code or Cloudkitty configuration file."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Precie the metrics configuration file location:"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":".. code-block:: ini"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"3f79a3b5_e2d181fc","line":57,"range":{"start_line":57,"start_character":0,"end_line":57,"end_character":6},"updated":"2018-08-28 12:07:30.000000000","message":"Specify","commit_id":"799648690a55247f561677cb4cc9fec0df51b6e4"}]}
