Openstack 为什么Gnocchi缓慢地将“服务器组”应用于资源?

Openstack 为什么Gnocchi缓慢地将“服务器组”应用于资源?,openstack,Openstack,我在创建时将元数据metering.server_group:corey组添加到一个实例中,并使用nova show检查它是否已应用,然后使用Gnocchi resource show-type instance${instance id}检查Gnocchi资源,属性server_组在开始时为None,但过一段时间后,它将始终在小时应用,例如:07:00,08:00…,我不知道会发生什么,我认为这个问题会导致Gnocchi在进行聚合时获取不正确的数据集,所以我花了一些时间对其进行故障排除 首先,

我在创建时将元数据metering.server_group:corey组添加到一个实例中,并使用nova show检查它是否已应用,然后使用Gnocchi resource show-type instance${instance id}检查Gnocchi资源,属性server_组在开始时为None,但过一段时间后,它将始终在小时应用,例如:07:00,08:00…,我不知道会发生什么,我认为这个问题会导致Gnocchi在进行聚合时获取不正确的数据集,所以我花了一些时间对其进行故障排除

首先,数据库中存储的Gnocchi资源的属性:

MariaDB[none]>使用gnocchi MariaDB[gnocchi]>从资源类型中选择*,其中name='instance'; 检查其表名,例如:rt_uxxxxxx MariaDB[gnocchi]>从rt_uxxxxxx中选择*,其中显示\u name='corey-vm'; +--------+-----------+------+-------------------+-------------+---------+--+ |显示|名称|主机|图像|参考|风味| id |服务器|组| id |风味|名称| +--------+-----------+------+-------------------+-------------+---------+--+ |corey vm | corey-test-com-001 | NULL | 26e46b4c-23bd-4224-a609-29bd3094a18e | NULL | xxxxxx | corey香精| +--------+-----------+------+-------------------+-------------+---------+--+ 如您所见,column server_组应该是corey组,但在刚刚创建实例时,它始终为NULL,并且似乎每小时云高计都会在一小时内更新资源

我在文件中添加了一些日志,发现它每分钟更新一次资源,但是变量resource\u extra只在小时获得server\u组,这就是为什么它在开始时没有

下面是日志的一些部分

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'}发布_示例/usr/lib/python2.7/站点包/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'}发布_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'}发布_示例/usr/lib/python2.7/站点包/ceilometer/publisher/gnocchi.py:345

但我坚持到了这一点,我不明白为什么变量resource\u extra每次都不能获取服务器组。到底是什么原因导致了这种情况?在皇后区奔跑

如果有任何想法,我将不胜感激

更新日期:2020年11月9日

经过几天的故障排除,我仍然找不到根本原因

但是我找到了一个手动应用“server_group”的命令行,它可以帮助我避免Gnocchi获取不正确的数据集进行聚合

这是:

gnocchi resource update --type instance -a server_group:corey-group ${resource_id}
更新日期:2020年11月11日

我尝试grep整数3600并将其修改为300,但没有改变,下面是我尝试的

/etc/ceilometer/ceilometer.conf

[compute]
resource_cache_expiry = 300
云高计/compute/discovery.py

cfg.IntOpt('resource_cache_expiry',
            default=300,
云高计/publisher/zaqar.py

DEFAULT_TTL = 300
更新12/11/2020


我无法在派克上复制此问题。

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

根据参考,尝试在云彩仪配置文件中将默认的instance_discovery_方法从libvirt_metadata更改为naive,如下所示:

[compute]
instance_discovery_method = naive

切换到naive解决了这个问题,但是它显然会在Nova API上生成用于元数据检索的负载。

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

根据参考,尝试在云彩仪配置文件中将默认的instance_discovery_方法从libvirt_metadata更改为naive,如下所示:

[compute]
instance_discovery_method = naive

切换到naive解决了这个问题,但是它显然会在Nova API上生成用于元数据检索的负载。

Ceilometer可以为不同的度量设置不同的间隔。这些是在云高计的polling.yaml和pipeline.yaml中定义的。你已经检查过这些文件了吗?可能您必须在那里明确定义server\u group,以便与其他指标一样具有相同的更新间隔。感谢分享,但我不知道如何在这些配置文件中明确定义server\u group,似乎这不是一个指标。我尝试在ceilometer.conf中将resource\u cache\u Expire的值从3600更新到300,但并没有改变。云高计可以有不同的时间间隔,用于不同的度量。这些是在云高计的polling.yaml和pipeline.yaml中定义的。你已经检查过这些文件了吗?可能您必须在那里明确定义server_group,以便与其他指标一样具有相同的更新间隔。感谢共享,但我不知道如何在这些配置文件中明确定义server_group,似乎这不是一个指标。我尝试更新val 在ceilometer.conf中,资源\u缓存\u的使用期限从3600到300,但没有任何更改。