观测云集成注意事项
有关本系列脚本包,请在使用前阅读以下注意事项及说明
1. 固定的云厂商标签
使用本系列脚本包向观测云上报的数据,默认会根据所对应的云厂商添加cloud_provider
标签,用于区分云厂商。
因此,在账号配置的extra_tags
中,请勿再添加 Key 为cloud_provider
的标签。
具体的云平台及对应的固定标签如下:
所属云平台 | 标签值 |
---|---|
阿里云 | "aliyun" |
AWS | "AWS" |
腾讯云 | "tencentcloud" |
华为云 | "huaweicloud" |
2. 云监控数据的联动补充
一般来说,各云厂商的云监控产品只会提供监控对象的 ID 及其监控指标信息,如:ECS 的实例 ID 和 CPU 使用率。而不会同时返回如实例名称等其他信息。
所以,当仅开启云监控类采集器时,虽然可以达到监控数据的查看、告警等目的,但仅依靠 ID 区分不同对象会很不直观。
因此,云监控类采集器会与对应自定义对象类采集器同时开启时,系统会自动根据 ID 等数据进行联动,为云监控类数据附带更多有关实例的信息。
由于需要先获知自定义对象信息才能在云监控类采集器中进行联动,因此一般建议将云监控的采集器放置在列表末尾,如:
Python | |
---|---|
1 2 3 4 5 6 7 8 9 10 |
|
具体的联动效果,请参考具体的采集器文档
3. 不同采集器的采集频率限制
即使在「自动触发配置」中配置了较短的启动间隔(如 1 分钟),各个采集器内部都根据自身业务特性设置了内部最小采集间隔。
启动间隔与采集间隔不同,每次「启动」未必会实际进行「采集」
对于大部分上报自定义对象的采集器来说,内部最小采集间隔为 15 分钟。如果在 15 分钟内连续启动,程序会自动跳过实际的采集处理,避免大量 API 调用。
对于云监控类的采集器来说,内部最小采集间隔为 1 分钟,但也请根据实际需要设置合理的启动间隔(如 5 分钟),避免大量 API 调用。
4. 数据采集的延迟
本系列脚本在进行采集的过程中,多少都会有数据上的延迟。
对于自定义对象采集器来说,由于存在内部最小采集间隔,因此当发生新购、释放实例,修改实例名时,最久需要等到下次实际采集执行后才会反应到观测云中。
对于云监控类的采集器来说,当涉及到「云监控数据的联动补充」时,由于用于补充的标签来自于自定义对象采集器的采集处理,因此也会收到上文中自定义对象采集器的内部最小采集间隔限制。
5. 云监控类数据的准确性
对于云监控类采集器来说,由于实际都是通过云厂商的 API 来获取聚合后的数据,而非真实的原始数据。
因此本系列采集器采集到的云监控类数据实际只可能是「二手数据」,可能与云厂商的控制台看到的数据会有所出入。
6. 可能产生的巨量 API 调用及数据
某些采集器如果配置为获取全量数据,会产生巨量的 API 查询,极易触发云平台限流,甚至 AK 被封。
因此,在编写采集器配置时,应当在了解具体产品 API 调用规则,以及在观测云产生数据量的基础上进行充分的考量。
如果由此产生任何经济损失,本脚本作者及相关方概不负责
7. 同时采集多个产品时的耗时
在单个函数中配置多个采集器时,由于需要大量请求云厂商的 API,每次执行的耗时可能较长。
以阿里云为例,如下的采集方案:
采集器 | 配置 |
---|---|
云监控 | ECS、RDS、SLB、OSS 所有指标 |
ECS、RDS、SLB、OSS | 仅限杭州地域 |
单次运行耗时约为 1 到 2 分钟。
因此,一般来说,单个函数中同时采集多个产品的,都需要额外为函数指定更长的超时时间timeout
(单位秒)如:
Python | |
---|---|
1 2 3 4 |
|
参数 timeout 最长可指定为 3600 秒(即 1 小时),一般建议设置为所需耗时的 1.5 倍左右。过长的 timeout 可能会导致执行队列无意义的拥堵