Bug 1397515

Summary: Ceilometer collector fails to connect to Gnocchi
Product: Red Hat OpenStack Reporter: Dimitri Savineau <dsavinea>
Component: documentationAssignee: Lukas Ruzicka <lruzicka>
Status: CLOSED CURRENTRELEASE QA Contact: Petr Kovar <pkovar>
Severity: high Docs Contact:
Priority: unspecified    
Version: 9.0 (Mitaka)CC: aschultz, dbecker, dsavinea, jdanjou, jruzicka, lbopf, lruzicka, mburns, morazi, pkilambi, pkovar, rhel-osp-director-maint, srevivo
Target Milestone: ---Keywords: Reopened, Triaged, ZStream
Target Release: 9.0 (Mitaka)   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-06-29 14:17:44 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Attachments:
Description Flags
Ceilometer collector log none

Description Dimitri Savineau 2016-11-22 17:01:57 UTC
Created attachment 1222799 [details]
Ceilometer collector log

Description of problem:
When using Gnocchi as dispatcher for ceilometer meter datas, the collector fails to connect to Gnocchi

Version-Release number of selected component (if applicable):
OSP 9
openstack-tripleo-heat-templates-2.0.0-40.el7ost.noarch
openstack-puppet-modules-8.1.8-3.el7ost.noarch
openstack-ceilometer-collector-6.1.3-2.el7ost.noarch
python-gnocchi-2.1.3-3.el7ost.noarch

How reproducible: 100%

Steps to Reproduce:
1. Deploy overcloud with gnocchi as dispatcher (see additional info for config)
2. Run gnocchi metric list

Actual results:
No data in gnocchi
$ source overcloudrc
$ gnocchi metric list
(empty)

Expected results:
Datas stored in gnocchi
$ source overcloudrc
$ gnocchi metric list
+--------------------------------------+---------------------+----------------+--------------------------------------+
| id                                   | archive_policy/name | name           | resource_id                          |
+--------------------------------------+---------------------+----------------+--------------------------------------+
| 296d2acd-024f-4935-8b93-0180a147a831 | low                 | image          | e00be6f9-757b-40d3-94e0-f2d6c397fdac |
| 8e15eb7d-5174-4cbb-88e9-dc9b7fab4242 | low                 | image.download | e00be6f9-757b-40d3-94e0-f2d6c397fdac |
| 9120d45f-f818-4920-be3f-7a8f0b309bae | low                 | image.serve    | e00be6f9-757b-40d3-94e0-f2d6c397fdac |
| 9f5d06f0-952d-4f60-ba48-114251674f7a | low                 | image.size     | e00be6f9-757b-40d3-94e0-f2d6c397fdac |


Additional info:
The following configuration is used :

-----------------
parameter_defaults:
  CeilometerMeterDispatcher: 'gnocchi'
-----------------

In attachment the python stack trace in ceilometer collector log. After restarting ceilometer collector in pacemaker, everything is working.

# pcs resource restart openstack-ceilometer-collector-clone

Comment 1 Julien Danjou 2017-03-17 09:01:23 UTC
I think this is expected in OSP 9, Gnocchi dispatcher was not configured by default in Ceilometer. Can you confirm Prad?

Comment 3 Julien Danjou 2017-03-17 14:42:58 UTC
Closing as WONTFIX as this is not something we want to fix and it was a deliberate choice back then.

Comment 4 Dimitri Savineau 2017-03-17 15:05:01 UTC
Sorry but that doesn't make any sense to me.

You have the ability to choose your backend via CeilometerMeterDispatcher (database by default).

https://github.com/openstack/tripleo-heat-templates/blob/stable/mitaka/overcloud.yaml#L40

But if you want to use gnocchi instead (which is supported in OSP9), it doesn't work out of the box but that's not something you want to fix ?

Comment 5 Julien Danjou 2017-03-17 15:20:10 UTC
Dimitri, sorry, I may have misunderstood. Indeed if you set this option which allows "gnocchi" as a value and that is not apply, there might be something odd. I'll pass the ball to Prad which is more qualified than me on TripleO rules. :)

Comment 6 Pradeep Kilambi 2017-03-17 17:15:50 UTC
In OSP9, the way overcloud deployment runs is, all the services are deployed by puppet first and the keystone init runs in the end. Keystone init is whats responsible for creating the user and project in keystone. So when collector is deployed, gnocchi project/service is not in keystone yet and meter dispatcher initialization with gnocchi will fail. It gets added in the end as part of keystone init. Hence a restart of collector fixes the issue post deploy as at this point gnocchi user is in keystone and authentication passes. This is fixed in osp10 i believe where the keysont init is moved to puppet so it happens during the deployment, instead of in the end. Hence this wont happen in OSP10 or later.

This is one of the reasons why we dont default to gnocchi as dispatcher in OSP9. I thought we documented this as a known thing somewhere in the docs.

Comment 9 Lucy Bopf 2017-04-24 02:08:19 UTC
Moving to 'NEW' to be triaged as resources allow.

Comment 23 Petr Kovar 2017-06-29 12:53:27 UTC
LGTM, thanks.