Route OpenLineage over the Agent's Unix Domain Socket URL - #12408
gh-worker-dd-mergequeue-cf854d[bot] merged 1 commit into
Conversation
The Spark integration builds the OpenLineage HTTP transport URL from the Agent host and port (http://host:port). When the Agent is reachable only over a Unix Domain Socket (e.g. on Kubernetes nodes), that TCP URL is unreachable and lineage delivery fails with connection-refused. Add a socket-only code path to getAgentHttpUrl(): if the resolved agent URL uses the unix:// scheme, pass it through so OpenLineage sends events over the socket (requires OpenLineage 1.54+, which added unix:// support to its HTTP transport). Every other configuration keeps the existing http://host:port behavior unchanged, so http(s) setups are unaffected. Signed-off-by: pawel.leszczynski <[email protected]>
|
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 341f0ad40d
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
There was a problem hiding this comment.
More details
The new unix: branch returns the configured socket URL without a change. Other Agent URLs still use the existing host and port path.
🤖 Datadog Autotest · Commit 341f0ad · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
d2c0e37
into
master
What Does This Do
Adds a socket-only code path to
AbstractDatadogSparkListener.getAgentHttpUrl(): when the resolved Agent URL uses theunix://scheme, it is passed through unchanged so the OpenLineage HTTP transport sends lineage over the Unix Domain Socket. Every other configuration keeps the existinghttp://host:portbehavior, sohttp(s)setups are unaffected.Motivation
The Spark DJM integration derives the OpenLineage transport URL from the Agent host/port (
http://host:port). In deployments where the Agent is reachable only over a Unix Domain Socket — e.g. Spark on Kubernetes / EMR-on-EKS, where the node Agent exposesunix:///var/run/datadog/apm.socket— that TCP URL is unreachable, so OpenLineage delivery fails with connection-refused while APM traces (which already use the socket) succeed. This routes OpenLineage over the same socket.Additional Notes
unix://support to its Java HTTP transport — see Support Unix Domain Socket URLs (unix://) in the Java HTTP transport OpenLineage/OpenLineage#4920 (Support Unix Domain Socket URLs (unix://) in the Java HTTP transport OpenLineage/OpenLineage#4920).unix:scheme so no existing (TCP) code path changes behavior.Jira ticket: SDO-169