Skip to content

Commit 770ea3e

Browse files
committed
telemetry: add transmit:false flag for logs
1 parent 93d59c4 commit 770ea3e

File tree

5 files changed

+19
-5
lines changed

5 files changed

+19
-5
lines changed

packages/dd-trace/src/exporters/agent/writer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class Writer extends BaseWriter {
4242
startupLog({ agentError: err })
4343

4444
if (err) {
45-
log.error('Error sending payload to the agent (status code: %s)', err.status, err)
45+
log.error('Error sending payload to the agent (status code: %s)', err.status, { transmit: false }, err)
4646
done()
4747
return
4848
}

packages/dd-trace/src/log/log.js

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@
33
const { format } = require('util')
44

55
class Log {
6-
constructor (message, args, cause, delegate) {
6+
constructor (message, args, cause, delegate, sendViaTelemetry = true) {
77
this.message = message
88
this.args = args
99
this.cause = cause
1010
this.delegate = delegate
11+
this.sendViaTelemetry = sendViaTelemetry
1112
}
1213

1314
get formatted () {
@@ -22,12 +23,19 @@ class Log {
2223

2324
static parse (...args) {
2425
let message, cause, delegate
26+
let sendViaTelemetry = true
2527

2628
const lastArg = args.at(-1)
2729
if (lastArg && typeof lastArg === 'object' && lastArg.stack) { // lastArg instanceof Error?
2830
cause = args.pop()
2931
}
3032

33+
const meta = args.at(-1)
34+
if (meta && typeof meta === 'object') {
35+
args.pop()
36+
sendViaTelemetry = meta.transmit !== false
37+
}
38+
3139
const firstArg = args.shift()
3240
if (firstArg) {
3341
if (typeof firstArg === 'string') {
@@ -43,7 +51,7 @@ class Log {
4351
message = String(firstArg)
4452
}
4553

46-
return new Log(message, args, cause, delegate)
54+
return new Log(message, args, cause, delegate, sendViaTelemetry)
4755
}
4856
}
4957

packages/dd-trace/src/remote_config/manager.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ class RemoteConfigManager extends EventEmitter {
153153
if (statusCode === 404) return cb()
154154

155155
if (err) {
156-
log.error('[RC] Error in request', err)
156+
log.error('[RC] Error in request', { transmit: false }, err)
157157
return cb()
158158
}
159159

packages/dd-trace/src/telemetry/logs/log-collector.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ function createHash (logEntry) {
2727
}
2828

2929
function isValid (logEntry) {
30-
return logEntry?.level && logEntry.message
30+
return logEntry?.level && logEntry.message && logEntry.transmit
3131
}
3232

3333
const EOL = '\n'

packages/dd-trace/test/telemetry/logs/log-collector.spec.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@ describe('telemetry log collector', () => {
4949
).to.be.false
5050
})
5151

52+
it('should not store logs with transmit flag set to false', () => {
53+
expect(logCollector.add({ message: 'Error 1', level: 'ERROR' })).to.be.true
54+
expect(logCollector.add({ message: 'Error 2', level: 'ERROR', transmit: true })).to.be.true
55+
expect(logCollector.add({ message: 'Error 3', level: 'ERROR', transmit: false })).to.be.false
56+
})
57+
5258
it('should include original message and dd frames', () => {
5359
const ddFrame = `at T (${ddBasePath}path/to/dd/file.js:1:2)`
5460
const stack = new TypeError('Error 1')

0 commit comments

Comments
 (0)