opentelemetry-collector-contrib: Unable to export to Jaeger from OTEL collector

Describe your environment I am using the following docker compose

Jaeger Docker:

docker run -d --name jaeger-all-in-one -p 16686:16686 -p 14250:14250 -p 14268:14268 jaegertracing/all-in-one

OTEL Collector Docker:

docker run --rm -it -p 4317:4317 -p 4318:4318 -v $(pwd)/examples/otlp:/cfg otel/opentelemetry-collector:0.59.0 --config=/cfg/opentelemetry-collector-config/config.dev.yaml

OTEL Collector Config

exporters:
jaeger:
endpoint: jaeger:14250
tls:
insecure: true
logging:
loglevel: DEBUG
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
service:
pipelines:
traces:
receivers:
- otlp
exporters: [logging, jaeger]
logs:
receivers:
- otlp
exporters:
- logging
metrics:
receivers:
- otlp
exporters:
- logging

What is the expected behavior? I want to export traces from collector to jaeger but getting an error

What is the actual behavior?

kind": "exporter", "data_type": "traces", "name": "jaeger", "state": "CONNECTING"}
2022-10-19T05:55:59.597Z warn zapgrpc/zapgrpc.go:191 [core] [Channel https://github.com/open-telemetry/opentelemetry-cpp/pull/1 SubChannel https://github.com/open-telemetry/opentelemetry-cpp/issues/2] grpc: addrConn.createTransport failed to connect to {
"Addr": "jaeger:14250",
"ServerName": "jaeger:14250",
"Attributes": null,
"BalancerAttributes": null,
"Type": 0,
"Metadata": null
}. Err: connection error: desc = "transport: Error while dialing dial tcp: lookup jaeger on 192.168.65.5:53: read udp 172.17.0.2:43000->192.168.65.5:53: i/o timeout" {"grpc_log": true}
2022-10-19T05:56:00.597Z info jaegerexporter@v0.59.0/exporter.go:186 State of the connection with the Jaeger Collector backend {"kind": "exporter", "data_type": "traces", "name": "jaeger", "state": "TRANSIENT_FAILURE"}

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 22 (7 by maintainers)

Most upvoted comments

@shubhamjadhav1896: Thank you!

Welcome 😊

@shubhamjadhav1896: Are you using opentelemetry-collector-contrib? I’m facing the same problem on v0.87.0. I had a look, and yup, support for the Jaeger Exporter was dropped in v0.86.0 [1].

[1] https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v0.86.0

Yes. I am using the same. And the issue has been sorted for me. In place of jaeger, you should try using OTLP protocol as this has been a standard protocol which Jaeger community has mentioned and they have removed the client library of Jaeger protocol from May 2022.

I am trying to use Jaeger as exporter in kubernetes but getting error message as below:

Error: failed to get config: cannot unmarshal the configuration: 1 error(s) decoding:

* error decoding 'exporters': unknown type: "jaeger" for id: "jaeger" (valid values: [opencensus prometheusremotewrite logging otlp otlphttp file kafka debug prometheus zipkin])
2023/10/21 04:55:21 collector server run finished with error: failed to get config: cannot unmarshal the configuration: 1 error(s) decoding:

* error decoding 'exporters': unknown type: "jaeger" for id: "jaeger" (valid values: [opencensus prometheusremotewrite logging otlp otlphttp file kafka debug prometheus zipkin])

Is there something I am missing here? Or is it like Jaeger has been deprecated in the latest version of OpenTRelemetry ?

exporters:
     logging:
     jaeger:
       endpoint: "jaeger-collector.observability.svc.cluster.local:14250"
       tls:
         insecure: true

The all in one Docker image needs to be recent enough. I mistakenly used 1.6, mislead by tags on Docker Hub. You need to use something like 1.42, or latest. Alternative to using host as a network is to create a virtual network and link the containers to it.