Skip to content

Conversation

kaspernissen
Copy link

This PR adds a blog post on my recent exploration of OpenTelemetry support in k8s ingress controllers.

This post was originally published on the Dash0 blog: https://www.dash0.com/blog/observability-at-the-edge-opentelemetry-support-in-kubernetes-ingress-controllers

But I think it's an interesting write-up for the wider community.

…bernetes Ingress Controllers

Signed-off-by: Kasper Borg Nissen <[email protected]>
@kaspernissen kaspernissen marked this pull request as ready for review October 1, 2025 19:35
@kaspernissen kaspernissen requested a review from a team as a code owner October 1, 2025 19:35
Copy link
Member

@svrnm svrnm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

overall LGTM, note that we can not allow links out to your companies' blog. I know that the blog posts provide a deep dive and are enriching the content, but we need to avoid situations that create questions on later blog posts why this is allowed here and not on other blogs.

Comment on lines +13 to +16
Kubernetes has transformed the way applications are deployed and scaled, but one
component remains especially critical: the ingress controller. Ingress sits at
the edge of the cluster, where it terminates TLS, applies routing rules,
enforces policies, and directs requests to the correct backend.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would make sense to point out to some k8s docs around ingress controller in general to allow people to read more on the topic if they have questions.

Comment on lines +82 to +83
Ingress-NGINX is the veteran among ingress controllers. Maintained under
Kubernetes SIG Networking, it quickly became the default in many distributions
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

link to the SIG if they have a place to learn more about them.

Comment on lines +196 to +199
_Read the full deep dive on
[observing Traefik with OpenTelemetry](https://www.dash0.com/blog/observing-traefik-with-opentelemetry-and-dash0).
While the post uses Dash0 in the examples, the same setup works with any
OTLP-based backend._
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
_Read the full deep dive on
[observing Traefik with OpenTelemetry](https://www.dash0.com/blog/observing-traefik-with-opentelemetry-and-dash0).
While the post uses Dash0 in the examples, the same setup works with any
OTLP-based backend._

a torrent of Prometheus series, Ingress-NGINX exposes a smaller set of
NGINX-specific metrics, and Traefik embraces OTLP natively. Logs remain the
hardest signal. They require customization in Ingress-NGINX, parsing in Envoy,
and in Traefik they are still maturing as an OTLP feature.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does "OTLP feature" mean here?

@svrnm
Copy link
Member

svrnm commented Oct 2, 2025

@kaspernissen one more remark, you raised this PR from the dash0hq github org, this means we (maintainers) can not edit your PR for final refinement, which means you have to do if needed.

@kaspernissen
Copy link
Author

kaspernissen commented Oct 2, 2025

Thank you for all your guidance, @svrnm!

Do you think it would make sense to adapt the other posts and make them less vendor specific so that we have don't loose the background for this post?

@otelbot-docs otelbot-docs bot requested a review from a team October 2, 2025 14:08
@svrnm
Copy link
Member

svrnm commented Oct 10, 2025

Thank you for all your guidance, @svrnm!

Do you think it would make sense to adapt the other posts and make them less vendor specific so that we have don't loose the background for this post?

Hey @kaspernissen sorry for the delay, I was traveling all week and hadn't checked in with all of my github!

Yes, that would even be better!

We had some "series" of blog posts already, see @jpkrohling's last blog posts about naming things. He did something similar.

@kaspernissen
Copy link
Author

No worries. I've just been had 2 conferences back to back as well.

I will add it to my todo to open PRs for the other blog posts. Would it be OK to link to this repo (https://github.com/dash0hq/dash0-examples) for the examples?

@svrnm
Copy link
Member

svrnm commented Oct 10, 2025

No worries. I've just been had 2 conferences back to back as well.

I will add it to my todo to open PRs for the other blog posts. Would it be OK to link to this repo (dash0hq/dash0-examples) for the examples?

Yes, I think so, as it helps people to get started with what you are sharing more easily. I've done similarly in my last blog post. If you add the "and here is how it works with jaeger/prometheus/..." and people can comment out the dash0 specific stuff, that would be great, e.g. having a collector config like this one https://github.com/dash0hq/dash0-examples/blob/main/traefik/collector/otel-collector-deployment.yaml with those extra details.

@kaspernissen
Copy link
Author

Perfect! Yes, I can add a OSS observability stack as well.
Thank you for your guidance - much appreciated 🙌

@svrnm
Copy link
Member

svrnm commented Oct 13, 2025

Perfect! Yes, I can add a OSS observability stack as well. Thank you for your guidance - much appreciated 🙌

What would the order of the blog post be then, first the individual ones and then the summary?

@kaspernissen
Copy link
Author

Yes, it would be the individual ones first. That would make most sense. 👍
If, we can wait finalizing this PR and put it on hold for now, and then I will starting pushing the other ones within the next couple of weeks.

@svrnm svrnm added the blocked label Oct 13, 2025
@svrnm
Copy link
Member

svrnm commented Oct 13, 2025

Yes, it would be the individual ones first. That would make most sense. 👍 If, we can wait finalizing this PR and put it on hold for now, and then I will starting pushing the other ones within the next couple of weeks.

Put it on blocked for now. I think overall this PR here is in a good shape, and when the other posts are done we can revisit the changes. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants