Go
1 | 安装 |
1 | package main |
1 | 执行 |
1 | 访问 |
上述示例展示如何使用 Prometheus Golang 库来暴露应用的指标数据,但暴露的监控指标数据为文本类型,需要搭建维护额外的 Prometheus 服务来抓取指标,还需要额外的 Grafana 来对数据进行可视化展示。
Prometheus
Prometheus下载
解压后当前目录会包含默认的Prometheus配置文件promethes.yml
启动完成后,可以通过http://localhost:9090访问Prometheus的UI界面
Node Exporter下载
在Prometheus的架构设计中,Prometheus Server并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。Prometheus周期性的从Exporter暴露的HTTP服务地址(通常是/metrics)拉取监控样本数据。
从上面的描述中可以看出Exporter可以是一个相对开放的概念,其可以是一个独立运行的程序独立于监控目标以外,也可以是直接内置在监控目标中。只要能够向Prometheus提供标准格式的监控样本数据即可。
这里为了能够采集到主机的运行指标如CPU, 内存,磁盘等信息。我们可以使用Node Exporter。
Node Exporter同样采用Golang编写,并且不存在任何的第三方依赖,只需要下载,解压即可运行。可以从https://prometheus.io/download/获取最新的node exporter版本的二进制包。
1 | 解压启动后访问 http://localhost:9100 |
从Node Exporter收集监控数据
为了能够让Prometheus Server能够从当前node exporter获取到监控数据,这里需要修改Prometheus配置文件。编辑prometheus.yml并在scrape_configs节点下添加以下内容:
1 | scrape_configs: |
重新启动Prometheus Server。访问http://localhost:9090,进入到Prometheus Server。如果输入up
并且点击执行按钮以后,可以看到如下结果:
Prometheus UI
Prometheus UI是Prometheus内置的一个可视化管理界面,通过Prometheus UI用户能够轻松的了解Prometheus当前的配置,监控任务运行状态等。 通过Graph
面板,用户还能直接使用PromQL
实时查询监控数据
PromQL
PromQL是Prometheus自定义的一套强大的数据查询语言,除了使用监控指标作为查询关键字以为,还内置了大量的函数,帮助用户进一步对时序数据进行处理。
Grafana
Grafana 是一个监控仪表系统,它可以大大帮助你简化监控的复杂度,你只需要提供你需要监控的数据,它就可以帮你生成各种可视化仪表。同时它还有报警功能,可以在系统出现问题时通知你。
Docker安装运行
1 | docker run -d -p 3000:3000 grafana/grafana |
1 | 1. 访问 http://localhost:3000 |