Ask Your Question

ceilometer meter list:The service catalog is empty

asked 2015-12-02 20:28:34 -0500

Hi Gurus,

I just installed ceilometer service, but it always reports "The service catalog is empty" from ceilometer meter-list, here is debug output:

#ceilometer meter-list  
The service catalog is empty.
# ceilometer -d meter-list
DEBUG (session) REQ: curl -g -i -X GET http://localhost:35357/v3 -H "Accept: application/json" -H "User-Agent: python-keystoneclient"
DEBUG (session) RESP: [200] content-length: 249 vary: X-Auth-Token keep-alive: timeout=5, max=100 server: Apache/2.4.7 (Ubuntu) connection: Keep-Alive date: Thu, 03 Dec 2015 02:12:49 GMT x-openstack-request-id: req-1f0ac752-abba-4a02-b1f3-b58aa2dd8412 content-type: application/json x-distribution: Ubuntu
RESP BODY: {"version": {"status": "stable", "updated": "2015-03-30T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v3+json"}], "id": "v3.4", "links": [{"href": "http://localhost:35357/v3/", "rel": "self"}]}}

DEBUG (v3) Making authentication request to http://localhost:35357/v3/auth/tokens
Traceback (most recent call last):
  File "/usr/bin/ceilometer", line 10, in <module>
  File "/usr/lib/python2.7/dist-packages/ceilometerclient/", line 297, in main
  File "/usr/lib/python2.7/dist-packages/ceilometerclient/", line 246, in main
    args.func(client, args)
  File "/usr/lib/python2.7/dist-packages/ceilometerclient/v2/", line 234, in do_meter_list
    meters = cc.meters.list(q=options.cli_to_array(args.query))
  File "/usr/lib/python2.7/dist-packages/ceilometerclient/v2/", line 30, in list
    return self._list(options.build_url(path, q))
  File "/usr/lib/python2.7/dist-packages/ceilometerclient/common/", line 68, in _list
    resp = self.api.get(url)
  File "/usr/lib/python2.7/dist-packages/ceilometerclient/openstack/common/apiclient/", line 355, in get
    return self.client_request("GET", url, **kwargs)
  File "/usr/lib/python2.7/dist-packages/ceilometerclient/openstack/common/apiclient/", line 345, in client_request
    self, method, url, **kwargs)
  File "/usr/lib/python2.7/dist-packages/ceilometerclient/openstack/common/apiclient/", line 244, in client_request
  File "/usr/lib/python2.7/dist-packages/ceilometerclient/openstack/common/apiclient/", line 315, in authenticate
  File "/usr/lib/python2.7/dist-packages/ceilometerclient/openstack/common/apiclient/", line 203, in authenticate
  File "/usr/lib/python2.7/dist-packages/ceilometerclient/", line 186, in _do_authenticate
    _get_endpoint(ks_session, **ks_kwargs))
  File "/usr/lib/python2.7/dist-packages/ceilometerclient/", line 138, in _get_endpoint
  File "/usr/lib/python2.7/dist-packages/keystoneclient/", line 626, in get_endpoint
    return auth.get_endpoint(self, **kwargs)
  File "/usr/lib/python2.7/dist-packages/keystoneclient/auth/identity/", line 219, in get_endpoint
  File "/usr/lib/python2.7/dist-packages/keystoneclient/", line 318, in inner
    return func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/keystoneclient/", line 216, in url_for
    raise exceptions.EmptyCatalog(_('The service catalog is empty.'))
keystoneclient.exceptions.EmptyCatalog: The service catalog is empty.

And in my ceilometer server's /var/log/ceilometer/alarm-evaluator.log , it's repeating connection refuesed, but I have no idea which url is refusing my request:

2015-12-03 10:24:30.128 10314 ERROR ceilometer.alarm.service [-] alarm evaluation cycle failed
2015-12-03 10 ...
edit retag flag offensive close merge delete

2 answers

Sort by ยป oldest newest most voted

answered 2015-12-02 21:03:02 -0500

pl_rock gravatar image

updated 2015-12-02 22:12:01 -0500

run commands

export OS_PROJECT_NAME=admin
export OS_TENANT_NAME=admin
export OS_USERNAME=admin
export OS_PASSWORD=Your Admin Tenant Password
export OS_AUTH_URL=http://controller_url:35357/v2.0
edit flag offensive delete link more


Thanks Rock, I did this on server, but it failed as: # ceilometer meter-list
The request you have made requires authentication. (HTTP 401) (Request-ID: req-9a274fc1-8895-4450-ac32-2f903ff5677f)

Steven Li gravatar imageSteven Li ( 2015-12-02 21:19:20 -0500 )edit

this is not able to authenticate you check all parameter you set correctly . also try OS_AUTH_URL=http://controller_url:35357 .

pl_rock gravatar imagepl_rock ( 2015-12-02 21:25:41 -0500 )edit

[root@steven-ceilometer ceilometer]# export OS_AUTH_URL=http://controller:35357
[root@steven-ceilometer ceilometer]# ceilometer meter-list
The request you have made requires authentication. (HTTP 401) (Request-ID: req-ae361a4d-1e7d-4bf9-b501-0bd1040a79a5)

Steven Li gravatar imageSteven Li ( 2015-12-02 21:31:21 -0500 )edit

Hi Rock, may I know why we use "OS_USERNAME=admin", but "OS_PASSWORD=YOUR_CEILOMETER_PASSWORD" use ceilometer password?
I think the os_username should go to os_password? so admin with admin's password?
Anyway, all of them do not work, really confused...

Steven Li gravatar imageSteven Li ( 2015-12-02 21:34:25 -0500 )edit

Hi Steven

OS_PASSWORD=Your Admin Tenant Password


Bipin gravatar imageBipin ( 2015-12-02 22:04:27 -0500 )edit

answered 2015-12-02 23:53:10 -0500

updated 2015-12-02 23:54:39 -0500

Thanks Rock and Bipin, I got it fixed.
The current env file is:

export OS_PROJECT_NAME=admin
export OS_AUTH_URL=http://controller:35357/v2.0
export OS_USERNAME=admin
export OS_TENANT_NAME=admin

And now I can get outputs from ceilmeter meter-list:

[root@steven-ceilometer ~]# ceilometer meter-list
| Name                | Type       | Unit     | Resource ID                          | User ID                          | Project ID          |
| cpu                 | cumulative | ns       | b2af6ed8-a6b8-4549-86ee-58efffe4a586 | 83d0855ae5c24b9f8cb1a14ea2b079ec | ba4b954a23b040e4bcf7777d260164d4 |
| cpu_util            | gauge      | %        | b2af6ed8-a6b8-4549-86ee-58efffe4a586 | 83d0855ae5c24b9f8cb1a14ea2b079ec | ba4b954a23b040e4bcf7777d260164d4 |

But one more issue is, my dashboard admin user can not get ceilometer meter list when I check Resource usage tab, the keystone admin.log is showing diffrent request when I run command line against request via dashboard:

2015-12-03 13:50:02.373 4472 INFO keystone.common.wsgi [-] GET http://controller:35357/v2.0/tenants
2015-12-03 13:50:08.910 4497 INFO keystone.common.wsgi [-] GET http://controller:35357/v2.0/tenants
2015-12-03 13:50:24.796 4471 INFO keystone.common.wsgi [-] GET http://controller:35357/v2.0/tenants
#####Above are quested by dashboard, 3 clicks

2015-12-03 13:50:30.814 4485 INFO keystone.common.wsgi [-] GET http://controller:35357/v2.0/
2015-12-03 13:50:30.825 4471 INFO keystone.common.wsgi [-] POST http://controller:35357/v2.0/tokens
2015-12-03 13:50:30.990 4472 INFO keystone.common.wsgi [-] GET http://controller:35357/v3/auth/tokens
#####These are quested by command line, one commnad "# ceilometer meter-list"
edit flag offensive delete link more


Everything is working fine now, my ceilometer server's firewall blocked controller node send requests to ceilometer service.
iptables -F
Now I can see all meter list via command line or dashboard.
Thank you all for your efforts.

Steven Li gravatar imageSteven Li ( 2015-12-03 01:06:11 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Get to know Ask OpenStack

Resources for moderators

Question Tools

1 follower


Asked: 2015-12-02 20:28:34 -0500

Seen: 1,009 times

Last updated: Dec 02 '15