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

[receiver/datadog] Span Obfuscation #35593

Open
wants to merge 11 commits into
base: main
Choose a base branch
from

Conversation

lopes-felipe
Copy link
Contributor

@lopes-felipe lopes-felipe commented Oct 3, 2024

Description

Datadog Agent's span processor has an obfuscation pipeline that—among other things—obfuscates sensitive data, cleans up span resource names, and extracts particular components into specific span metadata.

This PR implements the same behavior into the datadogreceiver, but disabled by default for retro compatibility with existing users.

Link to tracking issue

Fixes

Testing

Documentation

@MovieStoreGuy
Copy link
Contributor

MovieStoreGuy commented Oct 9, 2024

@lopes-felipe,

Have you checked to see if any of the existing processors would provide this functionality?

I am hesitant to allow adding this into the receiver when it could already be achieved with existing functionality. There is also the added concern that this component is effectively bundling the datadog agent into the collector which doesn't sound ideal.

@lopes-felipe
Copy link
Contributor Author

@lopes-felipe,

Have you checked to see if any of the existing processors would provide this functionality?

I am hesitant to allow adding this into the receiver when it could already be achieved with existing functionality. There is also the added concern that this component is effectively bundling the datadog agent into the collector which doesn't sound ideal.

Hey @MovieStoreGuy,

Thank you for the review. Yes, I have checked all the existing processors, and none of them have the capability to clean or/and obfuscate the span data in such a context-aware/structured way as it's done here.

For instance, like this simple test demonstrates, it takes a SQL query with comments, aliases, and repetitions (ref), and turn it into a flat, un-aliased, un-commented, deduplicated string (ref), something that is just not possible with any other processor currently available.

I would be more than happy to propose something like this for an existing processor such as Span Processor though, but I guess we could first prove the value of such a focused processing approach as this in a more narrowed-scope component such as Datadog Receiver here.

Finally, regarding bundling the Datadog Agent into the Collector, please correct me if I'm wrong here, but I don't think this particular feature implementation is moving this (very reasonable) concern any further, considering what has already taken place by the Datadog Exporter, and for the very own Datadog Receiver. Still, again, I might be missing something here.

Thank you again for the thoughtful review :)

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

Successfully merging this pull request may close these issues.

3 participants