-
Notifications
You must be signed in to change notification settings - Fork 469
chore(internal): add process_tags to APM payload #15146
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
Conversation
|
|
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 219 ± 5 ms. The average import time from base is: 223 ± 4 ms. The import time difference between this PR and base is: -4.6 ± 0.2 ms. Import time breakdownThe following import paths have appeared:
|
ffb1dea to
660bd64
Compare
Performance SLOsComparing candidate dubloom/process-tags-collection (30436ab) with baseline main (2ccf506) 🟡 Near SLO Breach (1 suite)🟡 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 3.041µs (SLO: <20.000µs 📉 -84.8%) vs baseline: +2.2% Memory: ✅ 34.544MB (SLO: <35.500MB -2.7%) vs baseline: +5.0% ✅ 1-count-metrics-100-timesTime: ✅ 199.684µs (SLO: <220.000µs -9.2%) vs baseline: -0.4% Memory: ✅ 34.544MB (SLO: <35.500MB -2.7%) vs baseline: +4.7% ✅ 1-distribution-metric-1-timesTime: ✅ 3.288µs (SLO: <20.000µs 📉 -83.6%) vs baseline: -1.1% Memory: ✅ 34.505MB (SLO: <35.500MB -2.8%) vs baseline: +5.1% ✅ 1-distribution-metrics-100-timesTime: ✅ 215.376µs (SLO: <230.000µs -6.4%) vs baseline: -1.3% Memory: ✅ 34.485MB (SLO: <35.500MB -2.9%) vs baseline: +4.7% ✅ 1-gauge-metric-1-timesTime: ✅ 2.168µs (SLO: <20.000µs 📉 -89.2%) vs baseline: -0.2% Memory: ✅ 34.524MB (SLO: <35.500MB -2.7%) vs baseline: +4.7% ✅ 1-gauge-metrics-100-timesTime: ✅ 136.799µs (SLO: <150.000µs -8.8%) vs baseline: -1.1% Memory: ✅ 34.387MB (SLO: <35.500MB -3.1%) vs baseline: +4.7% ✅ 1-rate-metric-1-timesTime: ✅ 3.043µs (SLO: <20.000µs 📉 -84.8%) vs baseline: -1.2% Memory: ✅ 34.505MB (SLO: <35.500MB -2.8%) vs baseline: +5.0% ✅ 1-rate-metrics-100-timesTime: ✅ 210.422µs (SLO: <250.000µs 📉 -15.8%) vs baseline: -2.0% Memory: ✅ 34.544MB (SLO: <35.500MB -2.7%) vs baseline: +4.7% ✅ 100-count-metrics-100-timesTime: ✅ 20.015ms (SLO: <22.000ms -9.0%) vs baseline: -0.1% Memory: ✅ 34.603MB (SLO: <35.500MB -2.5%) vs baseline: +5.1% ✅ 100-distribution-metrics-100-timesTime: ✅ 2.290ms (SLO: <2.300ms 🟡 -0.4%) vs baseline: +0.6% Memory: ✅ 34.544MB (SLO: <35.500MB -2.7%) vs baseline: +4.9% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.409ms (SLO: <1.550ms -9.1%) vs baseline: -0.5% Memory: ✅ 34.465MB (SLO: <35.500MB -2.9%) vs baseline: +4.7% ✅ 100-rate-metrics-100-timesTime: ✅ 2.182ms (SLO: <2.550ms 📉 -14.4%) vs baseline: -0.3% Memory: ✅ 34.564MB (SLO: <35.500MB -2.6%) vs baseline: +5.1% ✅ flush-1-metricTime: ✅ 4.649µs (SLO: <20.000µs 📉 -76.8%) vs baseline: +1.0% Memory: ✅ 34.505MB (SLO: <35.500MB -2.8%) vs baseline: +4.9% ✅ flush-100-metricsTime: ✅ 174.483µs (SLO: <250.000µs 📉 -30.2%) vs baseline: ~same Memory: ✅ 34.505MB (SLO: <35.500MB -2.8%) vs baseline: +4.8% ✅ flush-1000-metricsTime: ✅ 2.121ms (SLO: <2.500ms 📉 -15.2%) vs baseline: ~same Memory: ✅ 35.350MB (SLO: <36.500MB -3.2%) vs baseline: +5.0%
|
brettlangdon
left a comment
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.
implementation seems like overkill for what needs to be implemented. this is going to have a negative performance impact, especially with the introduction of the lock
mabdinur
left a comment
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.
Left some non blocking nits and questions. Overall looks good to me.
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.
LGTM from code correctness though I'll defer to those with deeper understanding of the RFC
This PR implements this [RFC](https://docs.google.com/document/d/1AFdLUuVk70i0bJd5335-RxqsvwAV9ovAqcO2z5mEMbA/edit?pli=1&tab=t.0#heading=h.s9l1lctqlg11) for dynamic instrumentation. Add process_tags to dynamic instrumentation payload ## Testing - Check that process tags are not included if deactivated - Check the right process tags are set in the payload when activated
This PR implements this RFC for the tracing product.
Add process_tags in APM payload. According to the RFC and as the python tracer supports only v0.4 and v0.5 the tag
_dd.tags.processis set in the first first span of each trace chunk set.The set tag are:
entrypoint.workdir. The working dir name, should be the last path segment.entrypoint.name. The entrypoint of the application. It is the the script name.entrypoint.type. I'd assume that it can be only script for Python.entrypoint.basedir. The base dir is the directory where the called executable resides. Should be the last path segment.