写点什么

当国产夜莺遇上国际化 Prometheus

朱春来

  • 2020-06-30
  • 本文字数:1103 字

    阅读完需:约 4 分钟

当国产夜莺遇上国际化 Prometheus

滴滴开源的企业级监控系统(夜莺)衍生自 OpenFalcon,对其进行了大量深入的优化,特别是监控报警方面融合了大量滴滴生产级的实践,社区可以直接分享此红利。美菜网看到了夜莺的很多优势后,果断将原先基于 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 采集插件(及其参数)即可,如下图所示:



附:ES 监控大盘


4、附录

Prometheus-Exporter-Collector


Prometheus exporter集合


[视频] Nightingale-系列10-新版插件以及与Prometheus Exporter整合(By 秦晓辉)


夜莺(Nightingale)github 主页


2020-06-30 10:273538

评论

发布
暂无评论
发现更多内容

架构训练营模块二作业

BlingBling

架构实战营

架构实战营 - 模块二

Testcase

架构实战营

央视曝光APP弹窗广告三大陷阱:如何监管应用软件弹窗广告

石头IT视角

【数据结构】Java 同步工具 AQS

Alex🐒

Java 源码 数据结构

微信朋友圈高性能架构分析

面向对象的猫

架构实战营第二课作业——微信朋友圈的高性能复杂度分析

tt

架构实战营

编程的本质是什么?

白色蜗牛

Java 编程 程序员 软件 计算机

设计消息队列存储消息数据的MySQL表格

俞嘉彬

架构实战营

模块二作业

俊杰

智能运维系列之五:总结

micklongen

AIOPS 智能运维

面试算法之螺旋数组查找问题

泽睿

面试 二分查找

架构实战营 - 模块 2 - 微信朋友圈高性能复杂度分析

雪中亮

架构实战营 #架构实战营

《面试补习》--来聊聊削峰填谷!

九灵

Java 分布式 消息队列 异步削峰

架构训练营模块二作业

老实人Honey

「架构师训练营第 1 期」

2.4如何提高架构设计的质量

Lemon

架构训练营第 1 期 模块二作业

高远

性能测试误差分析文字版-下

FunTester

软件测试 性能测试 接口测试 测试框架 测试开发

2.3如何设计高可用架构

Lemon

存储高可用

MVP on Board 没用小技巧 👌

newbe36524

.net MVP ASP.NET Core

架构实战营 - 模块二(作业)

Cingk

区块链的宿命,数字经济的局

CECBC

性能测试误差分析文字版-上

FunTester

性能测试 自动化测试 接口测试 测试框架 测试开发

健康讲座:如何提升人体免疫能力

石云升

学习 健康 7月日更

大数据训练营-第一次作业

西伯利亚鼯鼠

知乎热文 | 如何高效学习Spring Boot?

Jackpop

Java Spring Boot

清晰了!一文彻底理解Java事件处理

Jackpop

Java

微信朋友圈架构设计

summer

极客时间 极客时间架构师一期

Presto原理&调优&面试&实战全面升级版

王知无

架构训练营 1 期 - 模块二作业

蔸蔸

进阶指南!深入理解Java注解

Jackpop

Java

当国产夜莺遇上国际化 Prometheus_开源_R. Colin Johnson_InfoQ精选文章