Skip to content

Commit ae7efe3

Browse files
authored
Merge branch 'main' into aws-lambda-configurator
2 parents 2b76e83 + 593f6d8 commit ae7efe3

File tree

8 files changed

+46
-119
lines changed

8 files changed

+46
-119
lines changed

Dockerfile

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
# # Stage 1: Install ADOT nodejs instrumentation in the /operator-build folder
1+
# Stage 1: Install ADOT nodejs instrumentation in the /operator-build folder
22
FROM node:20 AS build
33

4-
# In the future, when ADOT JS is uploaded to NPM, the source code can be obtained from there
5-
# and this Dockerfile will not need to copy the source code anymore as a workaround.
6-
# Copy Source Code without original package.json
7-
WORKDIR /
8-
COPY tsconfig.base.json ./tsconfig.base.json
4+
# Build the ADOT JS SDK Tarball: aws-aws-distro-opentelemetry-node-autoinstrumentation-x.y.z.tgz
5+
WORKDIR /adot-js-build
6+
COPY . .
7+
RUN npm install
8+
WORKDIR /adot-js-build/aws-distro-opentelemetry-node-autoinstrumentation
9+
RUN npm run compile
10+
RUN npm pack
11+
12+
# Install Tarball build from previous step so that autoinstrumentation.ts can "require" the ADOT JS SDK
913
WORKDIR /operator-build
10-
COPY aws-distro-opentelemetry-node-autoinstrumentation/src ./src/
14+
COPY docker-utils/ .
1115
COPY aws-distro-opentelemetry-node-autoinstrumentation/tsconfig.json ./tsconfig.json
12-
COPY aws-distro-opentelemetry-node-autoinstrumentation/LICENSE ./LICENSE
13-
# ... but also add the required autoinstrumentation.ts and package.json to be consistent with upstream
14-
# https://github.com/open-telemetry/opentelemetry-operator/tree/main/autoinstrumentation/nodejs
15-
COPY docker-utils/autoinstrumentation.ts ./src/autoinstrumentation.ts
16-
COPY docker-utils/package.json ./package.json
17-
16+
RUN cp /adot-js-build/aws-distro-opentelemetry-node-autoinstrumentation/aws-aws-distro-opentelemetry-node-autoinstrumentation-*.tgz ./
17+
RUN npm install aws-aws-distro-opentelemetry-node-autoinstrumentation-$(node -p -e "require('/adot-js-build/aws-distro-opentelemetry-node-autoinstrumentation/package.json').version").tgz
1818
RUN npm install
1919

2020
# Stage 2: Build the cp-utility binary

aws-distro-opentelemetry-node-autoinstrumentation/src/aws-opentelemetry-configurator.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ export class AwsSpanProcessorProvider {
478478
}
479479
}
480480

481-
protected static _registeredExporters = new Map<string, () => SpanExporter>([
481+
protected static _registeredExporters: Map<string, () => SpanExporter> = new Map<string, () => SpanExporter>([
482482
['otlp', () => this.configureOtlp()],
483483
['zipkin', () => new ZipkinExporter()],
484484
['jaeger', () => this.configureJaeger()],

aws-distro-opentelemetry-node-autoinstrumentation/src/aws-span-processing-util.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export class AwsSpanProcessingUtil {
3636
// The current longest command word is DATETIME_INTERVAL_PRECISION at 27 characters.
3737
// If we add a longer keyword to the sql dialect keyword list, need to update the constant below.
3838
static MAX_KEYWORD_LENGTH: number = 27;
39-
static SQL_DIALECT_PATTERN = '^(?:' + AwsSpanProcessingUtil.getDialectKeywords().join('|') + ')\\b';
39+
static SQL_DIALECT_PATTERN: string = '^(?:' + AwsSpanProcessingUtil.getDialectKeywords().join('|') + ')\\b';
4040

4141
static getDialectKeywords(): string[] {
4242
return SQL_DIALECT_KEYWORDS_JSON.keywords;
Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,35 @@
11
{
2-
"extends": "../tsconfig.base",
32
"compilerOptions": {
43
"rootDir": ".",
54
"outDir": "build",
5+
6+
"allowUnreachableCode": false,
7+
"allowUnusedLabels": false,
8+
"declaration": true,
9+
"declarationMap": true,
10+
"forceConsistentCasingInFileNames": true,
11+
"inlineSources": true,
12+
"module": "commonjs",
13+
"noEmitOnError": true,
14+
"noFallthroughCasesInSwitch": true,
15+
"noImplicitOverride": true,
16+
"noImplicitReturns": true,
17+
"noUnusedLocals": true,
18+
"pretty": true,
19+
"sourceMap": true,
20+
"strict": true,
21+
"strictNullChecks": true,
22+
"target": "es2017",
23+
"incremental": true,
24+
"newLine": "LF",
625
// This command allows TypeScript to import `sql_dialect_keywords.json`
726
"resolveJsonModule": true
827
},
928
"include": [
1029
"src/**/*.ts",
1130
"test/**/*.ts"
31+
],
32+
"exclude": [
33+
"node_modules"
1234
]
1335
}

docker-utils/package.json

Lines changed: 1 addition & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -5,87 +5,14 @@
55
"scripts": {
66
"clean": "rimraf build/*",
77
"prepare": "npm run compile",
8-
"create-version": "node -p \"'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts",
9-
"precompile": "npm run create-version",
108
"compile": "tsc -p .",
11-
"postcompile": "copyfiles -f 'build/src/*.js' build/workspace/ && copyfiles -f 'build/src/configuration/*.json' build/workspace/configuration/ && copyfiles -f 'build/src/patches/*.js' build/workspace/patches/ && copyfiles -f 'build/src/sampler/*.js' build/workspace/sampler/ && copyfiles -f 'build/src/patches/aws/services/*.js' build/workspace/patches/aws/services/ && copyfiles -f 'build/src/third-party/otel/aws/services/*.js' build/workspace/third-party/otel/aws/services/ && copyfiles -f 'build/src/configuration/*.json' build/workspace/configuration/ && copyfiles 'node_modules/**' package.json build/workspace/ && npm -C build/workspace prune --omit=dev --no-package-lock"
9+
"postcompile": "copyfiles -f 'aws-aws-distro-opentelemetry-node-autoinstrumentation-*.tgz' build/workspace/ && copyfiles -f 'build/src/**' build/workspace/ && copyfiles 'node_modules/**' package.json build/workspace/ && npm -C build/workspace prune --omit=dev --no-package-lock"
1210
},
1311
"devDependencies": {
1412
"@types/mocha": "7.0.2",
1513
"@types/node": "18.6.5",
1614
"copyfiles": "^2.4.1",
1715
"rimraf": "5.0.5",
1816
"typescript": "4.4.4"
19-
},
20-
"dependencies": {
21-
"@opentelemetry/api": "1.9.0",
22-
"@opentelemetry/auto-instrumentations-node": "0.48.0",
23-
"@opentelemetry/auto-configuration-propagators": "0.2.0",
24-
"@opentelemetry/exporter-metrics-otlp-grpc": "0.52.1",
25-
"@opentelemetry/exporter-metrics-otlp-http": "0.52.1",
26-
"@opentelemetry/instrumentation": "0.52.1",
27-
"@opentelemetry/id-generator-aws-xray": "1.2.2",
28-
"@opentelemetry/propagator-aws-xray": "1.25.1",
29-
"@opentelemetry/core": "1.25.1",
30-
"@opentelemetry/sdk-trace-base": "1.25.1",
31-
"@opentelemetry/semantic-conventions": "1.25.1",
32-
"@opentelemetry/resources": "1.25.1",
33-
"@opentelemetry/resource-detector-aws": "1.5.2",
34-
"@opentelemetry/exporter-trace-otlp-proto": "0.52.1",
35-
"@opentelemetry/exporter-zipkin": "1.25.1",
36-
"@opentelemetry/sdk-metrics": "1.25.1",
37-
"@opentelemetry/sdk-node": "0.52.1",
38-
"@opentelemetry/instrumentation-aws-sdk": "0.43.1"
39-
},
40-
"overrides": {
41-
"@opentelemetry/auto-instrumentations-node": {
42-
"@opentelemetry/instrumentation": "0.52.1",
43-
"@opentelemetry/instrumentation-amqplib": "0.40.0",
44-
"@opentelemetry/instrumentation-aws-lambda": "0.43.0",
45-
"@opentelemetry/instrumentation-aws-sdk": "0.43.1",
46-
"@opentelemetry/instrumentation-bunyan": "0.40.0",
47-
"@opentelemetry/instrumentation-cassandra-driver": "0.40.0",
48-
"@opentelemetry/instrumentation-connect": "0.38.0",
49-
"@opentelemetry/instrumentation-cucumber": "0.8.0",
50-
"@opentelemetry/instrumentation-dataloader": "0.11.0",
51-
"@opentelemetry/instrumentation-dns": "0.38.0",
52-
"@opentelemetry/instrumentation-express": "0.41.1",
53-
"@opentelemetry/instrumentation-fastify": "0.38.0",
54-
"@opentelemetry/instrumentation-fs": "0.14.0",
55-
"@opentelemetry/instrumentation-generic-pool": "0.38.0",
56-
"@opentelemetry/instrumentation-graphql": "0.42.0",
57-
"@opentelemetry/instrumentation-grpc": "0.52.1",
58-
"@opentelemetry/instrumentation-hapi": "0.40.0",
59-
"@opentelemetry/instrumentation-http": "0.52.1",
60-
"@opentelemetry/instrumentation-ioredis": "0.42.0",
61-
"@opentelemetry/instrumentation-kafkajs": "0.2.0",
62-
"@opentelemetry/instrumentation-knex": "0.39.0",
63-
"@opentelemetry/instrumentation-koa": "0.42.0",
64-
"@opentelemetry/instrumentation-lru-memoizer": "0.39.0",
65-
"@opentelemetry/instrumentation-memcached": "0.38.0",
66-
"@opentelemetry/instrumentation-mongodb": "0.46.0",
67-
"@opentelemetry/instrumentation-mongoose": "0.40.0",
68-
"@opentelemetry/instrumentation-mysql": "0.40.0",
69-
"@opentelemetry/instrumentation-mysql2": "0.40.0",
70-
"@opentelemetry/instrumentation-nestjs-core": "0.39.0",
71-
"@opentelemetry/instrumentation-net": "0.38.0",
72-
"@opentelemetry/instrumentation-pg": "0.43.0",
73-
"@opentelemetry/instrumentation-pino": "0.41.0",
74-
"@opentelemetry/instrumentation-redis": "0.41.0",
75-
"@opentelemetry/instrumentation-redis-4": "0.41.0",
76-
"@opentelemetry/instrumentation-restify": "0.40.0",
77-
"@opentelemetry/instrumentation-router": "0.39.0",
78-
"@opentelemetry/instrumentation-socket.io": "0.41.0",
79-
"@opentelemetry/instrumentation-tedious": "0.12.0",
80-
"@opentelemetry/instrumentation-undici": "0.4.0",
81-
"@opentelemetry/instrumentation-winston": "0.39.0",
82-
"@opentelemetry/resource-detector-alibaba-cloud": "0.28.10",
83-
"@opentelemetry/resource-detector-aws": "1.5.2",
84-
"@opentelemetry/resource-detector-azure": "0.2.9",
85-
"@opentelemetry/resource-detector-container": "0.3.11",
86-
"@opentelemetry/resource-detector-gcp": "0.29.10",
87-
"@opentelemetry/resources": "1.25.1",
88-
"@opentelemetry/sdk-node": "0.52.1"
89-
}
9017
}
9118
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
// SPDX-License-Identifier: Apache-2.0
33

4-
require('./register');
4+
require('@aws/aws-distro-opentelemetry-node-autoinstrumentation/register');

eslint.config.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,12 @@ module.exports = {
4141
],
4242
"@typescript-eslint/no-var-requires": "off",
4343
"@typescript-eslint/no-inferrable-types": 0,
44-
"@typescript-eslint/typedef": ["warn", {
45-
"variableDeclaration": true
44+
"@typescript-eslint/typedef": ["error", {
45+
"variableDeclaration": false,
46+
"parameter": true,
47+
"propertyDeclaration": true,
48+
"memberVariableDeclaration": true,
49+
"variableDeclarationIgnoreFunction": true
4650
}],
4751
"@typescript-eslint/no-empty-function": ["off"],
4852
"@typescript-eslint/ban-types": ["warn", {

tsconfig.base.json

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

0 commit comments

Comments
 (0)