Skip to content

Commit 7440d6e

Browse files
authored
Merge cde829b into 761b3dc
2 parents 761b3dc + cde829b commit 7440d6e

File tree

3 files changed

+25
-2
lines changed

3 files changed

+25
-2
lines changed

src/index.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ export const decodeAuthorizerContextEnvVar = "DD_DECODE_AUTHORIZER_CONTEXT";
4444
export const coldStartTracingEnvVar = "DD_COLD_START_TRACING";
4545
export const minColdStartTraceDurationEnvVar = "DD_MIN_COLD_START_DURATION";
4646
export const coldStartTraceSkipLibEnvVar = "DD_COLD_START_TRACE_SKIP_LIB";
47+
export const localTestingEnvVar = "DD_LOCAL_TESTING";
4748

4849
interface GlobalConfig {
4950
/**
@@ -86,6 +87,7 @@ export const defaultConfig: Config = {
8687
siteURL: "",
8788
minColdStartTraceDuration: 3,
8889
coldStartTraceSkipLib: "",
90+
localTesting: false,
8991
} as const;
9092

9193
let currentMetricsListener: MetricsListener | undefined;
@@ -365,6 +367,14 @@ function getConfig(userConfig?: Partial<Config>): Config {
365367
config.captureLambdaPayloadMaxDepth = Number(getEnvValue(captureLambdaPayloadMaxDepthEnvVar, "10"));
366368
}
367369

370+
if (userConfig === undefined || userConfig.localTesting === undefined) {
371+
const result = getEnvValue(localTestingEnvVar, "false").toLowerCase();
372+
// TODO deprecate 1 for truthy, this shouldn't have been allowed
373+
// but the extension allows it, so we must as well
374+
// @ts-ignore-next-line
375+
config.localTesting = result === "true" || result === "1";
376+
}
377+
368378
return config;
369379
}
370380

src/metrics/listener.spec.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ describe("MetricsListener", () => {
3737
enhancedMetrics: false,
3838
logForwarding: false,
3939
shouldRetryMetrics: false,
40+
localTesting: false,
4041
siteURL,
4142
});
4243

@@ -56,6 +57,7 @@ describe("MetricsListener", () => {
5657
enhancedMetrics: false,
5758
logForwarding: false,
5859
shouldRetryMetrics: false,
60+
localTesting: false,
5961
siteURL,
6062
});
6163

@@ -73,6 +75,7 @@ describe("MetricsListener", () => {
7375
enhancedMetrics: false,
7476
logForwarding: false,
7577
shouldRetryMetrics: false,
78+
localTesting: false,
7679
siteURL,
7780
});
7881

@@ -91,6 +94,7 @@ describe("MetricsListener", () => {
9194
enhancedMetrics: false,
9295
logForwarding: true,
9396
shouldRetryMetrics: false,
97+
localTesting: false,
9498
siteURL,
9599
});
96100
jest.useFakeTimers("legacy");
@@ -124,6 +128,7 @@ describe("MetricsListener", () => {
124128
enhancedMetrics: false,
125129
logForwarding: true,
126130
shouldRetryMetrics: false,
131+
localTesting: true,
127132
siteURL,
128133
});
129134
jest.useFakeTimers("legacy");
@@ -146,6 +151,7 @@ describe("MetricsListener", () => {
146151
enhancedMetrics: false,
147152
logForwarding: true,
148153
shouldRetryMetrics: false,
154+
localTesting: false,
149155
siteURL,
150156
});
151157
// jest.useFakeTimers();

src/metrics/listener.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,13 @@ export interface MetricsConfig {
4646
* @default false
4747
*/
4848
enhancedMetrics: boolean;
49+
50+
/**
51+
* Whether to call the extension's Flush endpoint in a local test
52+
* Only needed locally, as the extension knows about the end of the invocation
53+
* from the runtime
54+
*/
55+
localTesting: boolean;
4956
}
5057

5158
export class MetricsListener {
@@ -114,8 +121,8 @@ export class MetricsListener {
114121
}
115122
}
116123
try {
117-
if (this.isAgentRunning) {
118-
logDebug(`Flushing Extension`);
124+
if (this.isAgentRunning && this.config.localTesting) {
125+
logDebug(`Flushing Extension for local test`);
119126
await flushExtension();
120127
}
121128
} catch (error) {

0 commit comments

Comments
 (0)