问题描述
我在创建时将元数据"metering.server_group":"corey-group"
添加到实例中,并使用nova show
对其进行检查,然后将其应用,然后使用gnocchi resource show --type instance ${instance-id}
(属性{{ 1}}一开始是server_group
,但过一会儿就会应用它(总是在小时上,例如:07:00、08:00 ...),我不知道会发生什么,我认为此问题会导致Gnocchi进行聚合时获取不正确的数据集,因此我花了一些时间对其进行故障排除。
None
如您所见,MariaDB [(none)]> use gnocchi
MariaDB [gnocchi]> select * from resource_type where name='instance';
# check its tablename,ex: rt_xxxxxx
MariaDB [gnocchi]> select * from rt_xxxxxx where display_name='corey-vm';
+----------------+---------------------+-----------+--------------------------------------+-------------------------+------------------+---+
| display_name | host | image_ref | flavor_id | server_group | id | flavor_name |
+----------------+---------------------+-----------+--------------------------------------+-------------------------+------------------+---+
| corey-vm | corey-test-com-001 | NULL | 26e46b4c-23bd-4224-a609-29bd3094a18e | NULL | xxxxxx | corey-flavor |
+----------------+---------------------+-----------+--------------------------------------+-------------------------+------------------+---+
列应为server_group
,但在刚创建实例时它始终为corey-group
,似乎ceilometer每小时都会更新资源每小时。
我在文件ceilometer/publisher/gnocchi.py中添加了一些日志,发现它每分钟更新一次资源,但是变量NULL
仅在每小时1小时获得resource_extra
,这就是为什么没有开始的原因。
这是日志的某些部分
2020-11-09 11:59:15 调试ceilometer.publisher.gnocchi资源{'host':u'test-com-002','display_name':u'vm-001 ','flavor_id':u'xxx','flavor_name':u'xxx'} publish_samples /usr/lib/python2.7/site-packages/ceilometer/publisher/gnocchi.py:345
2020-11-09 12:00:15 调试ceilometer.publisher.gnocchi资源{'host':u'test-com-002','display_name':u'vm-001 ','flavor_name':u'xxx','server_group':'corey-group'} publish_samples /usr/lib/python2.7/site-packages/ceilometer/publisher/gnocchi.py: 345
2020-11-09 12:01:15 调试ceilometer.publisher.gnocchi资源{'host':u'test-com-002','display_name':u'vm-001 ','flavor_id':u'xxx','flavor_name':u'xxx'} publish_samples /usr/lib/python2.7/site-packages/ceilometer/publisher/gnocchi.py:345
但是我坚持到这一点,我不明白为什么变量server_group
不能每次都得到resource_extra
。是什么导致这种意外发生呢? (在皇后区跑步)
我将不胜感激。
更新09/11/2020
经过几天的故障排除后,我仍然找不到根本原因。
但是我找到了一个命令行来手动应用'server_group',这可以帮助我避免Gnocchi收集到不正确的数据集。
这里是:
server_group
更新11/11/2020
我尝试gnocchi resource update --type instance -a server_group:corey-group ${resource_id}
整数3600并将其修改为300,但没有任何变化,以下是我尝试过的方法。
/etc/ceilometer/ceilometer.conf
grep
ceilometer / compute / discovery.py
[compute]
resource_cache_expiry = 300
ceilometer / publisher / zaqar.py
cfg.IntOpt('resource_cache_expiry',default=300,
更新12/11/2020
我无法在Pike上重现此问题。
解决方法
也许您可以参考以下讨论:
根据参考,尝试将ceilometer配置文件中的默认instance_discovery_method
从“ libvirt_metadata”更改为“ naive” ,
[compute]
instance_discovery_method = naive
切换为“天真”可以解决此问题,但是显然会在Nova API上产生负载以进行元数据检索。