跳转到: 导航, 搜索

Ceilometer/blueprints/transportation-pipeline-monitoring-metrics

总结

与计量数据相比,监控指标需要以更频繁的方式收集,并且数据量也大得多。监控指标是否必须像计量数据一样通过消息总线?或者直接写入数据存储是一个值得考虑的选项。

当前的计量管道

---
-
    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

Ceilometer-metrics-pipeline.png

直接写入数据存储

存储后端有 record_metering_message() 方法来通过 RPC(消息队列)将计量消息(从计数器转换而来)存储到后端存储。 另一个 record_monitoring_metrics() 方法可以直接将指标存储到存储后端。

预处理/内联计算

可以使用 Transformer 在指标存储到数据存储之前进行一些内联预处理。 这允许在持久化之前实时通知一些关键指标或计算指标。

“实时单个指标”,当它达到某些阈值或匹配某些特定值时,可以立即触发通知。 例如,容量达到上限。

“计算指标”,一些指标可能由 Transformer(类似于 AccumulatorTransformer)在内存中顺序保存以进行一些内联计算。 当 PublishContext 退出时,计算结果可能会作为新型指标刷新到数据存储。 如果它满足某些条件,也可以触发一些通知。 例如,一些急剧增加的存储指标可能表明在短时间内使用量急剧上升。

后处理/分析

可以定期针对数据存储直接或通过监控 API 执行后处理、分析和 mapred 任务,这更多的是针对耗时的分析任务。