使用Prometheus监控API

本文介绍了一种使用Python和Prometheus_Client库构建的exporter,用于监控后端API状态及响应时间的方法。通过集成Prometheus并配置告警,实现对后端服务健康状况的实时监测。
该文章已生成可运行项目,

[可以使用新的方案: 拨测API接口+监控方案_一直学下去的博客-优快云博客]

写在最前面

  我心里也打鼓,是不是应该把这个文章写出来,因为这个项目里面的代码不能拿来就用,需要做修改(其实后端API监控本来就和业务相关,应该没有一个成品可以做到对每一个业务的API都能监控).其次文章里面涉及的知识点比较多,Prometheus,Prometheus-Operator,K8S,Python ,如果你已经具备这些基础,也愿意花时间来读这篇文章,请继续。如果按照步骤做了有问题,可以留言,我会回复的。

简介:

目前公司有一个项目,使用前后端分离。前端采样VUE,后端使用Java Spring全家桶,后端的接口为Restful API.为了能第一时间发现后端服务的故障和检测后端API的响应时间,自己使用Python+Prometheus_Client(python sdk) 写了一个exporter,然后对接prometheus,并配置告警。后端有故障的时候,可以第一时间发现,而不是等用户有感觉来才发现。 

后端项目的接口认证采用在header中附加token的形式,用户第一次登录的时候会返回token。

PS: 前端项目运行在nginx容器中,已经使用blackbox的http模块监控

实施步骤:

1. 将代码克隆到本地,或者使用pycharm导入

git clone https://gitee.com/kevinliu_CQ/api-monitoring.git

2. 修改代码中的配置

   a. 修改config_dir 下面的app.yaml文件。里面的域名和接口地址都需要修改,以我的项目为例,请查看描述信息

config:
     testset: 'APP API monitoring'  #描述性信息,代码中未使用
     timeout: 15 #调用API的超时时间
     scrape_interval: 15 #检测API的时间间隔,单位为秒
     base_url: 'https://app.×××.com/app' #API接口的URL,我的项目是微服务,这个app是微服务的url前缀
token:
     base_url: 'https://app.××××.com/app' #获取token的URL地址
     url: '/login/pwdLogin' #获取token的接口地址
     method: "POST" #获取接口的HTTP方法
     body: '' #获取接口时在post请求的payload内容
     params: {"mobile": "17320491234","pwd": "your_password"} #这个是在请求的URL中
本文章已经生成可运行项目
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值