1、基本介绍
prometheus-flask-exporter该库提供flask应用的http请求度量,可以导出数据到Prometheus,它还可以使用方便的函数跟踪方法调用。
2、安装
参考官网说明:prometheus-flask-exporter · PyPI
pip3 install prometheus-flask-exporter
3、完整的示例
如果直接看官网说明,你可能会觉得一下子不太好理解,下面我们基于一个完整的示例来看下,效果图:
代码完整示例参考:(prometheus_flask_exporter/examples/sample-signals/)prometheus_flask_exporter/examples/sample-signals at master · rycus86/prometheus_flask_exporter · GitHubPrometheus exporter for Flask applications. Contribute to rycus86/prometheus_flask_exporter development by creating an account on GitHub.https://github.com/rycus86/prometheus_flask_exporter/tree/master/examples/sample-signals
进入对应代码目录:
cd ./prometheus_flask_exporter-master/examples/sample-signals
看下目录结构,其实也比较清晰。
$ tree
.
├── README.md
├── app # flask的在线服务
│ ├── Dockerfile
│ ├── app.py
│ └── requirements.txt
├── dashboard.png
├── docker-compose.yml # docker-compose启动文件
├── generator # 模拟访问flask在线服务接口
│ ├── Dockerfile
│ ├── generate_events.py
│ └── requirements.txt
├── grafana # grafana可视化配置
│ ├── config.ini
│ ├── dashboard.yaml
│ ├── dashboards
│ │ └── example.json
│ └── datasource.yaml
└── prometheus # prometheus配置(推拉数据配置)
└── config.yml
废话不多说 ,我们直接启动所有的服务,为了方便,我们直接使用Mac笔记本本地的docker启动:
# 在./examples/sample-signals目录,执行如下命令
docker-compose up -d
正常情况下,我们从启动日志可以看到,先通过本地对应目录的Dockerfile制作了2个镜像:sample-signals_app、sample-signals_generator,然后从远程拉取了2个官方镜像:grafana/grafana、prom/prometheus,从docker images命令其实也可以看到这4个镜像:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
......
sample-signals_generator latest 3b6b2676efdf 53 minutes ago 54.4MB
sample-signals_app latest 65762cc8002b 54 minutes ago 56.7MB
......
grafana/grafana 5.1.0 ed6c9eb28b01 4 years ago 238MB
prom/prometheus v2.2.1 cc866859f8df 4 years ago 113MB
......
接下来,我们看看这几个镜像的运行状态情况:
最后通过本地浏览器打开:http://localhost:3000/d/_eX4mpl3,预期效果如上文的示例图,主要统计了9种场景的数据(./sample-signals/grafana/dashboards/example.json),指标详细说明参考:README.md
到这里,只能说有一个感官的认识,具体的细节还需要下面多花时间研究 。