Skip to content

Commit 10e7c2c

Browse files
authored
Revert "Lazy load metrics listener (#320)" (#329)
This reverts commit 47c5508.
1 parent 6e86ae5 commit 10e7c2c

File tree

4 files changed

+14
-64
lines changed

4 files changed

+14
-64
lines changed

src/index.spec.ts

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import {
1111
} from "./index";
1212
import { incrementErrorsMetric, incrementInvocationsMetric } from "./metrics/enhanced-metrics";
1313
import { LogLevel, setLogLevel } from "./utils";
14-
import mock from "mock-fs";
1514

1615
jest.mock("./metrics/enhanced-metrics");
1716

@@ -320,27 +319,6 @@ describe("datadog", () => {
320319
expect(mockedIncrementErrors).toBeCalledTimes(0);
321320
});
322321

323-
it("doesn't increment enhanced metrics when using extension", async () => {
324-
process.env.DD_ENHANCED_METRICS = "false";
325-
mock({
326-
"/opt/extensions/datadog-agent": Buffer.from([0]),
327-
});
328-
329-
const handlerError: Handler = (event, context, callback) => {
330-
throw Error("Some error");
331-
};
332-
333-
const wrappedHandler = datadog(handlerError, { forceWrap: true });
334-
335-
const result = wrappedHandler({}, mockContext, () => {});
336-
await expect(result).rejects.toEqual(Error("Some error"));
337-
338-
expect(mockedIncrementInvocations).toBeCalledTimes(0);
339-
expect(mockedIncrementErrors).toBeCalledTimes(0);
340-
341-
mock.restore();
342-
});
343-
344322
it("use custom logger to log debug messages", async () => {
345323
const logger = {
346324
debug: jest.fn(),

src/index.ts

Lines changed: 12 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
import { Context, Handler } from "aws-lambda";
2-
import { MetricsConfig } from "./metrics";
3-
import type { MetricsListener as MetricsListenerType } from "./metrics";
4-
2+
import {
3+
incrementErrorsMetric,
4+
incrementInvocationsMetric,
5+
KMSService,
6+
MetricsConfig,
7+
MetricsListener,
8+
} from "./metrics";
59
import { TraceConfig, TraceHeaders, TraceListener } from "./trace";
610
import {
711
logDebug,
@@ -13,8 +17,6 @@ import {
1317
setLogger,
1418
setLogLevel,
1519
} from "./utils";
16-
import { getExtensionPath } from "./utils/extension-path";
17-
import { existsSync } from "fs";
1820

1921
export { TraceHeaders } from "./trace";
2022

@@ -75,9 +77,8 @@ export const defaultConfig: Config = {
7577
siteURL: "",
7678
} as const;
7779

78-
let currentMetricsListener: MetricsListenerType | undefined;
80+
let currentMetricsListener: MetricsListener | undefined;
7981
let currentTraceListener: TraceListener | undefined;
80-
let isExtension: boolean;
8182

8283
/**
8384
* Wraps your AWS lambda handler functions to add tracing/metrics support
@@ -96,20 +97,7 @@ export function datadog<TEvent, TResult>(
9697
config?: Partial<Config>,
9798
): Handler<TEvent, TResult> {
9899
const finalConfig = getConfig(config);
99-
let metricsListener: MetricsListenerType;
100-
let incrementErrorsMetric: any;
101-
let incrementInvocationsMetric: any;
102-
if (!isExtensionEnabled()) {
103-
const {
104-
MetricsListener,
105-
KMSService,
106-
incrementErrorsMetric: errorFunc,
107-
incrementInvocationsMetric: invoFunc,
108-
} = require("./metrics");
109-
incrementErrorsMetric = errorFunc;
110-
incrementInvocationsMetric = invoFunc;
111-
metricsListener = new MetricsListener(new KMSService(), finalConfig);
112-
}
100+
const metricsListener = new MetricsListener(new KMSService(), finalConfig);
113101

114102
const traceListener = new TraceListener(finalConfig);
115103

@@ -134,7 +122,7 @@ export function datadog<TEvent, TResult>(
134122
try {
135123
await traceListener.onStartInvocation(event, context);
136124
await metricsListener.onStartInvocation(event);
137-
if (finalConfig.enhancedMetrics && !isExtensionEnabled()) {
125+
if (finalConfig.enhancedMetrics) {
138126
incrementInvocationsMetric(metricsListener, context);
139127
}
140128
} catch (err) {
@@ -157,7 +145,7 @@ export function datadog<TEvent, TResult>(
157145
localResult,
158146
finalConfig.captureLambdaPayload,
159147
);
160-
if (responseIs5xxError && !isExtensionEnabled()) {
148+
if (responseIs5xxError) {
161149
incrementErrorsMetric(metricsListener, context);
162150
}
163151
}
@@ -168,7 +156,7 @@ export function datadog<TEvent, TResult>(
168156
error = err;
169157
}
170158
try {
171-
if (didThrow && finalConfig.enhancedMetrics && !isExtensionEnabled()) {
159+
if (didThrow && finalConfig.enhancedMetrics) {
172160
incrementErrorsMetric(metricsListener, context);
173161
}
174162
await metricsListener.onCompleteInvocation();
@@ -311,13 +299,3 @@ function getRuntimeTag(): string {
311299
const version = process.version;
312300
return `dd_lambda_layer:datadog-node${version}`;
313301
}
314-
315-
function isExtensionEnabled(): boolean {
316-
if (isExtension !== undefined) {
317-
return isExtension;
318-
}
319-
320-
const extensionPath = getExtensionPath();
321-
isExtension = existsSync(extensionPath);
322-
return isExtension;
323-
}

src/metrics/extension.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
import { URL } from "url";
22
import { get, post, logDebug, logError } from "../utils";
3-
import { getExtensionPath } from "../utils/extension-path";
43
import fs from "fs";
54

65
export const AGENT_URL = "http://127.0.0.1:8124";
76
const HELLO_PATH = "/lambda/hello";
87
const FLUSH_PATH = "/lambda/flush";
8+
const EXTENSION_PATH = "/opt/extensions/datadog-agent";
99
const AGENT_TIMEOUT_MS = 100;
1010

1111
export async function isAgentRunning() {
12-
const extensionPath = getExtensionPath();
13-
const extensionExists = await fileExists(extensionPath);
12+
const extensionExists = await fileExists(EXTENSION_PATH);
1413
if (!extensionExists) {
1514
logDebug(`Agent isn't present in sandbox`);
1615
return false;

src/utils/extension-path.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)