OpenTelemetry, GKE and CloudTrace

Unable to see traces into Cloud Trace.

GKE runs my Java apps. They have opentelemetry agent activated using JAVA_OPTS :

            -javaagent:/opt/telemetry/opentelemetry-javaagent.jar

            -Dotel.traces.sampler=traceidratio -Dotel.traces.sampler.arg=0.5

            -Dotel.exporter.otlp.traces.endpoint=http://opentelemetry-collector-svc.telemetry.svc.cluster.local:4317

            -Dotel.exporter.otlp.endpoint=http://opentelemetry-collector-svc.telemetry.svc.cluster.local:4317

As to my understanding these are part of other circuits, but I gather logs of my apps into Cloud Logs and metrics of my apps into Cloud Metrics (via Google Managed Prometheus). The latter provides a first confirmation that the opentelemetry agent is sending metrics.

I am unable to see traces into GCP TracesExplorer. Despite installing a ad-hoc configured instance of opentelemetry-controller (in real opentelemetry-controller-contrib to get the googletrace exporter) and confirmation that he receives info from my apps. Configuration :

config:
  exporters:
    googlecloud:
      project: default
      timeout: 30s
  trace:
    use_insecure: true
  processors:
    resourcedetection:
      detectors: [gcp]
      timeout: 30s
  receivers:
    otlp:
      protocols:
        grpc:
          endpoint: ${env:MY_POD_IP}:4317
        http:
          endpoint: ${env:MY_POD_IP}:4318
  service:
    pipelines:
      traces:
        exporters: [googlecloud]
        processors: [resourcedetection]
        receivers: [otlp]

Please note I instanciated the opentelemetry-controller via a custom helm deployment.

Unable to see traces into GCP TracesExplorer despite installing opentelemetry-operator to comply to unclear calls to do it : operator brings CRD and operator instanciates a collector but :

  • how do I configure this collector ?
  • how do I have operator instanciate opentelemetry-collector-contrib ?

Any help would be appreciated.