Conversation
6a10022 to
3ef33fa
Compare
bantonsson
left a comment
There was a problem hiding this comment.
Looks good. Only minor comments.
| service_name: Some(self.service().to_owned()), | ||
| service_env: self.env().map(str::to_owned), | ||
| service_version: self.version().map(str::to_owned), | ||
| // What about hostname, process_tags and container_id ? |
There was a problem hiding this comment.
Should there be a ticket to track this?
There was a problem hiding this comment.
Actually, I hope to answer the question before merging the PR 😅 do you know what should go there? Or if I should just omit it for Rust?
There was a problem hiding this comment.
ivoanjo
left a comment
There was a problem hiding this comment.
This is cool + was way less than I was expecting! :)
I guess other than maybe adding some of the keys that are missing the non-trivial bit is to decide what to do with the legacy file descriptor thing.
|
Ah, quick question -- the way we're wiring it up means it's always on, right? That's exactly what I think we should be doing (and that's most other implementations are doing, at least when they can), just wanted to confirm to mark it on our library support matrix. |
Yes, but with a gotcha. There are several ways to initialize a tracer in dd-trace-rs. The "natural" way is to use There's also an |
Yeah, the only way around that would be to wrap the |
Got it. IMHO, it's a bit too much magic and doesn't look like it's worth the trouble, especially if the assumption that people should do |
|
I think supporting only |
What does this PR do?
This PR hooks up
store_tracer_metadatafromlibdd-library-configinto tracer initialization. Without changing the API or anything else, this will automatically publish tracer metadata as resource attributes both through a pre-existing Datadog-specific protocol, and through the OTel process context.Motivation
This is a required step toward supporting ePBF profiling in dd-trace-rs.
Additional Notes
hostname,process_tagsandcontainer_idin the config. Happy to be pointed at which value we should use for those (or just let them initialized by default)init(), which should be the common way of doing things, but do not do it for local initialization throughinit_local. This is somehow arbitrary and can be debated.