Activity log for bug #1531626

Date Who What changed Old value New value Message
2016-01-06 21:13:42 Kevin McDonald bug added bug
2016-01-06 21:14:14 Kevin McDonald description It appears that setting retention_time without setting size will cause samples to get flushed after 2 samples instead of when retention_time is reached because the default for size is 1. That seems like unintuitive behavior. This is the example given for configuring an aggregator transformer using the retention time option: {{{ transformers: - name: "aggregator" parameters: retention_time: 60 resource_metadata: last }}} This example does not work. It will always emit the aggregated samples that it has collected after it receives a second sample. This is because size defaults to 1. Mitigations: * If you only want aggregated samples to be flushed by a time-based metric then you'll have to set size to a sufficiently large value Proposed fix: I propose that this configuration should flush samples every 60 seconds, regardless of how many samples are collected: {{{ transformers: - name: "aggregator" parameters: retention_time: 60 resource_metadata: last }}} Results in size = None, retention_time = 60 seconds If neither size or retention_time is specified, the behavior should stay the same: size defaulting to one (no aggregation). I feel like this is incorrect behavior, but for the sake of backwards compatibility that behavior should stay the same: {{{ transformers: - name: "aggregator" parameters: resource_metadata: last }}} Results in size = 1, retention_time = None Obviously, specifying both retention_time and size should use both as criteria to trigger a flush: {{{ transformers: - name: "aggregator" parameters: size: 10 retention_time: 60 resource_metadata: last }}} Results in size = 10, retention_time = 60 seconds Ref: http://docs.openstack.org/admin-guide-cloud/telemetry-data-collection.html#telemetry-pipeline-configuration https://github.com/openstack/ceilometer/blob/f87edaa1e01b62e5316039d9977a2d1a11b6271e/ceilometer/transformer/conversions.py#L311 It appears that setting retention_time without setting size will cause samples to get flushed after 2 samples instead of when retention_time is reached because the default for size is 1. That seems like unintuitive behavior. This is the example given for configuring an aggregator transformer using the retention time option: {{{ transformers:     - name: "aggregator"       parameters:           retention_time: 60           resource_metadata: last }}} This example does not work. It will always emit the aggregated samples that it has collected after it receives a second sample. This is because size defaults to 1. Mitigations:  * If you only want aggregated samples to be flushed by a time-based metric then you'll have to set size to a sufficiently large value Proposed fix: I propose that this configuration should flush samples every 60 seconds, regardless of how many samples are collected: {{{ transformers:     - name: "aggregator"       parameters:           retention_time: 60           resource_metadata: last }}} Results in size = None, retention_time = 60 seconds If neither size or retention_time is specified, the behavior should stay the same: size defaulting to one (no aggregation). I feel like this is incorrect behavior, but for the sake of backwards compatibility that behavior should stay the same: {{{ transformers:     - name: "aggregator"       parameters:           resource_metadata: last }}} Results in size = 1, retention_time = None Obviously, specifying both retention_time and size should use both as criteria to trigger a flush: {{{ transformers:     - name: "aggregator"       parameters:           size: 10           retention_time: 60           resource_metadata: last }}} Results in size = 10, retention_time = 60 seconds Ref: http://docs.openstack.org/admin-guide-cloud/telemetry-data-collection.html#telemetry-pipeline-configuration https://github.com/openstack/ceilometer/blob/f87edaa1e01b62e5316039d9977a2d1a11b6271e/ceilometer/transformer/conversions.py#L311
2016-01-06 21:14:41 Kevin McDonald description It appears that setting retention_time without setting size will cause samples to get flushed after 2 samples instead of when retention_time is reached because the default for size is 1. That seems like unintuitive behavior. This is the example given for configuring an aggregator transformer using the retention time option: {{{ transformers:     - name: "aggregator"       parameters:           retention_time: 60           resource_metadata: last }}} This example does not work. It will always emit the aggregated samples that it has collected after it receives a second sample. This is because size defaults to 1. Mitigations:  * If you only want aggregated samples to be flushed by a time-based metric then you'll have to set size to a sufficiently large value Proposed fix: I propose that this configuration should flush samples every 60 seconds, regardless of how many samples are collected: {{{ transformers:     - name: "aggregator"       parameters:           retention_time: 60           resource_metadata: last }}} Results in size = None, retention_time = 60 seconds If neither size or retention_time is specified, the behavior should stay the same: size defaulting to one (no aggregation). I feel like this is incorrect behavior, but for the sake of backwards compatibility that behavior should stay the same: {{{ transformers:     - name: "aggregator"       parameters:           resource_metadata: last }}} Results in size = 1, retention_time = None Obviously, specifying both retention_time and size should use both as criteria to trigger a flush: {{{ transformers:     - name: "aggregator"       parameters:           size: 10           retention_time: 60           resource_metadata: last }}} Results in size = 10, retention_time = 60 seconds Ref: http://docs.openstack.org/admin-guide-cloud/telemetry-data-collection.html#telemetry-pipeline-configuration https://github.com/openstack/ceilometer/blob/f87edaa1e01b62e5316039d9977a2d1a11b6271e/ceilometer/transformer/conversions.py#L311 It appears that setting retention_time without setting size will cause samples to get flushed after 2 samples instead of when retention_time is reached because the default for size is 1. That seems like unintuitive behavior. This is the example given for configuring an aggregator transformer using the retention time option: --- transformers:     - name: "aggregator"       parameters:           retention_time: 60           resource_metadata: last --- This example does not work. It will always emit the aggregated samples that it has collected after it receives a second sample. This is because size defaults to 1. Mitigations:  * If you only want aggregated samples to be flushed by a time-based metric then you'll have to set size to a sufficiently large value Proposed fix: I propose that this configuration should flush samples every 60 seconds, regardless of how many samples are collected: --- transformers:     - name: "aggregator"       parameters:           retention_time: 60           resource_metadata: last --- Results in size = None, retention_time = 60 seconds If neither size or retention_time is specified, the behavior should stay the same: size defaulting to one (no aggregation). I feel like this is incorrect behavior, but for the sake of backwards compatibility that behavior should stay the same: --- transformers:     - name: "aggregator"       parameters:           resource_metadata: last --- Results in size = 1, retention_time = None Obviously, specifying both retention_time and size should use both as criteria to trigger a flush: --- transformers:     - name: "aggregator"       parameters:           size: 10           retention_time: 60           resource_metadata: last --- Results in size = 10, retention_time = 60 seconds Ref: http://docs.openstack.org/admin-guide-cloud/telemetry-data-collection.html#telemetry-pipeline-configuration https://github.com/openstack/ceilometer/blob/f87edaa1e01b62e5316039d9977a2d1a11b6271e/ceilometer/transformer/conversions.py#L311
2016-01-06 21:29:16 Rohit Jaiswal ceilometer: assignee Rohit Jaiswal (rohit-jaiswal-3)
2016-01-06 22:20:56 OpenStack Infra ceilometer: status New In Progress
2016-01-06 22:20:56 OpenStack Infra ceilometer: assignee Rohit Jaiswal (rohit-jaiswal-3) Kevin McDonald (k3vinmcdonald)
2016-01-10 18:53:44 gordon chung ceilometer: importance Undecided Medium
2016-01-10 18:53:50 gordon chung nominated for series ceilometer/kilo
2016-01-10 18:53:50 gordon chung bug task added ceilometer/kilo
2016-01-10 18:53:50 gordon chung nominated for series ceilometer/liberty
2016-01-10 18:53:50 gordon chung bug task added ceilometer/liberty
2016-01-11 21:30:34 OpenStack Infra ceilometer: status In Progress Fix Released
2016-01-11 23:41:49 OpenStack Infra ceilometer/liberty: status New In Progress
2016-01-11 23:41:49 OpenStack Infra ceilometer/liberty: assignee gordon chung (chungg)
2016-01-11 23:42:00 OpenStack Infra ceilometer/kilo: status New In Progress
2016-01-11 23:42:00 OpenStack Infra ceilometer/kilo: assignee gordon chung (chungg)
2016-01-18 23:52:38 OpenStack Infra ceilometer/liberty: status In Progress Fix Committed
2016-02-12 07:40:37 OpenStack Infra ceilometer/kilo: status In Progress Fix Committed
2016-05-09 11:49:43 Dave Walker ceilometer/kilo: milestone 2015.1.4
2016-05-10 22:02:45 Dave Walker ceilometer/kilo: status Fix Committed Fix Released