美文网首页Prometheus
Prometheus 简介

Prometheus 简介

作者: xufeibuaa | 来源:发表于2018-05-15 11:51 被阅读253次

翻译 原文链接

什么是Prometheus

Prometheus是一个开源的监控和报警系统。从2012年初,很多公司和组织开始使用Prometheus,同时这个项目有了很多活跃的开发者和用户社区。现在prometheus是一个独立于任何公司的开源项目,于2016年加入了Cloud Native Computing Foundation,是kubernetes之后的第二个主要项目。

特性

  • 多维度的数据模型(通过指标名称和标签键值对标识)
  • 灵活的查询语言
  • 单机工作模式,不依赖于分布式存储
  • 通过pull模式(HTTP)收集监控数据
  • 通过使用中间件可以支持push监控数据到prometheus
  • 通过服务发现或者静态配置发现目标(监控数据源)
  • 支持多模式的画图和仪表盘

组件

Prometheus生态系统包含很多组件(大多是都是可选择的)

  • Prometheus server(抓取、存储时间序列数据)
  • client libraries(帮助应用支持prometheus数据采集)
  • a push gateway(支持短生命周期的jobs,接收push的监控数据)(prometheus原生支持pull工作模式,为了兼容push工作模式)
  • exporters(用于支持开源服务的监控数据采集,比如:HAProxy、StatsD、Graphite等)(也就是agent)
  • alertmanager(处理警报)
  • 其它的支持工具

架构

下面这张图展示了prometheus的建构和prometheus系统可能需要到的组件:


architecture.png

Prometheus直接抓取exporters或者支持prometheus的jobs的监控数据,通过PushGateway间接抓取push工作模式的短期任务的监控数据。prometheus本地存储所有的采样数据,运行相应的规则来聚合数据、根据以存在的数据产生新的时间序列数据或者产生警报。Grafana或者其它可视化工具可以调用API可视化收集到的数据。

Prometheus使用的场景

Prometheus工作于任何记录纯数字的时间序列数据。它适用于以机器为中信的监控,也适用于高动态的、面向服务体系架构的监控。在微服务中,prometheus支持多维度的数据收集和展示是很有用处的。

Prometheus是专门为可靠性而设计的,当处理有问题的系统或服务时,为你提供诊断数据,使你能够快速的诊断问题。每个prometheus服务是单机的,不依赖于网络存储或者其它的远端服务。因此,你可以依赖prometheus,当你基础设施的其它部分坏掉的时候;同时部署、使用prometheus很简单。

Prometheus不适用的场景

Prometheus的核心在于可靠。你能够看到你的系统的统计数据,即使系统或者服务有问题(因为prometheus通过pull的方式收集数据,所以能够识别服务是否有问题)。如果你需要精准度很高的监控数据,比如按请求计费,prometheus不是一个好的选择;因为prometheus收集的数据可能不是很详细或者很完整。这种情况下,你最好选择其它的系统来收集和分析关于计费的数据;prometheus可以为你其它的监控提供服务。

相关文章

网友评论

    本文标题:Prometheus 简介

    本文链接:https://www.haomeiwen.com/subject/xadedftx.html