-
Notifications
You must be signed in to change notification settings - Fork 341
telemetry: add transmit:false flag for logs, reduce log cardinality #5871
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
base: master
Are you sure you want to change the base?
Conversation
Overall package sizeSelf size: 9.62 MB Dependency sizes| name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.7.0 | 35.02 MB | 35.02 MB | | @datadog/native-appsec | 8.5.2 | 19.33 MB | 19.34 MB | | @datadog/native-iast-taint-tracking | 4.0.0 | 11.72 MB | 11.73 MB | | @datadog/pprof | 5.8.2 | 9.56 MB | 9.93 MB | | @opentelemetry/core | 1.30.1 | 908.66 kB | 7.16 MB | | protobufjs | 7.5.3 | 2.95 MB | 5.6 MB | | @datadog/wasm-js-rewriter | 4.0.1 | 2.85 MB | 3.58 MB | | @datadog/native-metrics | 3.1.1 | 1.02 MB | 1.43 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.14.0 | 120.58 kB | 841.68 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | lru-cache | 7.18.3 | 133.92 kB | 133.92 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.1 | 109.9 kB | 109.9 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.2 | 53.63 kB | 53.63 kB | | istanbul-lib-coverage | 3.2.2 | 34.37 kB | 34.37 kB | | rfdc | 1.4.1 | 27.15 kB | 27.15 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | dc-polyfill | 0.1.9 | 25.11 kB | 25.11 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | shell-quote | 1.8.2 | 23.54 kB | 23.54 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | semifies | 1.0.0 | 15.84 kB | 15.84 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | ttl-set | 1.0.0 | 4.61 kB | 9.69 kB | | mutexify | 1.4.0 | 5.71 kB | 8.74 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | module-details-from-path | 1.0.4 | 3.96 kB | 3.96 kB |🤖 This report was automatically generated by heaviest-objects-in-the-universe |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #5871 +/- ##
==========================================
+ Coverage 79.45% 81.02% +1.57%
==========================================
Files 473 288 -185
Lines 20220 10242 -9978
==========================================
- Hits 16065 8299 -7766
+ Misses 4155 1943 -2212 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Datadog ReportBranch report: ✅ 0 Failed, 1252 Passed, 0 Skipped, 21m 48.72s Total Time New Flaky Tests (4)
|
4e8c325
to
770ea3e
Compare
BenchmarksBenchmark execution time: 2025-06-11 22:03:54 Comparing candidate commit fd0f699 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 1175 metrics, 53 unstable metrics. |
c568a09
to
0ab11e2
Compare
1a8c0b2
to
fd0f699
Compare
packages/dd-trace/src/log/index.js
Outdated
const log = { | ||
LogConfig, | ||
MUTE: mute, |
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.
The word "mute" will easily be misinterpreted, as we're not muting the log in general, but just not sending it to telemetry. A more descriptive name would be:
MUTE: mute, | |
NO_TELEMETRY: mute, |
@@ -27,7 +27,7 @@ function createHash (logEntry) { | |||
} | |||
|
|||
function isValid (logEntry) { | |||
return logEntry?.level && logEntry.message | |||
return logEntry?.level && logEntry.message && logEntry.transmit !== false |
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.
Maybe I'm reading the code wrong, but isn't transmit
only a property of the LogConfig
instance? A Log
instance would have sendViaTelemetry
set instead, right?
return logEntry?.level && logEntry.message && logEntry.transmit !== false | |
return logEntry?.level && logEntry.message && logEntry.sendViaTelemetry !== false |
it('should not store logs with transmit flag set to false', () => { | ||
expect(logCollector.add({ message: 'Error 1', level: 'ERROR' })).to.be.true | ||
expect(logCollector.add({ message: 'Error 2', level: 'ERROR', transmit: true })).to.be.true | ||
expect(logCollector.add({ message: 'Error 3', level: 'ERROR', transmit: false })).to.be.false |
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.
If I'm correct about my question about transmit
vs sendViaTelemetry
above, this test is not actually testing what you think it is. In that case it would be more robust to not just set the flag manually like you do here, but to at least go through the Log
constructor.
fd0f699
to
caad609
Compare
caad609
to
b076813
Compare
@@ -42,7 +42,7 @@ class Writer extends BaseWriter { | |||
startupLog({ agentError: err }) | |||
|
|||
if (err) { | |||
log.error('Error sending payload to the agent (status code: %s)', err.status, err) | |||
log.error('Error sending payload to the agent (status code: %s)', err.status, err, log.NO_TELEMETRY) |
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.
Awesome thanks!
What does this PR do?
log.LEVEL()
callsMotivation