本文分享Python集成Prometheus的方法。

主要内容:

  • FastApi/Starlette集成Prometheus
  • 通用方法集成Prometheus

FastApi/Starlette集成Prometheus

使用FastApi开发的Web应用,想要添加监控指标,主流方案是对接Prometheus。

寻找解决方案时,发现Starlette有一个中间件 Starlette Prometheus。

FastApi继承自Starlette,可以直接使用其中间件。

这个中间件的官方文档描述的使用说明是以Starlette应用为例的,这里简单描述FastApi的使用方法。

一、安装

pip install starlette-prometheus

二、添加中间件

from fastapi import FastAPI
from starlette_prometheus import metrics, PrometheusMiddleware
​
app = FastAPI()
​
app.add_middleware(PrometheusMiddleware, filter_unhandled_paths=True)  # filter_unhandled_paths=True将过滤掉不属于starlette应用的path
app.add_route('/metrics', metrics)  # 设置metrics path
# app.add_route('/prometheus/metrics', metrics)  # 设置metrics path

三、配置Prometheus

暴露prometheus metrics path后,在prometheus.yml文件中进行配置即可。
假设应用地址为 localhost:8000,配置示例如下:

scrape_configs:- job_name: "fastapi"# metrics_path: "/prometheus/metrics"  # 设置metrics path,默认为 /metricsstatic_configs:- targets: ["localhost:8000"]

通用方法集成Prometheus

在使用 Starlette Prometheus中间件时,发现其底层使用的是Prometheus Python Client。这个库是Prometheus官方提供的Python Client,是Python集成Prometheus的通用方案,不过这个库默认只收集了通用的系统指标数据,想要收集应用的请求、响应等指标就需要自己开发了,如果实在没有可用的第三方库,也只能使用这个库开发指标了。

使用方法详见Prometheus Python Client。

通用指标如下图:

Python Web集成Prometheus相关推荐

  1. python最流行的框架_2020年最流行Python web开发框架(下)

    11种2020年流行的Web开发Python框架,接上文 2020年最流行Python web开发框架(上)介绍的,剩下部分在本文里继续详细介绍.当然,Python框架很多很棒,学好Python是打开 ...

  2. windows7下载python教程-Windows 7下Python Web环境搭建图文教程

    最近想尝试一下在IBM Bluemix上使用Python语言创建Web应用程序,所以需要在本地搭建Python Web的开发测试环境. 关于Python的版本 进入Python的网站,鼠标移到导航条上 ...

  3. pythonweb开发-5个最好的Python Web开发框架

    原标题:5个最好的Python Web开发框架 Python是最受欢迎的和最有效率的开发语言之一.Python能让你更快完成工作,并且更有效地集成系统.Python是动态的面向对象的语言.即便你刚刚开 ...

  4. python软件包自带的集成开发环境-实验一 熟悉Python的集成开发环境

    实验一 熟悉Python的集成开发环境 一.实验目的与要求 1.了解什么是Python: 2.了解Python的特性: 3.掌握下载和安装Python的方法: 4.学习执行Python命令和脚本文件的 ...

  5. python的web框架哪个最好学_2018年要学习的10大Python Web框架

    通过为开发人员提供应用程序开发结构,框架使开发人员的生活更轻松.他们自动执行通用解决方案,缩短开发时间,并允许开发人员更多地关注应用程序逻辑而不是常规元素. 在本文中,我们分享了我们自己的前十大Pyt ...

  6. python web开发第三方库_Python Web开发中常用的第三方库

    Python Web开发中常用的第三方库 TL;DR 经常有朋友问,如果用Python来做Web开发,该选用什么框架?用 Pyramid 开发Web该选用怎样的组合等问题?在这里我将介绍一些Pytho ...

  7. python web应用_如何使用Python将通知发送到Web应用

    python web应用 by Lucas Hild 卢卡斯·希尔德(Lucas Hild) 如何使用Python将通知发送到Web应用 (How to send notifications to y ...

  8. Django Python Web应用程序框架简介

    在这个由四部分组成的系列文章的前三篇文章中,比较了不同的Python Web框架,我们介绍了Pyramid , Flask和Tornado Web框架. 我们已经构建了同一个应用程序3次,最终进入了D ...

  9. python web环境傻瓜搭建_Python 环境搭建以及神器推荐,果断收藏!

    原标题:Python 环境搭建以及神器推荐,果断收藏! 导读:今天给大家讲一下如何搭建一个舒适的 Python 环境,包括本地环境和远程调试环境,然后再附送给大家两套好用的 Python Web 框架 ...

最新文章

  1. BZOJ1396:识别子串(SAM)
  2. [恢]hdu 2015
  3. 2015年12月书单推荐
  4. YOLOv3 学习笔记:大神好贴汇总+自身经验记录
  5. WordPress的Kyma plugin HTML发送的connect请求是怎么投递到PHP的
  6. xml json 比较_JSON和XML:它们如何比较?
  7. LWCOPY为前端代码提供复制功能的插件
  8. 1014.修改clion的工具链
  9. H.264的编解码流程
  10. 设计模式--工厂方法模式
  11. [前端]如何让图片等比例缩放,同时撑满父级容器的长或宽
  12. ENVI5.1中Landsat 8数据大气校正
  13. APT入门知识:抗击APT和针对性攻击
  14. matlab 绘制对数曲线图,大神经验!教你用matlab画对数坐标!
  15. js打印倒三角形和正三角形
  16. 知乎上看到一篇有关三门问题比较好的讲解
  17. SAP web 开发 (第二篇 bsp 开发 mvc模式 Part1 )
  18. 网站收录查询-批量网站收录查询软件
  19. 【BZOJ3940】[USACO2015 Feb] Censoring (AC自动机的小应用)
  20. 循环世界模型(Recurrent World Models)——真实世界建模的强化学习利器

热门文章

  1. Jupyter notebook运行后打不开网页
  2. 【Pytorch项目实战】之迁移学习:特征提取、微调、特征提取+微调、雾霾清除
  3. 当众社死,涨粉百万,社交牛逼症成新晋流量密码
  4. 游戏开发 excel导出工具
  5. 大型项目如何进行项目管理?
  6. note、remark、memo 这三次表示备注有什么区别?
  7. nginx安全下载模块ngx_http_secure_link_module
  8. html5第五章简答题4,2020自考思修考试简答题重点归纳:第五章
  9. 仙剑奇侠传5保存文件的简单分析:让雨柔复活打最终BOSS吧
  10. AppWidget开发