prometheus exporter简介

一、服务分类

  1. 在线服务:请求的客户端和发起者需要立即响应(高并发、低延迟:并发数、接口响应时间、错误数、延迟时间),面对突发流量能进行资源的自动伸缩
  2. 离线服务:请求发送到服务端但不要求立即获取结果(监控服务的每个执行阶段、成功/失败的次数)
  3. 批处理:批量任务的执行(一般定时执行),针对每个任务的执行耗时、待处理任务、阻塞任务、处理成功/失败的任务数

二、数据规范

  1. prometheus制定了一套独特的监控数据规范,符合这一规范的监控数据都可以被统一采集、分析和展现
  2. prometheus为监控对象提供一个标准的HTTP GET接口,调用接口每次都将返回所有的监控数据
  3. 监控数据以文本形式组织,每个指标都占用一行,除了文本的最后一个空行,其他空行都将被忽略
  4. #HELP:指标的注释
    #TYPE:定义一个监控指标

三、exporter简介

  1. exporter诞生的原因:大多数监控无法直接提供监控接口(本身不支持HTTP接口、安全性、稳定性、代码耦合等)
  2. exporter是一个采集监控数据并通过prometheus监控规范对外提供数据的组件
  3. 官方实现的exporter:blackbox_exporter、consul_exporter、graphite_exporter、haproxy_exporter、memcached_exporter、mysqld_exporter、node_exporter、statsd_exporter
  4. 第三方实现的exporter:Redis exporter、RabbitMQ exporter等
  5. prometheus会周期性地调用exporter提供的metrics数据接口来获取数据
  6. exporter通过被监控对象提供的监控相关的接口获取监控数据(HTTP/HTTPS、TCP、本地文件(node)、标准协议方式)
  7. 官方主要依赖库:go、java、scala、python、ruby等

四、功能特性总结

  1. prometheus只会采集指定格式的监控信息
  2. exporter按照prometheus规定的格式采集各种软件的监控信息(mysql、node、consul、rabbitMQ等)
  3. 部分exporter在采集监控信息时需要获取一定的权限用于采集指定信息(如:mysql)
  4. 类似于多功能充电线,什么品牌的手机选择对应型号的线即可;不同的软件选择对应exporter即可
posted @ 2019-12-16 16:21  jayce9102  阅读(5478)  评论(0编辑  收藏  举报