欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://spike.blog.csdn.net/article/details/147312078
免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。
FastAPI 是轻松地构建快速、高效的 API,没有内置用于监控和追踪的工具。OpenTelemetry 通过提供强大的工具,填补这一空白。具体包括:
- 分布式追踪:追踪请求在不同服务和组件之间的流转路径,帮助理解系统行为。
- 指标收集:收集与导出关键指标,以了解性能,例如请求时长、吞吐量和错误率。
- 日志集成:将日志与追踪和指标相关联,更好地进行调试和故障排查。
将 OpenTelemetry 与 FastAPI 集成,可以实时监控基于 FastAPI 的应用程序,从而提高可靠性,帮助尽早发现性能问题。
Hera
是分布式任务调度系统,专为大数据任务调度设计。
OTLP
是 OpenTelemetry Protocol 的缩写,用于收集和传输遥测数据(如指标、日志和追踪信息)的协议。
span
用于描述一个操作的执行过程,如函数调用、数据库查询、HTTP 请求等,记录操作的开始结束时间、操作名称、与操作属性以及操作结果。
安装 FastAPI
,用于构建 Python 的 API 服务:
pip install fastapi
pip show fastapi
pip install uvicorn
uvicorn main:app --host 0.0.0.0 --port 1919
安装 OpenTelemetry
,用于追踪 API 服务:
pip install opentelemetry-api
pip install opentelemetry-sdk
pip install opentelemetry-instrumentation-fastapi
pip install opentelemetry-exporter-otlp
pip install opentelemetry-exporter-zipkin
安装 Zipkin
(for Mac):
brew install zipkin
zipkin
启动 Zipkin
,如下:
构建带有 Router
的简单 FastAPI 服务:
from fastapi import FastAPI
from opentelemetry import trace
f