Ceilometer/blueprints/transportation-pipeline-monitoring-metrics
< Ceilometer | blueprints
总结
与计量数据相比,监控指标需要以更频繁的方式收集,并且数据量也大得多。监控指标是否必须像计量数据一样通过消息总线?或者直接写入数据存储是一个值得考虑的选项。
当前的计量管道
---
-
name: meter_pipeline
interval: 60
counters:
- "*"
transformers:
publishers:
- meter_publisher
指标管道的替代方案
---
-
name: metrics_pipeline
interval: 5 // more frequent polling might be needed by monitoring
counters:
- "*"
transformers:
publishers:
- metrics_publisher // metrics publisher might directly write to backend storage (avoid MQ)
- metrics_notifier(publisher) // inline pre-processing metrics notification
直接写入数据存储
存储后端有 record_metering_message() 方法来通过 RPC(消息队列)将计量消息(从计数器转换而来)存储到后端存储。 另一个 record_monitoring_metrics() 方法可以直接将指标存储到存储后端。
预处理/内联计算
可以使用 Transformer 在指标存储到数据存储之前进行一些内联预处理。 这允许在持久化之前实时通知一些关键指标或计算指标。
“实时单个指标”,当它达到某些阈值或匹配某些特定值时,可以立即触发通知。 例如,容量达到上限。
“计算指标”,一些指标可能由 Transformer(类似于 AccumulatorTransformer)在内存中顺序保存以进行一些内联计算。 当 PublishContext 退出时,计算结果可能会作为新型指标刷新到数据存储。 如果它满足某些条件,也可以触发一些通知。 例如,一些急剧增加的存储指标可能表明在短时间内使用量急剧上升。
后处理/分析
可以定期针对数据存储直接或通过监控 API 执行后处理、分析和 mapred 任务,这更多的是针对耗时的分析任务。
