Skip to content

Commit a7f06e0

Browse files
feat: Added delay and duration to profiling config (#3754)
1 parent 70b7f41 commit a7f06e0

File tree

4 files changed

+24
-0
lines changed

4 files changed

+24
-0
lines changed

lib/config/default.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1275,6 +1275,20 @@ defaultConfig.definition = () => {
12751275
formatter: array,
12761276
default: ['cpu', 'heap']
12771277
},
1278+
/**
1279+
* Delay in milliseconds before starting profiler.
1280+
*/
1281+
delay: {
1282+
formatter: int,
1283+
default: 0
1284+
},
1285+
/**
1286+
* If >0, stop profiler after this many milliseconds of operation.
1287+
*/
1288+
duration: {
1289+
formatter: int,
1290+
default: 0
1291+
},
12781292
/**
12791293
* Restart the cpu profiler every n milliseconds to report its data
12801294
*/

test/unit/config/config-defaults.test.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,8 @@ test('with default properties', async (t) => {
348348

349349
await t.test('profiling defaults', () => {
350350
assert.equal(configuration.profiling.enabled, false)
351+
assert.equal(configuration.profiling.delay, 0)
352+
assert.equal(configuration.profiling.duration, 0)
351353
assert.equal(configuration.profiling.sample_interval, 100)
352354
assert.deepEqual(configuration.profiling.include, ['cpu', 'heap'])
353355
assert.equal(configuration.profiling.cpu.report_interval, 0)

test/unit/config/config-env.test.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,13 +483,17 @@ test('when overriding configuration values via environment variables', async (t)
483483
const env = {
484484
NEW_RELIC_PROFILING_ENABLED: true,
485485
NEW_RELIC_PROFILING_INCLUDE: ['heap'],
486+
NEW_RELIC_PROFILING_DELAY: 100,
487+
NEW_RELIC_PROFILING_DURATION: 20000,
486488
NEW_RELIC_PROFILING_SAMPLE_INTERVAL: 150,
487489
NEW_RELIC_PROFILING_HEAP_REPORT_INTERVAL: 200
488490
}
489491

490492
idempotentEnv(env, (tc) => {
491493
assert(tc.profiling.enabled, true)
492494
assert.deepStrictEqual(tc.profiling.include, ['heap'])
495+
assert.equal(tc.profiling.delay, 100)
496+
assert.equal(tc.profiling.duration, 20000)
493497
assert.equal(tc.profiling.sample_interval, 150)
494498
assert.equal(tc.profiling.heap.report_interval, 200)
495499
end()

test/unit/config/config.test.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,6 +542,8 @@ test('distributed tracing samplers', async (t) => {
542542
const config = {
543543
profiling: {
544544
enabled: true,
545+
delay: 100,
546+
duration: 20000,
545547
sample_interval: 200,
546548
include: ['cpu'],
547549
cpu: {
@@ -552,6 +554,8 @@ test('distributed tracing samplers', async (t) => {
552554

553555
const configuration = Config.initialize(config)
554556
assert.equal(configuration.profiling.enabled, true)
557+
assert.equal(configuration.profiling.delay, 100)
558+
assert.equal(configuration.profiling.duration, 20000)
555559
assert.equal(configuration.profiling.sample_interval, 200)
556560
assert.deepEqual(configuration.profiling.include, ['cpu'])
557561
assert.equal(configuration.profiling.cpu.report_interval, 50)

0 commit comments

Comments
 (0)