具有opentracing的Kubernetes Nginx入口控制器不显示url资源路径

时间:2019-12-29 13:10:18

标签: nginx-ingress opentracing

我们在aws eks(kubernetes版本1.13)上使用kubenrnetes nginx入口控制器版本0.25.1。 我们根据文档启用了opentracing,并使用Datadog查看跟踪。我们有一条通用的入口规则来捕获每条路径:

rule {
  host = "staging.example.com"
  http {
    path {
      backend {
        service_name = "cpe-test1"
        service_port = 80
      }

      path = "/"
    }
  }
}

在Datadog ui中,我们看到了nginx跟踪,但是“资源”列始终显示“ /”,而不是完整路径,即“ / test”或“ / ping”。
如果我们为每个资源路径创建一个单独的入口规则,那么我们会按预期看到完整路径(即“ / test”或“ // ping”),但是为每个路径创建入口规则非常麻烦且乏味。有什么方法可以在datadog UI中看到完整的资源路径,而无需为每个资源路径创建单独的入口规则?

1 个答案:

答案 0 :(得分:0)

可以通过将以下注释添加到nginx ingress来实现:

annotations:
    ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/configuration-snippet: |
      opentracing_trace_locations off;
      opentracing_tag resource.name $uri;

https://github.com/DataDog/dd-opentracing-cpp/issues/118上查看完整答案