为什么尼奥基缓慢地将'server_group'应用于资源?

问题描述

我在创建时将元数据"metering.server_group":"corey-group"添加到实例中,并使用nova show对其进行检查,然后将其应用,然后使用gnocchi resource show --type instance ${instance-id}属性{{ 1}}一开始是server_group,但过一会儿就会应用它(总是在小时上,例如:07:00、08:00 ...),我不知道会发生什么,我认为此问题会导致Gnocchi进行聚合时获取不正确的数据集,因此我花了一些时间对其进行故障排除。

首先,存储在数据库中的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上重现此问题。

解决方法

也许您可以参考以下讨论:

Heat autoscaling with gnocchi based aodh alarms requires use of naive instance_discovery_method setting with ceilometer compute agents?

根据参考,尝试将ceilometer配置文件中的默认instance_discovery_method从“ libvirt_metadata”更改为“ naive”

[compute]
instance_discovery_method = naive

切换为“天真”可以解决此问题,但是显然会在Nova API上产生负载以进行元数据检索。