aylei / aliyun-exporter

Prometheus exporter for Alibaba Cloud Monitor
Apache License 2.0
276 stars 152 forks source link

info_metrics: - ecs :超过十台 Ecs 主机就会报以下错误,用的子账号(AliyunCloudMonitorReadOnlyAccess权限) #13

Closed infamt closed 5 years ago

infamt commented 5 years ago

Traceback (most recent call last): File "C:/Users/AS/Desktop/app/app/aliyun-exporter.py", line 10, in load_entry_point('aliyun-exporter', 'console_scripts', 'aliyun-exporter')() File "C:\Users\AS\Desktop\app\app\aliyun_exporter__init.py", line 39, in main REGISTRY.register(collector) File "C:\Users\AS\Desktop\app\app\venv\lib\site-packages\prometheus_client\registry.py", line 24, in register names = self._get_names(collector) File "C:\Users\AS\Desktop\app\app\venv\lib\site-packages\prometheus_client\registry.py", line 64, in _get_names for metric in desc_func(): File "C:\Users\AS\Desktop\app\app\aliyun_exporter\collector.py", line 136, in collect yield self.info_provider.get_metrics(resource) File "C:\Users\AS\Desktop\app\app\venv\lib\site-packages\cachetools\init__.py", line 46, in wrapper v = func(*args, **kwargs) File "C:\Users\AS\Desktop\app\app\aliyun_exporter\info_provider.py", line 41, in get_metrics }[resource]() File "C:\Users\AS\Desktop\app\app\aliyun_exporter\info_provider.py", line 37, in 'ecs': lambda : self.ecs_info(), File "C:\Users\AS\Desktop\app\app\aliyun_exporter\info_provider.py", line 50, in ecs_info return self.info_template(req, 'aliyun_meta_ecs_info', nested_handler=nested_handler) File "C:\Users\AS\Desktop\app\app\aliyun_exporter\info_provider.py", line 81, in info_template gauge.add_metric(labels=self.label_values(instance, label_keys, nested_handler), value=1.0) File "C:\Users\AS\Desktop\app\app\venv\lib\site-packages\prometheus_client\metrics_core.py", line 145, in add_metric self.samples.append(Sample(self.name, dict(zip(self._labelnames, labels)), value, timestamp)) File "C:\Users\AS\Desktop\app\app\aliyun_exporter\info_provider.py", line 106, in return map(lambda k: str(nested_handlerk) if k in nested_handler else str(instance[k]), KeyError: 'KeyPairName'

Process finished with exit code 1

aylei commented 5 years ago

感谢反馈! 这个问题和主机数量无关, 根本原因是这些 ECS 中存在字段不一致的情况, 而这个版本没有做兼容 最新版本已经修复, 能否尝试一下 v0.3.1?

infamt commented 5 years ago

ok, 更新到后 0.3.1 这个错误解决了!感谢大牛的解答!