-
Notifications
You must be signed in to change notification settings - Fork 451
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
Route / Ingress for OTLP HTTP does not work #1967
Comments
@frzifus do you remember why the collector is setting the path for the route? |
I was not able to report data to the OTLP HTTP endpoint via the route even from another OTEL collector: The endpoint was set to docker run --rm -it --net=host -v ${PWD}:/tmp ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:0.81.0 --config /tmp/config.yaml
receivers:
otlp:
protocols:
grpc:
http:
processors:
exporters:
otlphttp:
endpoint: http://otlp-http.apps-crc.testing/otlp-http
tls:
insecure: true
extensions:
health_check:
pprof:
zpages:
service:
pipelines:
traces:
receivers: [otlp]
processors: []
exporters: [otlphttp] After setting the path in the route to |
Same here, I wonder why the path is set. Let me verify this. It should be removed or there should be a rule to redirect. |
@frzifus I will unassign you I have started working on this |
I think this issue with path could be solved by URL rewrite annotation on the Route/Ingress object:
However, there are multiple ingress controllers and it does not seem reasonable to support all of them in the operator. The annotations can be as well specified in the collector CR, but it puts more configuration stress on users, they will have to understand which annotation to choose and how to rewrite the targets. Following remote collector config otlphttp:
endpoint: http://apps-crc.testing:80/otlp-http
tls:
insecure: true Produces logs 2023-08-02T15:31:53.241Z error exporterhelper/queued_retry.go:391 Exporting failed. The error is not retryable. Dropping data. {"kind": "exporter", "data_type": "traces", "name": "otlphttp", "error": "Permanent error: error exporting items, request to http://apps-crc.testing:80/otlp-http/v1/traces responded with HTTP Status Code 404", "dropped_items": 2}
go.opentelemetry.io/collector/exporter/exporterhelper.(*retrySender).send
go.opentelemetry.io/collector/[email protected]/exporterhelper/queued_retry.go:391
go.opentelemetry.io/collector/exporter/exporterhelper.(*tracesExporterWithObservability).send
go.opentelemetry.io/collector/[email protected]/exporterhelper/traces.go:126
go.opentelemetry.io/collector/exporter/exporterhelper.(*queuedRetrySender).start.func1
go.opentelemetry.io/collector/[email protected]/exporterhelper/queued_retry.go:195
go.opentelemetry.io/collector/exporter/exporterhelper/internal.(*boundedMemoryQueue).StartConsumers.func1
go.opentelemetry.io/collector/[email protected]/exporterhelper/internal/bounded_memory_queue.go:47 |
I have tried the same setup with Ingress and run into the same issues. |
The following collector CR
creates this route:
The
path: /otlp-http
is causing issues for settingOTEL_EXPORTER_OTLP_ENDPOINT
(see https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md)For instance:
Removing the path from route and the
--otlp-endpoint
fixed the issue.The text was updated successfully, but these errors were encountered: