Skip to content

Commit 131a638

Browse files
committed
update
1 parent a54ecd7 commit 131a638

8 files changed

Lines changed: 15 additions & 79 deletions

File tree

.dockerignore

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,2 @@
11
bottlecap/target/
2-
integration-tests/node_modules/
3-
integration-tests/cdk.out/
4-
integration-tests/test-results/
5-
.layers/
2+
integration-tests/

integration-tests/bin/app.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
import 'source-map-support/register';
33
import * as cdk from 'aws-cdk-lib';
44
import * as os from 'os';
5-
import { BaseNodeStack } from '../lib/base-node-stack';
6-
import { BasePythonStack } from '../lib/base-python-stack';
5+
import { BaseNodeStack } from '../lib/stacks/base-node-stack';
76

87
const app = new cdk.App();
98

@@ -41,8 +40,4 @@ new BaseNodeStack(app, `integ-${identifier}-base-node`, {
4140
env,
4241
});
4342

44-
new BasePythonStack(app, `integ-${identifier}-base-python`, {
45-
env,
46-
});
47-
4843
app.synth();

integration-tests/lib/base-node-stack.ts renamed to integration-tests/lib/stacks/base-node-stack.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as cdk from 'aws-cdk-lib';
22
import * as lambda from 'aws-cdk-lib/aws-lambda';
33
import { Construct } from 'constructs';
4-
import { createLogGroup, datadogEnvVariables, secretPolicy, getExtensionLayer, getNode20Layer } from './util';
4+
import { createLogGroup, defaultDatadogEnvVariables, defaultDatadogSecretPolicy, getExtensionLayer, getNode20Layer } from '../util';
55

66
export class BaseNodeStack extends cdk.Stack {
77
constructor(scope: Construct, id: string, props: cdk.StackProps) {
@@ -17,14 +17,14 @@ export class BaseNodeStack extends cdk.Stack {
1717
timeout: cdk.Duration.seconds(30),
1818
memorySize: 256,
1919
environment: {
20-
...datadogEnvVariables,
20+
...defaultDatadogEnvVariables,
2121
DD_SERVICE: nodeFunctionName,
2222
DD_TRACE_ENABLED: 'true',
2323
DD_LAMBDA_HANDLER: 'index.handler',
2424
},
2525
logGroup: createLogGroup(this, nodeFunctionName)
2626
});
27-
nodeFunction.addToRolePolicy(secretPolicy)
27+
nodeFunction.addToRolePolicy(defaultDatadogSecretPolicy)
2828
nodeFunction.addLayers(getExtensionLayer(this));
2929
nodeFunction.addLayers(getNode20Layer(this));
3030
}

integration-tests/lib/util.ts

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,22 @@ import * as cdk from 'aws-cdk-lib';
44
import * as iam from 'aws-cdk-lib/aws-iam';
55
import { LayerVersion } from "aws-cdk-lib/aws-lambda";
66

7-
export const datadogSecretArn = process.env.DATADOG_API_SECRET_ARN || '';
8-
export const extensionLayerArn = process.env.EXTENSION_LAYER_ARN || 'arn:aws:lambda:us-east-1:464622532012:layer:Datadog-Extension-ARM:89'
7+
export const datadogSecretArn = process.env.DATADOG_API_SECRET_ARN!;
8+
export const extensionLayerArn = process.env.EXTENSION_LAYER_ARN!;
99

1010
export const node20LayerArn = 'arn:aws:lambda:us-east-1:464622532012:layer:Datadog-Node20-x:130';
11-
export const python312LayerArn = 'arn:aws:lambda:us-east-1:464622532012:layer:Datadog-Python312-ARM:117';
1211

13-
export interface Props extends cdk.StackProps{
14-
identifier: string
15-
}
16-
17-
export const datadogEnvVariables = {
12+
export const defaultDatadogEnvVariables = {
1813
DD_API_KEY_SECRET_ARN: datadogSecretArn,
1914
DD_SITE: 'datadoghq.com',
20-
DD_ENV: 'sandbox',
15+
DD_ENV: 'integration',
2116
DD_VERSION: '1.0.0',
2217
DD_SERVERLESS_FLUSH_STRATEGY: 'end',
2318
DD_SERVERLESS_LOGS_ENABLED: 'true',
2419
DD_LOG_LEVEL: 'info',
2520
};
2621

27-
export const secretPolicy = new iam.PolicyStatement({
22+
export const defaultDatadogSecretPolicy = new iam.PolicyStatement({
2823
effect: iam.Effect.ALLOW,
2924
actions: [
3025
'secretsmanager:GetSecretValue',
@@ -55,12 +50,4 @@ export const getNode20Layer = (scope: Construct) => {
5550
'DatadogNode20Layer',
5651
node20LayerArn
5752
);
58-
};
59-
60-
export const getPython312Layer = (scope: Construct) => {
61-
return LayerVersion.fromLayerVersionArn(
62-
scope,
63-
'DatadogPython312Layer',
64-
python312LayerArn
65-
);
6653
};

integration-tests/scripts/local_publish.sh

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ echo "Layer name will be: Datadog-Extension-ARM-$IDENTIFIER"
1919
ORIGINAL_DIR=$(pwd)
2020

2121
# Navigate to the extension root directory
22-
cd /Users/john.chrostek/Projects/lambda-agent/datadog-lambda-extension
22+
cd "$(dirname "$0")/../.."
2323

2424
# Build and publish for ARM64 with custom layer name
2525
LAYER_PATH=".layers/datadog_extension-arm64.zip"
@@ -39,8 +39,6 @@ NEW_VERSION=$(aws-vault exec sso-serverless-sandbox-account-admin -- aws lambda
3939
echo ""
4040
echo "=========================================="
4141
echo "DONE: Published version $NEW_VERSION"
42-
echo "Layer: $LAYER_NAME"
43-
echo "Region: $REGION"
4442
echo "=========================================="
4543

4644
# Return to original directory

integration-tests/tests/utils/datadog.ts

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,6 @@ export interface DatadogLog {
4545
};
4646
}
4747

48-
export interface DatadogMetric {
49-
metric: string;
50-
points: Array<[number, number]>;
51-
tags: string[];
52-
}
53-
5448
/**
5549
* Search for traces in Datadog using the v2 API
5650
* @param serviceName - Datadog service name
@@ -212,37 +206,4 @@ export async function getLogs(
212206
console.error('Error searching logs:', error.response?.data || error.message);
213207
throw error;
214208
}
215-
}
216-
217-
/**
218-
* Query metrics from Datadog
219-
* @param query - Metrics query (e.g., "avg:aws.lambda.duration{function_name:my-function}")
220-
* @param from - Start time in seconds since epoch
221-
* @param to - End time in seconds since epoch
222-
*/
223-
export async function queryMetrics(
224-
serviceName: string,
225-
): Promise<DatadogMetric[]> {
226-
const now = Date.now();
227-
const fromTime = now - (15 * 60 * 1000); // 15 minutes ago
228-
const toTime = now;
229-
try {
230-
const response = await datadogClient.post('/api/v2/metrics/query', {
231-
params: {
232-
data: {
233-
type: 'query_request',
234-
attributes: {
235-
query: `service:${serviceName}`,
236-
from: new Date(fromTime).toISOString(),
237-
to: new Date(toTime).toISOString(),
238-
},
239-
},
240-
},
241-
});
242-
243-
return response.data.series || [];
244-
} catch (error: any) {
245-
console.error('Error querying metrics:', error.response?.data || error.message);
246-
throw error;
247-
}
248209
}

integration-tests/tests/utils/lambda.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ export interface LambdaInvocationResult {
1111
export async function invokeLambda(
1212
functionName: string,
1313
payload: any = {},
14-
coldStart: boolean = false,
15-
getLogs: boolean = false
14+
coldStart: boolean = false
1615
): Promise<LambdaInvocationResult> {
17-
console.log(`Invoking Lambda: ${functionName}, coldStart: ${coldStart}, getLogs: ${getLogs}, payload: ${JSON.stringify(payload)}`);
16+
console.log(`Invoking Lambda: ${functionName}, coldStart: ${coldStart}, payload: ${JSON.stringify(payload)}`);
1817

1918
if (coldStart) {
2019
console.log('Forcing cold start...');

integration-tests/tests/utils/util.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ export interface LambdaInvocationDatadogData {
1010
}
1111

1212
export async function invokeLambdaAndGetDatadogData(functionName: string, payload: any = {}, coldStart: boolean = false): Promise<LambdaInvocationDatadogData> {
13-
const result = await invokeLambda(functionName, payload, coldStart, false);
13+
const result = await invokeLambda(functionName, payload, coldStart);
1414

1515
console.log('Waiting 10 minutes for logs and traces to be indexed in Datadog...');
16-
await new Promise(resolve => setTimeout(resolve, 300000));
16+
await new Promise(resolve => setTimeout(resolve, 600000));
1717

1818
const traces = await getTraces(functionName, result.requestId);
1919
const logs = await getLogs(functionName, result.requestId);
@@ -27,5 +27,4 @@ export async function invokeLambdaAndGetDatadogData(functionName: string, payloa
2727
};
2828

2929
return lambdaInvocationData;
30-
3130
}

0 commit comments

Comments
 (0)