字数 279,阅读大约需 2 分钟
应用服务使用OpenTelemetry,上报Metrics到Uptrace
OpenTelemetry Metrics 是一套用于可观测性领域的标准规范及相关技术实现,旨在帮助开发者以统一的方式收集、聚合和发送指标数据
以fastapi框架为例,演示如何采集和展示API metrics
接来下的是定义metrics指标,并嵌入到业务里,我们这里是在中间件里上报相关数据
Uptrace支持多语言:OpenTelemetry Python Metrics API | Uptrace[1]
"""
OpenTelemetry Metrics 工具模块
用于定义和收集 FastAPI 应用的 API 请求 metrics。
"""
from opentelemetry import metrics
# 获取全局的 meter
meter = metrics.get_meter(__name__)
# 定义 API 请求总次数 Counter
api_requests_total_counter = meter.create_counter(
name="api_requests_total", description="Total number of API requests", unit="1"
)
# 定义 API 请求失败次数 Counter
api_requests_failed_total_counter = meter.create_counter(
name="api_requests_failed_total", description="Total number of failed API requests", unit="1"
)
在middleware里采集API请求总数
# 获取路由路径模板
route_path = request.url.path # 默认使用实际路径
# 尝试获取 FastAPI 路由模板
route_path = request.url.path
logger.debug(route_path)
route_headers = request.headers
logger.debug(route_headers)
# 增加 API 请求总次数
api_requests_total_counter.add(1, {"http.method": request.method, "http.route": route_path})
Uptrace Metrics看板维护
引用链接
[1]
OpenTelemetry Python Metrics API | Uptrace: https://uptrace.dev/get/opentelemetry-python/metrics
评论区