[Bug 1946793] Fix included in openstack/aodh victoria-eom

OpenStack Infra 1946793 at bugs.launchpad.net
Tue Mar 26 17:27:37 UTC 2024


This issue was fixed in the openstack/aodh victoria-eom  release.

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to Ubuntu Cloud Archive.
https://bugs.launchpad.net/bugs/1946793

Title:
  aodh uses deprecated gnocchi api to aggregate metrics and doesn't work
  properly

Status in Aodh:
  Fix Released
Status in Ubuntu Cloud Archive:
  Fix Released
Status in Ubuntu Cloud Archive wallaby series:
  Fix Released
Status in Ubuntu Cloud Archive xena series:
  Fix Released
Status in Ubuntu Cloud Archive yoga series:
  Fix Released
Status in aodh package in Ubuntu:
  Fix Released

Bug description:
  [Impact]
  aodh uses older gnocchi api. this causes issue when we are using metric command

  openstack metric measures aggregation
  openstack metric aggregates

  [Test Case]
  1. deploy openstack env with telemetry and heat ( heat template could be from the comment )
  2. heat template should be adjusted for #1's env.
  - any variables for openstack
  - desired number 2
  3. openstack stack create test -t ./heat
  4. assume stack id = 136bf93d-9dc9-4b3f-862d-6fdec1b6abf7
  5. access to instance, and dd command to give cpu load
  6. test openstack metric command

  openstack metric measures aggregation --query
  'server_group=136bf93d-9dc9-4b3f-862d-6fdec1b6abf7' --aggregation
  rate:mean --metric cpu --resource-type instance --fill null

  openstack metric aggregates '(aggregate rate:mean (metric cpu mean))'
  'server_group=136bf93d-9dc9-4b3f-862d-6fdec1b6abf7' --resource-type
  instance --granularity 300 --fill null

  7. then, check gnocchi log(apache log) if it calls v1/aggregation or
  v1/aggregates

  [Where problems could occur]
  shortage while upgrading.
  getting metrics could have issue.

  [Others]

  Original Description below

  On gnocchi API docs, there are 2 API methods to aggregate metrics

  1. /v1/aggregation/metric?

  See: https://gnocchi.osci.io/rest.html#aggregation-across-metrics-
  deprecated

  This one is deprecated

  2. /v1/aggregates?

  See: https://gnocchi.osci.io/rest.html#dynamic-aggregates

  aodh uses the 1st one to aggregate metrics, for example:

  ```
          if isinstance(start, datetime.datetime):
              start = start.isoformat()
          if isinstance(stop, datetime.datetime):
              stop = stop.isoformat()

          params = dict(start=start, stop=stop, aggregation=aggregation,
                        reaggregation=reaggregation, granularity=granularity,
                        needed_overlap=needed_overlap, groupby=groupby,
                        refresh=refresh, resample=resample, fill=fill)
          if query is None:
              for metric in metrics:
                  self._ensure_metric_is_uuid(metric)
              params['metric'] = metrics
              measures = self._get("v1/aggregation/metric",
                                   params=params).json()
  ```

  aodh doesn't work properly in our production environment after
  upgraded to Ussuri.

  When there is only 1 instance, aodh works properly and alarms can be
  triggered when the load on the instance is higher than the threshold.

  However, after the stack is scaled up, and the second instance is
  created. The average cpu usage got from gnocchi by aodh evaluator is
  not correct. The metric measures are negative sometimes.

  I manually pulled metrics with gnocchi command

  The aggregation of metrics is correct with command

  ```
  openstack metric aggregates
  ```

  It uses new API in the backend

  The aggregation of metrics is not correct with command

  ```
  openstack metric measures aggregation
  ```

  It uses the deprecated API which aodh is using.

To manage notifications about this bug go to:
https://bugs.launchpad.net/aodh/+bug/1946793/+subscriptions




More information about the Ubuntu-openstack-bugs mailing list