目 录CONTENT

文章目录

在后端服务里使用uptrace对服务进行trace追踪

Administrator
2025-09-26 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

 

字数 415,阅读大约需 3 分钟

在后端服务里使用uptrace对服务进行trace追踪

Uptrace 在可观测性(observability)领域中是一个开源的应用性能监控(APM)和可观测性平台。以下是关于 Uptrace 的关键信息:
核心定位
Uptrace 是一个开源的 APM 平台,专门为现代分布式系统而设计 GitHubUptrace。它提供统一的可观测性解决方案,帮助团队监控和故障排除分布式应用程序。
主要特点
三支柱数据支持:
Uptrace 为追踪(traces)、指标(metrics)和日志(logs)提供单一用户界面 GitHubUptrace,这正是可观测性的三大支柱。
技术架构:
Uptrace 使用 OpenTelemetry 框架收集数据,使用 ClickHouse 数据库存储数据,同时需要 PostgreSQL 数据库来存储元数据 GitHub - uptrace/uptrace: Open source APM: OpenTelemetry traces, metrics, and logs。

部署

当前开发环境使用的是uptrace提供的线上开发环境,可直接调用uptrace的线上进行trace上报和通过dashboard追踪

业务插桩

以Python为例,在Uptrace提供dev环境的免费额度,可存储一定量trace信息

Trace参数

将参数写入到settings配置里或者环境变量,均可

# TraceId
    OTEL_EXPORTER_OTLP_ENDPOINT: Optional[str] = "{}"
    OTEL_EXPORTER_OTLP_HEADERS: Optional[str] = "uptrace-dsn={}"
    OTEL_EXPORTER_OTLP_COMPRESSION: Optional[str] = "gzip"
    OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION: Optional[str] = "BASE2_EXPONENTIAL_BUCKET_HISTOGRAM"
    OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE: Optional[str] = "DELTA"

Trace插桩

if settings.OTEL_EXPORTER_OTLP_ENDPOINT:
    tracer_provider = trace.get_tracer_provider()
    headers = {}
    if settings.OTEL_EXPORTER_OTLP_HEADERS:
        for header_pair in settings.OTEL_EXPORTER_OTLP_HEADERS.split(","):
            key, value = header_pair.split("=", 1)  # 只拆分第一个等号
            headers[key.strip()] = value.strip()

    span_exporter = OTLPSpanExporter(
        endpoint=settings.OTEL_EXPORTER_OTLP_ENDPOINT,
        headers=headers,
        timeout=int(os.getenv("OTEL_EXPORTER_OTLP_TIMEOUT", 10000)),
        compression=(
            Compression.Gzip
            if settings.OTEL_EXPORTER_OTLP_COMPRESSION == "gzip"
            else Compression.NoCompression
        ),
    )
    span_processor = BatchSpanProcessor(span_exporter)
    tracer_provider.add_span_processor(span_processor)
FastAPIInstrumentor.instrument_app(app, trace.get_tracer_provider()) 

验证

发起请求,在https://app.uptrace.dev/traces/对应的项目里查看相关trace;

 

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区