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 |
|