什么是Prometheus?数据库
Prometheus是由SoundCloud开源的监控系统,是Google BorgMon监控系统的开源版本。伴随着容器及Kubernetes技术的兴起,Prometheus愈来愈受到你们的关注。后端
不管是传统数据中心仍是云数据中心,不管是物理机,虚拟机仍是容器,整个数据中心的建设都绕不开监控这个话题。优秀的监控系统不只须要兼容各类设备和环境,还须要具有高性能,高可靠及易运维等特性,Prometheus正是其中之一。伴随着容器相关技术的兴起,Prometheus正逐步成为容器监控的标准,而且对于传统应用和设备也有良好的兼容性。
Prometheus有GO语言编写而成,采用Pull方式获取监控信息,并提供了多维度的数据模型和灵活的查询接口。Prometheus不只能够经过静态文件配置监控对象,还支持自动发现机制,可以经过Kubernetes,Consul,DNS等多种方式动态获取监控对象。在数据采集方面,借助Go语言的高并发特性,单机Prometheus能够采集数百个节点的监控数据;在数据存储方面,随着本地时序数据库的不断优化,单机Prometheus每秒能够采集一千万个指标,若是须要存储大量的历史监控数据,则还支持远端存储。架构
Prometheus生态系统组件架构:并发
Prometheus Server负责定时在目标上抓取Metrics数据,每一个抓取目标都须要暴露一个HTTP服务接口用于Prometheus定时抓取。这种调用被监控对象获取监控数据的方式被称为Pull。Pull方式体现了Prometheus独特的设计哲学与大多数采用了Push方式的监控系统不一样。
但某些现有系统是经过push方式实现的,为了接入这个系统,Prometheus提供对PushGateway的支持,这些系统主动推送metrics到PushGateway,而Prometheus只是定时去Gateway上抓取数据。运维
AlertManager是独立于Prometheus的一个组件,在触发了预先设置在Prometheus中的高级规则后,Prometheus便会推送告警信息到AlertManager。分布式
Prometheus支持两种存储方式: 高并发
Prometheus的优点:性能
Prometheus监控目标:优化
指标摘要:设计
一般来讲,单个指标对咱们价值很小,每每须要联合并可视化多个指标,这其中须要应用一些数学转换。