Skip to content

[FEATURE]: add more granularity to gRPC DNS filtering #10158

Description

@AdrienDoctolib

Package Name

No response

Package Version(s)

No response

Describe the feature you'd like

I would like to have more diversity on how I can enable/disable some gRPC DNS traces. Right now, there is only DD_TRACE_DNS_ENABLED, which toggles ON/OFF all of the DNS traces.

Is your feature request related to a problem?

I have an error in gRPC: queryTxt ENOTFOUND some.service.svc. This error is captured by dd-trace stream listening.
However I would like to filter out this error, it happens because node's resolveTxt does not use getaddrinfo while lookup does.
I am using a service which uses gRPC under the hood. Our service works as expected, because it uses lookup which translates our SOME_SERVICE_HOST from some.service.svc to some.service.svc.cluster.local. However, when gRPC tries loading additional configuration with resolveTxt, it throws an error, because it sends a direct DNS request to some.service.svc instead of resolving it to some.service.svc.cluster.local. I do not want nor care about this additional configuration but I still get a lot of errors on it.
Right now our resolution/mitigation is to patch the dd-trace package to ignore this specific error. This is brittle and might break on a new release of the dd-trace package.
I can also use DD_TRACE_DNS_ENABLED to disable the error, but it will disable all DNS traces, not only gRPC ones and not only the one I want.

Describe alternatives you've considered

It would be nice to have additional configuration on DNS/gRPC, just like there is in: DD_GRPC_CLIENT_ERROR_STATUSES, where I could toggle on/off some of the DNS requests from gRPC. Right now every time a pod starts, it sends a resolveTxt DNS request and fails, which is noisy.

Additional context

No response

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions