Skip to content

DNS name tracking blog#32

Merged
memodi merged 7 commits intonetobserv:mainfrom
memodi:dnsname-tracking
Mar 24, 2026
Merged

DNS name tracking blog#32
memodi merged 7 commits intonetobserv:mainfrom
memodi:dnsname-tracking

Conversation

@memodi
Copy link
Member

@memodi memodi commented Mar 13, 2026

DNS name tracking blog

@github-actions
Copy link

github-actions bot commented Mar 13, 2026

🙈 The PR is closed and the preview is expired.

@memodi memodi force-pushed the dnsname-tracking branch from 2145af3 to 5cf49b7 Compare March 13, 2026 19:11
@memodi memodi changed the title WIP: DNS name Tracking blog DNS name Tracking blog Mar 13, 2026
@memodi
Copy link
Member Author

memodi commented Mar 13, 2026

/cc @jotak @jpinsonneau @stleerh

@memodi memodi requested review from jotak, jpinsonneau and stleerh March 13, 2026 19:13
@memodi memodi changed the title DNS name Tracking blog DNS name tracking blog Mar 13, 2026
@memodi memodi force-pushed the dnsname-tracking branch from 7e1ad4b to d0d4cbf Compare March 13, 2026 19:17
@memodi memodi force-pushed the dnsname-tracking branch from d0d4cbf to 605685a Compare March 13, 2026 19:32
jpinsonneau
jpinsonneau previously approved these changes Mar 16, 2026
Copy link
Member

@jpinsonneau jpinsonneau left a comment

Choose a reason for hiding this comment

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

Looks good, thanks @memodi !

memodi and others added 2 commits March 17, 2026 12:58
Co-authored-by: Amogh Rameshappa Devapura <aramesha@redhat.com>
options ndots:5
```

Short DNS names for cluster services causes high load on the cluster DNS service
Copy link
Member

Choose a reason for hiding this comment

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

typo

Suggested change
Short DNS names for cluster services causes high load on the cluster DNS service
Short DNS names for cluster services cause high load on the cluster DNS service

Comment on lines +70 to +76
resulting in higher latencies, negative caching and increased dns traffic. This
negative impact can be prevented by using Fully Qualified Domain Name (FQDN) in
the requests. After updating the hostname to `nginx.server.svc.cluster.local.`
in the curl requests, we are not seeing any NXDOMAINS and reduced unnecessary
dns traffic in our cluster. You can imagine the performance impact if such
configuration issue propagated to hundreds of services in your cluster.

Copy link
Member

@jotak jotak Mar 18, 2026

Choose a reason for hiding this comment

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

"DNS" is sometimes written in capitals sometimes not, I would suggest to stick to just one form (across the full post)

Comment on lines +90 to +92
issues, it comes with some caveats to favor performance. This feature isn't
supported with Prometheus as datastore since storing DNS names as metric values
could cause high cardinality. That means, if you're looking to use this feature
Copy link
Member

Choose a reason for hiding this comment

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

On cardinality, maybe we can tell that we're currently evaluating the impact - see my comment here - I think eventually we can add that to the metrics

Copy link
Member Author

Choose a reason for hiding this comment

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

added a statement

@jotak
Copy link
Member

jotak commented Mar 19, 2026

/lgtm
there's just a character issue with long/short dash cf comment above

jotak
jotak previously approved these changes Mar 20, 2026
@jotak
Copy link
Member

jotak commented Mar 20, 2026

@memodi you can merge when you want

Copy link
Contributor

@stleerh stleerh left a comment

Choose a reason for hiding this comment

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

Maybe it's obvious, but you could mention that this shows only internal DNS names in your cluster. That is, it is not tracking outbound DNS requests, so you won't see how many requests are for youtube.com. 😏

you must use Loki as your datasource. We're actively working to measure the
performance impact and expose DNS names as Prometheus metrics, though.

Captured DNS names will be truncated at 32 bytes to balance the
Copy link
Contributor

Choose a reason for hiding this comment

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

30 bytes

(Note: Although the code allocates 32 bytes, one is for the nil character, and another used to store the length of the first DNS label.)

@memodi
Copy link
Member Author

memodi commented Mar 23, 2026

Maybe it's obvious, but you could mention that this shows only internal DNS names in your cluster. That is, it is not tracking outbound DNS requests, so you won't see how many requests are for youtube.com. 😏

That's not true, it could track outbound DNS requests as well, it should just get initiated inside the cluster.

@stleerh
Copy link
Contributor

stleerh commented Mar 23, 2026

That's not true, it could track outbound DNS requests as well, it should just get initiated inside the cluster.

Oh, I probably didn't see it on my cluster because I had sampling turned on.

@jotak
Copy link
Member

jotak commented Mar 24, 2026

Oh, I probably didn't see it on my cluster because I had sampling turned on.

@memodi @stleerh
Also, I'm seeing quite a lot of "missed" query names when testing; DNS flows without any name. And I don't think it's related to the known limitations (like compression pointers) .. have you noticed it as well? We may need to investigate

@memodi
Copy link
Member Author

memodi commented Mar 24, 2026

Oh, I probably didn't see it on my cluster because I had sampling turned on.

@memodi @stleerh Also, I'm seeing quite a lot of "missed" query names when testing; DNS flows without any name. And I don't think it's related to the known limitations (like compression pointers) .. have you noticed it as well? We may need to investigate

@jotak yes, I had observed that during testing, see here netobserv/netobserv-ebpf-agent#820 (comment) where @jpinsonneau mentions reasons other reasons why it could be empty. That's why I always need to add a UI filter DNS Name != ""

@memodi memodi merged commit e8b2a1d into netobserv:main Mar 24, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants