Skip to content

Commit c568a09

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

File tree

5 files changed

+26
-8
lines changed

5 files changed

+26
-8
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: 17 additions & 5 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,10 +23,21 @@ class Log {
2223

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

26-
const lastArg = args.at(-1)
27-
if (lastArg && typeof lastArg === 'object' && lastArg.stack) { // lastArg instanceof Error?
28-
cause = args.pop()
28+
{
29+
const lastArg = args.at(-1)
30+
if (lastArg && typeof lastArg === 'object' && lastArg.stack) { // lastArg instanceof Error?
31+
cause = args.pop()
32+
}
33+
}
34+
35+
if (args.length >= 2) {
36+
const meta = args.at(-1)
37+
if (meta && typeof meta === 'object') {
38+
args.pop()
39+
sendViaTelemetry = meta.transmit !== false
40+
}
2941
}
3042

3143
const firstArg = args.shift()
@@ -43,7 +55,7 @@ class Log {
4355
message = String(firstArg)
4456
}
4557

46-
return new Log(message, args, cause, delegate)
58+
return new Log(message, args, cause, delegate, sendViaTelemetry)
4759
}
4860
}
4961

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)