You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Kubernetes Pod名称添加到Quarkus OpenTelemetry追踪元数据?

在Quarkus 2.13.x的OpenTelemetry遥测中添加Kubernetes Pod名称

当然可以将Pod名称添加到遥测追踪/跨度的元数据中,以下是几种实用的实现方式:

方法1:通过配置文件全局添加(推荐)

Kubernetes会自动为每个Pod设置HOSTNAME环境变量,其值就是Pod的名称。你可以直接通过Quarkus的配置文件将Pod名称作为OpenTelemetry的资源属性配置,这样所有生成的跨度都会关联该实例的Pod名称:

在application.properties中添加:

quarkus.opentelemetry.resource.attributes=k8s.pod.name=${HOSTNAME}

资源属性属于服务实例级别的标识,会在追踪系统中作为整个Pod实例的元数据展示,无需修改代码即可全局生效。

方法2:手动在业务代码中添加到指定跨度

如果只需要在特定业务逻辑的跨度中添加Pod名称,可以通过OpenTelemetry API手动设置属性:

import io.opentelemetry.api.trace.Span;
import jakarta.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class YourService {

    public void handleRequest() {
        // 获取Pod名称
        String podName = System.getenv("HOSTNAME");
        // 获取当前活跃的跨度
        Span currentSpan = Span.current();
        // 添加Pod名称属性
        currentSpan.setAttribute("k8s.pod.name", podName);
        
        // 业务逻辑代码...
    }
}

方法3:自定义SpanProcessor全局自动添加

如果你希望所有生成的跨度都自动带上Pod名称属性,可以实现自定义的SpanProcessor并注册:

  1. 实现SpanProcessor类:
import io.opentelemetry.sdk.trace.ReadWriteSpan;
import io.opentelemetry.sdk.trace.SpanProcessor;

public class PodNameSpanProcessor implements SpanProcessor {

    private final String podName;

    public PodNameSpanProcessor() {
        // 初始化时获取Pod名称
        this.podName = System.getenv("HOSTNAME");
    }

    @Override
    public void onStart(ReadWriteSpan span) {
        // 在跨度启动时添加Pod名称属性
        span.setAttribute("k8s.pod.name", podName);
    }

    @Override
    public void onEnd(ReadWriteSpan span) {}

    @Override
    public boolean isStartRequired() {
        return true;
    }

    @Override
    public boolean isEndRequired() {
        return false;
    }
}
  1. 在application.properties中注册该处理器:
quarkus.opentelemetry.tracer-processor=com.your.package.PodNameSpanProcessor

(替换com.your.package为实际的类包路径)


内容的提问来源于stack exchange,提问作者sg2000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 14:02:43