Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jaeger Opentelemetry Ingester cannot correctly handle kafka.consumer.encoding flag #2579

Closed
XSAM opened this issue Oct 20, 2020 · 2 comments · Fixed by #2580
Closed

Jaeger Opentelemetry Ingester cannot correctly handle kafka.consumer.encoding flag #2579

XSAM opened this issue Oct 20, 2020 · 2 comments · Fixed by #2580
Labels

Comments

@XSAM
Copy link
Contributor

XSAM commented Oct 20, 2020

Describe the bug
Jaeger Opentelemetry Ingester cannot correctly handle kafka.consumer.encoding when its value is zipkin-thrift. Also, the flag not accept the otlp-proto as value even Ingester's Kafka implementation is from OTel.

To Reproduce

  1. Check helper
$ opentelemetry-ingester -h

...
--kafka.consumer.encoding string                     The encoding of spans ("json", "protobuf", "zipkin-thrift") consumed from kafka (default "protobuf")
...
  1. Use zipkin-thrift as encoding value
$ opentelemetry-ingester --kafka.consumer.encoding zipkin-thrift
2020-10-20T14:04:31.624+0800	INFO	service/service.go:396	Starting Jaeger OpenTelemetry Ingester...	{"Version": "v1.20.0", "GitHash": "bd59f13478cdd35b41e85f67a6f04b6cb4d92df8", "NumCPU": 4}
2020-10-20T14:04:31.625+0800	INFO	service/service.go:240	Setting up own telemetry...
2020-10-20T14:04:31.629+0800	INFO	service/telemetry.go:110	Serving Prometheus metrics	{"address": "localhost:8888", "legacy_metrics": false, "new_metrics": true, "level": 0, "service.instance.id": "28b6a4ce-d467-4a53-8941-06840458019e"}
panic: zipkin-thrift is not a supported kafka encoding in the OTEL collector.

goroutine 1 [running]:
github.com/jaegertracing/jaeger/cmd/opentelemetry/app/receiver/kafkareceiver.MustOtelEncodingForJaegerEncoding(...)
	github.com/jaegertracing/jaeger/cmd/opentelemetry/app/receiver/kafkareceiver/kafka_receiver.go:158
github.com/jaegertracing/jaeger/cmd/opentelemetry/app/receiver/kafkareceiver.(*Factory).CreateDefaultConfig(0xc000488140, 0x46774a0, 0xc0008ee4b0)
	github.com/jaegertracing/jaeger/cmd/opentelemetry/app/receiver/kafkareceiver/kafka_receiver.go:62 +0x7e8
go.opentelemetry.io/collector/config/configcheck.ValidateConfigFromFactories(0xc0003de840, 0xc0003de900, 0xc0003de8d0, 0xc0003de7e0, 0x0, 0xc000407560)
	go.opentelemetry.io/[email protected]/config/configcheck/configcheck.go:41 +0xe2
go.opentelemetry.io/collector/service.(*Application).setupConfigurationComponents(0xc000846000, 0x468dba0, 0xc0000560c8, 0xc000409610, 0x0, 0x3)
	go.opentelemetry.io/[email protected]/service/service.go:273 +0x5a
go.opentelemetry.io/collector/service.(*Application).execute(0xc000846000, 0x468dba0, 0xc0000560c8, 0xc000409610, 0x0, 0x0)
	go.opentelemetry.io/[email protected]/service/service.go:414 +0x4e5
go.opentelemetry.io/collector/service.New.func1(0xc00004e580, 0xc000489780, 0x0, 0x2, 0x0, 0x0)
	go.opentelemetry.io/[email protected]/service/service.go:154 +0xa5
github.com/spf13/cobra.(*Command).execute(0xc00004e580, 0xc00004c1c0, 0x2, 0x2, 0xc00004e580, 0xc00004c1c0)
	github.com/spf13/[email protected]/command.go:842 +0x47c
github.com/spf13/cobra.(*Command).ExecuteC(0xc00004e580, 0x0, 0x0, 0x3)
	github.com/spf13/[email protected]/command.go:950 +0x375
github.com/spf13/cobra.(*Command).Execute(...)
	github.com/spf13/[email protected]/command.go:887
go.opentelemetry.io/collector/service.(*Application).Run(...)
	go.opentelemetry.io/[email protected]/service/service.go:467
main.main()
	command-line-arguments/main.go:97 +0x8af

Expected behavior
Accept zipkin-thrift or otlp-protoas its value since these values (nearly) work in the config file.

Version (please complete the following information):

  • OS: macOS 10.15.6
  • Jaeger version: 3d99871 (master)
@joe-elliott
Copy link
Member

joe-elliott commented Oct 20, 2020

Can the otlp kafka exporter handle zipkin-thrift? The docs don't indicate that it can and I would expect to see it added here if it could.

The decision to not accept otlp-proto was made by me simply b/c the existing Jaeger flag does not support that value. Having said all this, these designs are still in flux and we are currently working on what the final configuration for the OTEL Jaeger ingester will look like.

Thank you for the issue/input.

UPDATE: Ok, I see. You're talking about the receiver which does support zipkin-thrift. I also decided not to handle that b/c the exporter side could not. But like I said before this is all currently being discussed. Thank you for expressing your needs so we can work on meeting them.

@XSAM
Copy link
Contributor Author

XSAM commented Oct 21, 2020

But like I said before this is all currently being discussed. Thank you for expressing your needs so we can work on meeting them.

More information about the scenario:

I'm using OTel and Jaeger at the same time.

Here is the flow: OTel Agent -> OTel Collector -> Kafka -> Jaeger OTel Ingester -> Cassandra.

I am using the Jaeger OTel Ingester because no other ingester/collector can resolve otlp_proto and put data into Cassandra, which can read by Jeager Query. I also believe the Jaeger OTel Ingester should accept otlp-proto since it is an ingester that serves for OTel (I presumed from its name).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants