Prometheus(普罗米修斯)是个时序数据库,可以搭配grafana做展示。今天在读书的时候,顺便发现其中的一些内容,笔记之:
Prometheus是一套开源的监控、报警、时间序列数据库的组合,最初由SoundCloud公司开发。Prometheus 在2016加入 CNCF(Cloud Native Computing Foundation),成为继Kubernetes之后的第二个由基金会主持的项目。目前社区非常活跃,有高达1.4万个Star。Prome theus非常适合监控Kubernetes。
与一般的监控系统相比,Prometheus具有如下特点。
时序数据库存储监控数据能够存储更大量的数据,不依赖于其他存储系统,安装非常简单。
灵活的查询语言(PromQl)。
通过基于HTTP的pull方式采集时序数据,可以通过Pushgateway进行时序列数据推送。
多种可视化和仪表盘支持。
Prometheus的架构,如图3-16所示。
Prometheus Server主要由三部分组成。
Retrieval:负责定时去指定的API上抓取采样指标数据。
Storage:负责将采样数据高效安全地持久化存储到磁盘中。
PromQL:负责提供查询。
Prometheus Server端会存储所有的数据,并对这些数据进行分析,基于规则进行报警。Prometheus 利用自身的时序数据库,有着非常高效的存储。据官方介绍,每个采样数据只占3.5byte左右,上百万条时间序列,30s间隔,保留60天,大概只占用200GB。Prometheus支持通过配置文件、文本文件、ZooKeeper、Consul、DNS SRV lookup等方式指定抓取目标。Prometheus 是通过主动获取的方式采集数据,但是客户端有两种方式输送数据,一种方式是业务服务提供HTTP接口,Prometheus定时从业务服务中获取数据;另外一种方式是业务服务推送数据到Pushgateway,Prometheus定时从Pushgateway中获取数据。
Alertmanager是独立于Prometheus之外的一个组件,提供十分灵活的报警方式。另外,可以通过Web UI、Grafana、API clients等可视化界面查询数据。
Prometheus支持如下四种数据类型。
Counter:单调递增数据,只能增加,不能减少。例如记录请求次数、错误数。
Guage:当前的状态,常规值,可增可减。例如内存、CPU的使用情况。
Histogram:主要用于在指定分布范围内(Buckets)记录大小或者事件发生的次数。
Summary:客户端定义的数据分布统计图。
Grafana
Grafana使你能够把来自不同数据源比如Elasticsearch, Prometheus, Graphite, influxDB等多样的数据以绚丽的图标展示出来。
它也能基于你的metrics数据发出告警。当一个告警状态改变时,它能通知你通过email,slack或者其他途径。
值得注意的是,Prometheus仪表盘也有简单的图标。但是Grafana的图表表现的更好。这也是为什么,在这篇文章中,我们将整合Grafana和Pormetheus来可视化metrics数据。
一些不错的资源教程:
https://blog.csdn.net/luanpeng825485697/article/details/84028184
https://blog.csdn.net/wuxiaobingandbob/article/details/78954406
https://bigjar.github.io/2018/08/19/Spring-Boot-Metrics%E7%9B%91%E6%8E%A7%E4%B9%8BPrometheus-Grafana/