使用 Prometheus 和 Grafana 监控 FastAPI 服务

news2024/9/24 3:24:51

在现代应用开发中,监控和可视化服务的运行状态和性能指标对于保证系统稳定性至关重要。本文将介绍如何使用 Prometheus 和 Grafana 对 FastAPI 服务进行监控和可视化,并展示如何通过 prometheus_fastapi_instrumentator 将 FastAPI 应用与 Prometheus 集成。

1. 环境准备

首先,你需要准备以下环境:

  • Docker: 用于快速部署 Prometheus 和 Grafana。
  • python: 本地安装好python环境

2. 安装 Prometheus

创建 Prometheus 配置文件

在服务器上创建一个 prometheus.yml 文件,定义需要监控的目标:

global:
  scrape_interval: 15s
scrape_configs:
  - job_name: 'fastapi_service'
    static_configs:
      - targets: ['localhost:8000']  # 替换为你的 FastAPI 服务地址和端口
使用 Docker 运行 Prometheus

在服务器上执行以下命令启动 Prometheus:

docker run -d \
  --name prometheus \
  -p 9090:9090 \
  -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
  prom/prometheus
  • -v /your_path/prometheus.yml:/etc/prometheus/prometheus.yml:将本地配置文件映射到容器内。
  • -p 9090:9090:将 Prometheus 的 9090 端口暴露出来。
访问 Prometheus

在浏览器中访问 http://<your-server-ip>:9090,确保 Prometheus 正常运行。

3. 安装 Grafana

使用 Docker 运行 Grafana

在服务器上执行以下命令启动 Grafana:

docker run -d \
  --name=grafana \
  -p 3000:3000 \
  grafana/grafana
  • -p 3000:3000:将 Grafana 的 3000 端口暴露出来。
访问 Grafana

在浏览器中访问 http://<your-server-ip>:3000,默认用户名为 admin,密码也是 admin。首次登录后,系统会提示你修改密码。

4. 配置 Prometheus 数据源

  1. 登录 Grafana 后,点击左侧菜单栏的 “Configuration” -> “Data Sources”。
  2. 点击 “Add data source”。
  3. 选择 “Prometheus”。
  4. 在 “URL” 栏中填入 http://<your-server-ip>:9090
  5. 点击 “Save & Test” 确保配置成功。

5. 集成 Prometheus 到 FastAPI

要将 Prometheus 与 FastAPI 集成,你可以使用 prometheus_fastapi_instrumentator 库。

安装 prometheus_fastapi_instrumentator

执行以下命令安装:

pip install prometheus-fastapi-instrumentator
修改 FastAPI 应用

在你的 FastAPI 应用中,导入并使用 PrometheusInstrumentator

from fastapi import FastAPI
from prometheus_fastapi_instrumentator import Instrumentator
app = FastAPI()
# 添加 Prometheus 监控
instrumentator = Instrumentator()
instrumentator.instrument(app).expose(app)
验证指标端点

启动 FastAPI 应用,并访问 http://localhost:8000/metrics,确保 Prometheus 格式的指标数据正常展示。

6. 创建 Grafana 仪表盘

  1. 添加面板
    • 点击左侧菜单栏的 “+” -> “Dashboard”。
    • 点击 “Add new panel” 创建新的面板。
    • 在 “Query” 部分选择 Prometheus 数据源,填写 PromQL 查询语句,例如 rate(http_requests_total[1m]) 用于监控 HTTP 请求速率。
    • 配置完毕后,点击 “Apply” 保存面板,一个监控请求数的图表就做好了。
      在这里插入图片描述

7. 设置告警

  • 在 Prometheus 中定义告警规则并配置告警管理器(Alertmanager)来处理告警。
  • 在 Grafana 中基于 Prometheus 的数据源设置告警阈值,并配置通知渠道(如邮件、Slack)。

总结

通过上述步骤,你可以成功实现 Prometheus 和 Grafana 的集成,对 FastAPI 服务进行全面的监控和可视化。Prometheus 负责采集和存储指标数据,Grafana 提供强大的可视化功能,本地搭建监控环境可以帮我们本地压测提供数据支撑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1996497.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

zabbix监控1

1、概念 自带图形化界面&#xff0c;通过网页就可以监控所有服务器的状态。 事件告警、邮件通知 web界面提供的分布式监控以及网络监控功能的开源的企业级的软件解决方案 zabbix可以提供各种类型的监控模版&#xff0c;保证服务器的正常运行&#xff0c;灵活的通知机制可以…

惠海 H7303 DCDC线性恒流IC PWM调光无电感低压差大电流 9V 12V 24V 30V球泡灯/转向灯方案

H7303是一种带PWM调光功能的线性降压恒流LED驱动器&#xff0c;仅需外接一个电阻就可以构成一个完整的LED恒流驱动电路,调节该外接电阻就可以调节输出电流&#xff0c;输出电流可调范围为16~2000mA。H7303内置过热保护功能&#xff0c;可有效保护芯片&#xff0c;避免因过热而造…

【经验分享】ShardingSphere+Springboot-04:自定义分片算法(COMPLEX/STANDARD)

文章目录 3.4 CLASS_BASED 自定义类分片算法3.4.1 复杂分片自定义算法&#xff08;strategyCOMPLEX &#xff09;3.4.2 STANDARD 标准分片自定义算法## 进阶:star: 自定义算法范围查询优化 3.4 CLASS_BASED 自定义类分片算法 3.4.1 复杂分片自定义算法&#xff08;strategyCOM…

Windows 10 /11 系统上安装Arc浏览器!超详细的教程

Arc浏览器在在发布以后&#xff0c;给人留下了相当不错的第一印象。 简洁的界面设计,巧妙的操作逻辑,使用过后让人爱不释手,体验出众&#xff01;目前官方提供了Windows 11 和 Mac版 官方下载&#xff1a;【链接直达】 如果你是Windows 10系统&#xff0c;由于官方没有直接提…

加固三防笔记本电脑:保护数据安全的首选设备

随着信息技术的飞速发展&#xff0c;笔记本电脑早已成为现代生活中不可或缺的工具。然而&#xff0c;普通的笔记本电脑无法适应一些特殊的环境&#xff0c;在数据安全保护方面也有着一定的风险。加固三防笔记本电脑则是保护数据安全的首选设备。下面将介绍加固三防笔记本电脑的…

掌控150+KOC账号!游戏厂商深掘ChinaJoy余温,热度再飙升!

4天36.7万人次&#xff0c;抖音话题总播放次数达到10.9亿&#xff01; ChinaJoy&#xff08;以下简称CJ&#xff09;官方给出了第21届CJ的参观总人次和线上流量数据&#xff0c;展现了其应有的“顶流”热度。 作为全球数字娱乐领域最具知名度与影响力的年度盛会&#xff0c;202…

springmvc框架 dispacherServelet容器组件调用

服务器启动时&#xff0c;tomcat创建并自动装配所有生成对象&#xff1a;spring容器放在服务器应用全局中&#xff0c;springmvc容器被放在dispacherServlet容器中。注解解析器在dispacherServlet创建时赋予它识别相关注解并作出相应操作的能力。 浏览器发送请求req&#xff0c…

养老院老人健康信息管理系统 /养老院管理系统

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&a…

达梦数据库 DMFLDR的使用

达梦的DMFLDR使用 1.背景2.要求3.实验步骤3.1 参数简介3.2 控制文件3.3 数据文件编写3.4 创建表3.5 执行装载程序3.6 查看运行结果3.7 数据导出控制文件编写3.8 数据导出命令3.9 行列分隔符 4.实验结论 1.背景 用户通过使用快速装载工具能够把按照一定格式排序的文本数据以简单…

门店收银系统源码+同城即时零售多商户入驻商城源码

一、我们为什么要开发这个系统&#xff1f; 1. 商户经营现状 “腰尾部”商户&#xff0c;无小程序运营能力&#xff1b;自营私域商城流量渠道单一&#xff1b;无法和线下收银台打通&#xff0c;库存不同步&#xff0c;商品不同步&#xff0c;订单不同步&#xff1b; 2.平台服…

SpringBoot-application.properties为对象赋值

简单对象赋值 第一种方式 首先让该Bean交由Spring管理,然后加上ConfigurationProperties(prefix"前缀") <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId>&l…

PCIe学习笔记(19)

TLP Prefix&#xff08;前缀&#xff09;规则 以下规则适用于任何包含TLP Prefix的TLP: •对于任何TLP, TLP第0字节的Fmt[2:0]字段值为100b表示存在TLP Prefix, Type[4]位表示TLP Prefix的类型。 ◦Type[4]位的值为0b表示存在Local TLP Prefix ◦Type[4]位的值为1b表示存在…

一、Matlab基础

文章目录 一、Matlab界面二、Matlab窗口常用命令三、Matlab的数据类型3.1 数值类型3.2 字符和字符串3.3 逻辑类型3.4 函数句柄3.5 结构类型3.6 细胞数组 四、Matlab的运算符4.1 算术运算符4.2 关系运算符4.3 逻辑运算4.4 运算符优先级 五、Matlab的矩阵5.1 矩阵的建立5.2 矩阵的…

解决vscode连接远程服务器时一直要求输入密码的问题

今天在用vscode连接我的Linux服务器时&#xff0c;输入密码后并没有成功登录&#xff0c;而是不断的弹出密码输入框。如果有遇到相同问题的同学可以试试下面的方法 1.点击查看&#xff0c;打开命令面板 2.终止服务器 选中自己的服务器&#xff0c;然后会让你输入密码 3.重新登…

sqlserver一列转多行

文章目录 sqlserver一列转多行建表插入数据方式一方式二 sqlserver一列转多行 建表 CREATE TABLE [dbo].[MM_T_MATER]([fbillno] [NVARCHAR](50) NOT NULL,[fid] [INT] NOT NULL,[FCREATEDATE] [DATETIME] NOT NULL,[FDATE] [DATETIME] NOT NULL,[FPURCHASEORGID] [INT] NOT …

leetcode70_爬楼梯

思路 动态规划 爬到第n阶楼梯的方法数为&#xff1a;第n-1阶楼梯的方法数 第n-2阶楼梯的方法数 func climbStairs(n int) int {if n < 2 {return 1}dp : make([]int, n1)dp[1] 1dp[2] 2for i:3; i<n; i {dp[i] dp[i-1] dp[i-2]}return dp[n] }

C++分析哈希表

目录 哈希表 哈希表介绍 哈希表的数据插入和查找原理 哈希表的存放方法 开散列解决哈希冲突 思路 代码设计 结构设计 数据插入 数据查找 数据删除 闭散列解决哈希冲突 思路 代码设计 结构设计 数据插入 数据查找 数据删除 析构函数设计 比较key相等以及key…

Firefox滚动条在Win10和Win11下表现不一致问题?

文章目录 前言总结解决方法 前言 最近在写页面的时候发现一个非常有意思的事。Firefox滚动条在Win10和Win11下表现居然不一致。在网上几经查找资料&#xff0c; 终于找到原因所在。总结成下面的文章&#xff0c;加深印象也防止下次遇到。 总结 参考文章&#xff1a; Firefox…

淘宝天猫优惠券领取入口直达口令是什么?

词令是一款关键词口令直达工具&#xff1b;打开词令&#xff0c;输入口令「tb88」&#xff0c;搜索直达口令关联的目标淘宝优惠券领取入口。领取成功后&#xff0c;在下单购买默认使用领到的店铺优惠券享受券后价优惠。下面为您准备了图文教程 淘宝优惠券领取入口直达口令是什…

突破视觉界限:单目深度估计算法,智能无人系统的新视角

今天&#xff0c;为大家介绍一项新的SpireCV视觉感知技术——单目深度估计算法&#xff08;MDE, Monocular Depth Estimation&#xff09;。 什么是单目深度估计算法&#xff1f; 简单来说&#xff0c;单目深度估计是指通过单个摄像头获取的图像来估计场景中物体的深度信息。相…