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

Datadog opentracing doesn't support agent URL directive #10914

Open
Yahavna14 opened this issue Jan 25, 2024 · 6 comments
Open

Datadog opentracing doesn't support agent URL directive #10914

Yahavna14 opened this issue Jan 25, 2024 · 6 comments
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@Yahavna14
Copy link

Seems like the Nginx ingress opentracing third party add-on (https://kubernetes.github.io/ingress-nginx/user-guide/third-party-addons/opentracing/) doesn't support the dd-opentracing directive of agent URL (https://github.com/DataDog/dd-opentracing-cpp/blob/master/doc/configuration.md#agent-url) and support only agent HOST directive.
I ran into it while I changed my Datadog agent to work over UDS (https://docs.datadoghq.com/developers/dogstatsd/unix_socket/?tab=host), and now my Nginx ingress controller in my k8s cluster doesn't success to send traces to the Datadog agent.

@Yahavna14 Yahavna14 added the kind/feature Categorizes issue or PR as related to a new feature. label Jan 25, 2024
@k8s-ci-robot k8s-ci-robot added needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. needs-priority labels Jan 25, 2024
@longwuyuan
Copy link
Contributor

  • There is a issue where a DataDog developer and a ingress-nginx developer have discussed current state of the related code. Please search for more details. If I find I will ink here
  • Opentracing.io website declares that opentracing project is archived and ingress-nginx project is removing support for opentracing (if not already removed)

@longwuyuan
Copy link
Contributor

found it #10082

@longwuyuan
Copy link
Contributor

/triage accepted
/priority important-longterm

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. and removed needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. needs-priority labels Jan 27, 2024
@longwuyuan
Copy link
Contributor

@dgoffredo any comments on this one welcome

@dgoffredo
Copy link
Contributor

dgoffredo commented Jan 29, 2024

@Yahavna14 There are a few ways around this. I recommend the last option (OpenTelemetry).

1. Datadog OpenTracing over TCP

Use the Datadog Agent's TCP interface on port 8126 instead of Unix domain sockets. This requires that the Datadog Agent be configured to listen on port 8126. See the relevant instructions for the Datadog Operator or for Helm. In either case, you might have to change a "port" related boolean that defaults to false to true instead. Then arrange the ingress controller side configuration to be as described in relevant Datadog documentation.

This is the setup that is currently recommended for existing installations.

2. Datadog OpenTracing over UDS

Alter the ingress controller's Deployment so that its env contains a DD_TRACE_AGENT_URL of the form "unix://<full path to domain socket file>", and mount the Datadog Agent's socket from the host node into the ingress controller pods.

I've never tried this, but it's probably possible.

3. Use OpenTelemetry Instead

This is the new way to do things. The Datadog Agent can be configured to listen on an OTLP interface.

Then use the Datadog Agent's fully qualified kubernetes service name as the otlp-collector-host when configuring OpenTelemetry in the ingress controller.

Copy link

This is stale, but we won't close it automatically, just bare in mind the maintainers may be busy with other tasks and will reach your issue ASAP. If you have any question or request to prioritize this, please reach #ingress-nginx-dev on Kubernetes Slack.

@github-actions github-actions bot added the lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. label Feb 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
Development

No branches or pull requests

4 participants