From 808e6b91e05c0ab6e29108973d14cb7a44e349cf Mon Sep 17 00:00:00 2001 From: Vu Tran Date: Wed, 14 May 2014 16:09:41 -0400 Subject: ceilometer: need to filter meter-id when doing sql querying Currently statistic values for all the meters are the same, for example, 2 commands: $ ceilometer statistics -m cpu_util $ ceilometer statistics -m cpu return the same statistic values, and this is incorrect. It needs to query Ceilometer database for samples for the correct meter-id to calculate statistic. Signed-off-by: Vu Tran --- ...lalchemy-fix-grouping-for-postgresql-databases.patch | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'meta-openstack/recipes-devtools/python/python-ceilometer/0001-sqlalchemy-fix-grouping-for-postgresql-databases.patch') diff --git a/meta-openstack/recipes-devtools/python/python-ceilometer/0001-sqlalchemy-fix-grouping-for-postgresql-databases.patch b/meta-openstack/recipes-devtools/python/python-ceilometer/0001-sqlalchemy-fix-grouping-for-postgresql-databases.patch index b2417d7..4472ad0 100644 --- a/meta-openstack/recipes-devtools/python/python-ceilometer/0001-sqlalchemy-fix-grouping-for-postgresql-databases.patch +++ b/meta-openstack/recipes-devtools/python/python-ceilometer/0001-sqlalchemy-fix-grouping-for-postgresql-databases.patch @@ -18,20 +18,21 @@ diff --git a/ceilometer/storage/impl_sqlalchemy.py b/ceilometer/storage/impl_sql index 0e5df7008c5e..697f51136c37 100644 --- a/ceilometer/storage/impl_sqlalchemy.py +++ b/ceilometer/storage/impl_sqlalchemy.py -@@ -674,8 +674,14 @@ class Connection(base.Connection): +@@ -674,8 +674,15 @@ class Connection(base.Connection): group_attributes = [getattr(models.Sample, g) for g in groupby] select.extend(group_attributes) - query = session.query(*select).filter( - models.Meter.id == models.Sample.meter_id) -+ # Group by Meter.unit for postgresql queries -+ # In mysql this doesn't change anything because one meter has one unit ++ # Group by Meter.unit for postgresql queries ++ # In mysql this doesn't change anything because one meter has one unit + -+ # mysql: -+ # query = session.query(*select).filter( -+ # models.Meter.id == models.Sample.meter_id) -+ # postgres: -+ query = session.query(*select).group_by(models.Meter.unit) ++ # mysql: ++ # query = session.query(*select).filter( ++ # models.Meter.id == models.Sample.meter_id) ++ # postgres: ++ query = session.query(*select).filter( ++ models.Meter.id == models.Sample.meter_id).group_by(models.Meter.unit) if groupby: query = query.group_by(*group_attributes) -- cgit v1.2.3-54-g00ecf