通过 Jaeger 协议上报

最近更新时间:2024-09-20 10:24:52

我的收藏
本文将为您介绍如何使用 Jaeger 协议上报 Python 应用数据。

操作步骤

步骤1:获取接入点和 Token

1. 登录 腾讯云可观测平台 控制台。
2. 在左侧菜单栏中选择应用性能监控,单击应用列表 > 接入应用
3. 在右侧弹出的数据接入抽屉框中,单击 Python 语言。
4. 接入 Python 应用页面,选择您所要接入的地域以及业务系统
5. 选择接入协议类型Jaeger
6. 上报方式选择您所想要的上报方式,获取您的接入点Token
说明:
内网上报:使用此上报方式,您的服务需运行在腾讯云 VPC。通过 VPC 直接联通,在避免外网通信的安全风险同时,可以节省上报流量开销。
外网上报:当您的服务部署在本地或非腾讯云 VPC 内,可以通过此方式上报数据。请注意外网通信存在安全风险,同时也会造成一定上报流量费用。

步骤2:安装 Jaeger Agent

1. 下载官方 Jaeger Agent
2. 启动 Agent,在控制台执行以下命令:
nohup ./jaeger-agent --reporter.grpc.host-port={{接入点}} --jaeger.tags=token={{token}}
说明:
对于 Jaeger Agent v1.15.0及以下版本,请将启动命令中 --agent.tags 替换为 --jaeger.tags

步骤3:通过 Jaeger 上报数据

1. 安装 jaeger_client 包,执行以下命令:
pip install jaeger_client
2. 创建如下 Python 文件和 Tracer 对象,跟踪所有的 Request。
from jaeger_client import Config
import time
from os import getenv

# 配置jaeger代理的地址,默认本机localhost
JAEGER_HOST = getenv('JAEGER_HOST', 'localhost')
SERVICE_NAME = getenv('JAEGER_HOST', 'my_service_test')


def build_your_span(tracer):
with tracer.start_span('yourTestSpan') as span:
span.log_kv({'event': 'test your message', 'life': 42})
span.set_tag("span.kind", "server")
return span


def build_your_tracer():
my_config = Config(
config={
'sampler': {
'type': 'const',
'param': 1,
},
'local_agent': {
'reporting_host': JAEGER_HOST,
'reporting_port': 6831,
},
'logging': True,
},
service_name=SERVICE_NAME,
validate=True
)
tracer = my_config.initialize_tracer()

return tracer


if __name__ == "__main__":
tracer = build_your_tracer()
span = build_your_span(tracer)
time.sleep(2)
tracer.close()
说明:
目前 Jaeger 支持 Flask、Django 和 Grpc 等框架进行上报,更多请参见: