-
Notifications
You must be signed in to change notification settings - Fork 11
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
Add support for APM Remote Configuration #74
Conversation
I'm playing with my own branch, making suggestions for this PR. In looking at
What is meant by "separate" here? My guess is that each The notion of "tracer ID" is suspect in my mind. How does it all fit together? |
I asked RC people, here are there answer:
From my understanding it is a combination
My main objective in incorporating the TracerID data structure was to enhance code simplicity and improve expressiveness. |
Currently, each @cgilmour and I decided that it would be better if these workers shared the same I'm concerned that now each worker will have the same "tracer ID," (same runtime, env, service) but that the workers' What I'm trying to get at, asking these questions, is what is a tracer? Worst case scenario, there is no clear definition. Here's my opinion: Workers within a proxy are the "same tracer." They're part of the same runtime and share the same configuration. So, I figure each of these workers should appear identical to the remote config backend. Will that be a problem? I think it will be a problem. Alternatively, workers can share a runtime ID, env, and service, but have different client IDs. What is meant by "client"? What is the relationship between "client" and "tracer"? Let's iron out these definitions before committing the code. At the very least, it will allow us to write good documentation for the |
- update fuzz documentation - revise the base64 decoder - move ConfigManager into its own .cpp - remove namespace httputil::header - more specific error code - RuntimeID rc_id_ --> std::string client_id_ - TracerId --> TracerID - remove disambiguating "template" keyword - document k_apm_capabilities - missed a spot when removing namespace httputil::header - no need to optimize target file lookup - slightly safer product parsing
- Update base64 implementation to not rely on little endian. - Move ConfigUpdate in its own heade file
58166f5
to
f105c8f
Compare
BenchmarksBenchmark execution time: 2024-01-09 15:58:19 Comparing candidate commit 99c1c65 in PR branch Found 1 performance improvements and 0 performance regressions! Performance is the same for 0 metrics, 0 unstable metrics. scenario:BM_TraceTinyCCSource
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good. Please see my suggestions in #83.
Once we've discussed that, I'll mark this approved.
@dgoffredo I added your changes in 8a9d59b and 3444245 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very nice! This feature came out well.
Once this is merged, I'll see whether it breaks Envoy's unit tests. We can keep the two concerns decoupled.
Description
Remote Configuration allows to remotely configure the library. For now, it is only possible to update the trace sampling rate remotely.
How to test
An API Key with Remote Configuration enabled is required.
hasher
example.dd-trace-cpp-example
service.