![00a90f35824a8fcbd83c964e51e1b63c.gif](https://i-blog.csdnimg.cn/blog_migrate/02f9ef0f39d444aab4920d56e4d83a80.gif)
美菜网看到了夜莺的很多优势后,果断将我们的监控系统(基于 OpenFalcon 架构)整体迁移到夜莺架构上来,并在迁移的过程中将我们之前的一些实践融合进来,Prometheus-Exporter-Collector 正是此过程中的一个产物。
注:本文中所提到的各类资源请在附录中索骥查看。
1、为什么引入 Prometheus-Exporter-Collector 采集插件?
美菜网在监控平台建设的过程中,涵盖了基础设施、存储、中间件和应用服务多层次的监控。基础设施部分,直接采用了 OpenFalcon 生态的采集插件;存储和中间件层面,我们发现 Prometheus 更加丰富与完善,因此希望将 Prometheus 与 OpenFalcon 整合起来发挥各自的优势。迁移夜莺的过程中,我们希望继续发挥这种优势,夜莺优秀的插件扩展机制让一切变得简单,于是诞生了 Prometheus-Exporter-Collector。 Prometheus-Exporter-Collector 可以支持各类 Exporter,夜莺轻松拥有 Prometheus 生态的采集能力,目前在美菜已经投产了 MySQL、Redis、ElasticSearch、Ceph、Hadoop 体系、Nginx 等,更多的 Exporter 插件请查看官方文档。2、如何与夜莺整合?
Exporter 定位指标采集,在 Prometheus 体系中采用的拉模式获取指标,而夜莺则采用的是推模式,因此两者之间需要一个桥梁来衔接,Prometheus-Exporter-Collector 承担此角色。 在夜莺的体系中它作为插件存在,由 collector 驱动其运行,周期性地从Exporter 中读取指标,并转换成夜莺的数据模型后推送到夜莺的服务端,采集信息在夜莺的管理控制台(WEB端)简单配置并下发给 collector 即可。在Exporter和夜莺的数据模型转换过程中,我们遵循了如下规则:
指标名称(metric)、标签(tags/labels)和值(Value)直接转化;
时间戳(timestamp)默认 Exporter 指定,没有则 Prometheus-Exporter-Collector使用当前时间填充;
支持用户追加新的标签;
Endpoint(夜莺特有概念)默认本机,由夜莺的collector填充,当然用户也可以在配置侧自定义;
指标类型,Prometheus 采取的策略是使用者采用函数自由转换,我们希望引入一些最佳实践简化使用,对于计数器类型,我们支持用户配置策略将其转换成差值(Substract)和速率(Rate)、Uptype 类型默认转换成 Guage;
注:更多内容请查看社区说明和源码库。
3、使用指南
在夜莺采集配置中配置 Prometheus-Exporter-Collector 采集插件(及其参数)即可,如下图所示:
致谢
感谢滴滴开放的夜莺产品,帮助我们更好地建设自身的监控平台,同时我们也希望和社区一起共建,贡献一份绵薄之力。5、附录
Prometheus-Exporter-Collector:https://github.com/n9e/prometheus-exporter-collector.git
Prometheus exporter集合:https://prometheus.io/docs/instrumenting/exporters/
[视频] Nightingale-系列10-新版插件以及与Prometheus Exporter整合(By 秦晓辉):https://www.bilibili.com/video/BV19C4y1a7zh/
夜莺(Nightingale)github 主页:https://github.com/didi/nightingale
来源:本文转自 OpenFalcon 开源社区。