腾讯云可观测平台文档中心入门中心API 中心SDK 中心文档活动我的反馈文档反馈官招募中,报名立赚积分兑换代金券!> HOT文档中心>腾讯云可观测平台>应用性能监控>接入指南>接入 LLM 应用接入 LLM 应用最近更新时间:2025-04-30 10:12:42
微信扫一扫QQ新浪微博复制链接链接复制成功我的收藏本页目录:支持的 LLM 组件与框架接入流程获取接入点与 token安装 traceloop-sdk初始化配置与 OpenTelemetry 自动埋点结合自定义埋点增强接入验证大语言模型近年来呈现出快速增长的趋势,随着 DeepSeek 的强势出圈,AI 应用的门槛进一步降低,为各行业引入高效且低成本的解决方案,推动了人工智能落地应用的爆炸式发展。大语言模型应用的运行涉及多个组件和复杂的交互过程,应用性能监控 APM 通过分布式追踪技术,清晰地展示请求在各个组件之间的调用链路,一旦出现故障,可以快速定位到问题所在的具体环节。同时,APM 可以实时监测模型应用的运行状态,及时发现异常行为并发出告警,使运维人员及时采取措施,避免问题扩大化。支持的 LLM 组件与框架LLM 应用可以基于 Traceloop 开源的 OpenLLMetry 项目进行接入,该项目完全兼容 OpenTelemetry 协议标准,能够和其他使用 OpenTelemetry 方案接入的应用实现链路信息互通。OpenLLMetry 项目支持众多 LLM 组件与框架的自动埋点,请前往 项目主页 获取所有支持的组件与框架,以下将列出其中一部分供您参考。支持的 LLM 组件与框架链接支持的 LLM 框架Ollama、LlamaIndex、LangChain、Haystack、LiteLLM、CrewAI支持的向量数据库Chroma、Pinecone、Qdrant、Weaviate、Milvus、Marqo、LanceDB支持的 LLM 厂商VertexAI、OpenAI、MistralAI、Anthropic、Cohere、HuggingFace、Replicate 等接入流程获取接入点与 token1. 登录 腾讯云可观测平台 控制台。2. 在左侧菜单栏中选择应用性能监控,单击应用列表 > 接入应用。3. 在右侧弹出的数据接入抽屉框中,单击 Python 语言。4. 在接入 Python 应用页面,选择您所要接入的地域以及业务系统。5. 选择接入协议类型为 OpenTelemetry。6. 上报方式选择您所想要的上报方式,获取您的接入点和 Token。说明:内网上报:使用此上报方式,您的服务需运行在腾讯云 VPC。通过 VPC 直接联通,在避免外网通信的安全风险同时,可以节省上报流量开销。外网上报:当您的服务部署在本地或非腾讯云 VPC 内,可以通过此方式上报数据。请注意外网通信存在安全风险,同时也会造成一定上报流量费用。安装 traceloop-sdk通过pip命令安装 traceloop-sdk,其中包含了对 OpenLLMetry 以及 OpenTelemetry-SDK 的相关依赖。pip install traceloop-sdk初始化配置在 Python 项目的入口文件中引入 traceloop 和 OpenTelemetry-SDK,并根据前置步骤中获得的接入点以及 token 进行初始化。说明:在需要埋点的目标组件导入声明之前,就必须完成初始化,建议尽可能在入口文件的起始处添加初始化代码。from traceloop.sdk import Traceloopfrom opentelemetry.sdk.trace.export import BatchSpanProcessorfrom opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporterfrom opentelemetry.baggage.propagation import W3CBaggagePropagator# 配置链路数据发送后端# 尽可能在文件开头声明,一定要在目标埋点组件的导入声明前初始化Traceloop.init( app_name="", resource_attributes={ "token": "", "host.name": "" }, propagator=W3CBaggagePropagator(), processor=BatchSpanProcessor( OTLPSpanExporter(endpoint="") ))对应的字段说明如下,请根据实际情况进行替换。 :应用名,多个使用相同 serviceName 接入的应用进程,在 APM 中会表现为相同应用下的多个实例。应用名最长63个字符,只能包含小写字母、数字及分隔符“ - ”,且必须以小写字母开头,数字或小写字母结尾。 :前置步骤中拿到业务系统 Token。:该实例的主机名,是应用实例的唯一标识,通常情况下可以设置为应用实例的 IP 地址。 :前置步骤中拿到的接入点。示例代码以 Ollama 搭建的本地大模型应用为例,可以参考如下代码完成初始化配置。运行示例代码,需要安装 Ollama,并下载相关模型,本文使用的模型为开源推理模型 deepseek-r1:1.5b。from traceloop.sdk import Traceloopfrom opentelemetry.sdk.trace.export import BatchSpanProcessorfrom opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporterfrom opentelemetry.baggage.propagation import W3CBaggagePropagatorTraceloop.init( app_name="", resource_attributes={ "token": "", "host.name": "" }, propagator=W3CBaggagePropagator(), processor=BatchSpanProcessor( OTLPSpanExporter(endpoint="") ))from ollama import chatfrom ollama import ChatResponsedef ollama_chat(): response: ChatResponse = chat(model='deepseek-r1:1.5b', messages=[ { 'role': 'user', 'content': 'Tell a joke of OpenTelemetry', }, ]) print(response.message.content) if __name__ == "__main__": ollama_chat()至此,LLM 应用已经完成了接入 APM 的所有工作。与 OpenTelemetry 自动埋点结合如果业务代码使用了其他与 LLM 无关的框架或组件,如 Django、Flask 等 Web 框架,或 SQLAlchemy 等 ORM 框架,需要与 OpenTelemetry 社区的自动埋点探针结合,实现对这些组件的埋点。具体的组件支持列表请参考 项目主页。如果要对 Flask 进行埋点,需要先安装对应的 pip package:pip install opentelemetry-instrumentation-flask埋点代码示例:from opentelemetry.instrumentation.flask import FlaskInstrumentorapp = Flask(__name__)FlaskInstrumentor().instrument_app(app)@app.route('/')def get_response(): # 此处为调用大模型并返回相关信息的逻辑自定义埋点增强如果需要跟踪 LLM 相关框架与类库之外的业务场景,可以参照下述内容,使用 OpenTelemetry API 添加自定义埋点。本文仅展示最基本的自定义埋点方式,OpenTelemetry 社区提供了更多灵活的自定义埋点方式,具体使用方法可参考 OpenTelemetry 社区提供的 Python 自定义埋点文档。from traceloop.sdk import Traceloopfrom opentelemetry import trace # 导入链路相关 SDKfrom opentelemetry.sdk.trace.export import BatchSpanProcessorfrom opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporterfrom opentelemetry.baggage.propagation import W3CBaggagePropagatorTraceloop.init( app_name="", resource_attributes={ "token": "", "host.name": "" }, propagator=W3CBaggagePropagator(), processor=BatchSpanProcessor( OTLPSpanExporter(endpoint="") ))from ollama import chatfrom ollama import ChatResponsetracer = trace.get_tracer(__name__) # init tracerdef ollama_chat(): response: ChatResponse = chat(model='deepseek-r1:1.5b', messages=[ { 'role': 'user', 'content': 'Tell a joke of OpenTelemetry', }, ]) print(response.message.content) def main(): with tracer.start_as_current_span("entry func") as span: # create a span span.set_attribute("func", "main") # set span attributes ollama_chat()if __name__ == "__main__": main()其中,trace.get_tracer(__name__)获取了 OpenTelemetry Tracer 对象,用于后续的自定义埋点增强。在main()函数中,通过tracer.start_as_current_span() 添加了一个新的 Span,并加入到链路上下文当中。接入验证完成接入工作后,启动 LLM 应用,应用就会向 APM 上报链路数据。在 应用性能监控 > 应用列表 页面将展示接入的应用,单击应用名称/ID 进入应用详情页,再选择实例监控,即可看到接入的应用实例。由于可观测数据的处理存在一定延时,如果接入后在控制台没有查询到应用或实例,请等待30秒左右。同时,在 应用性能监控 > 链路追踪 中,也能够查询到相关的 Span 记录,通过单击第一列 traceID 对应的链接,可以进入链路详情视图分析链路的每个环节。单击其中的 Span,能够获取更多详细信息,例如下图:上一篇: 接入 Nginx下一篇: 接入其他语言编写的应用Copyright © 2013-2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有深圳市腾讯计算机系统有限公司ICP备案/许可证号:粤B2-20090059粤公网安备44030502008569号腾讯云计算(北京)有限责任公司京ICP证150476号 | 京ICP备11018762号中国站中文International文档“捉虫”活动检视指定产品文档,发现和反馈有效问题,奖!API专项"捉虫"反馈API文档问题,代金券、周边好礼奖不停!文档建议,你提了吗快来使用腾讯云产品文档,提出有效建议,奖!在线咨询目录返回顶部