@@ -23,18 +23,30 @@ describe('Register', function () {
23
23
NodeSDK . prototype . start = originalPrototypeStart ;
24
24
} ) ;
25
25
26
- it ( 'Tests AWS Default Environment Variables' , ( ) => {
27
- this . beforeEach ( ( ) => {
26
+ describe ( 'Tests AWS Default Environment Variables' , ( ) => {
27
+ beforeEach ( ( ) => {
28
28
delete process . env . OTEL_EXPORTER_OTLP_PROTOCOL ;
29
29
delete process . env . OTEL_PROPAGATORS ;
30
30
delete process . env . OTEL_NODE_DISABLED_INSTRUMENTATIONS ;
31
+
32
+ delete process . env . AWS_REGION ;
33
+ delete process . env . AGENT_OBSERVABILITY_ENABLED ;
34
+ delete process . env . OTEL_EXPORTER_OTLP_TRACES_ENDPOINT ;
35
+ delete process . env . OTEL_EXPORTER_OTLP_LOGS_ENDPOINT ;
36
+ delete process . env . OTEL_TRACES_EXPORTER ;
37
+ delete process . env . OTEL_LOGS_EXPORTER ;
38
+ delete process . env . OTEL_METRICS_EXPORTER ;
39
+
40
+ delete process . env . OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT ;
41
+ delete process . env . OTEL_TRACES_SAMPLER ;
42
+ delete process . env . OTEL_AWS_APPLICATION_SIGNALS_ENABLED ;
31
43
} ) ;
32
44
33
45
it ( 'sets AWS Default Environment Variables' , ( ) => {
34
46
setAwsDefaultEnvironmentVariables ( ) ;
35
47
expect ( process . env . OTEL_EXPORTER_OTLP_PROTOCOL ) . toEqual ( 'http/protobuf' ) ;
36
48
expect ( process . env . OTEL_PROPAGATORS ) . toEqual ( 'xray,tracecontext' ) ;
37
- expect ( process . env . OTEL_NODE_DISABLED_INSTRUMENTATIONS ) . toEqual ( 'fs' ) ;
49
+ expect ( process . env . OTEL_NODE_DISABLED_INSTRUMENTATIONS ) . toEqual ( 'fs,dns ' ) ;
38
50
} ) ;
39
51
40
52
it ( 'Does not set AWS Default Environment Variables' , ( ) => {
@@ -46,6 +58,71 @@ describe('Register', function () {
46
58
expect ( process . env . OTEL_PROPAGATORS ) . toEqual ( 'customPropagators' ) ;
47
59
expect ( process . env . OTEL_NODE_DISABLED_INSTRUMENTATIONS ) . toEqual ( 'customDisabledInstrumentations' ) ;
48
60
} ) ;
61
+
62
+ it ( 'Configures with AgentObservabilityEnabled with unset region' , ( ) => {
63
+ process . env . AGENT_OBSERVABILITY_ENABLED = 'true' ;
64
+
65
+ setAwsDefaultEnvironmentVariables ( ) ;
66
+
67
+ expect ( process . env . OTEL_EXPORTER_OTLP_TRACES_ENDPOINT ) . toBeUndefined ( ) ;
68
+ expect ( process . env . OTEL_EXPORTER_OTLP_LOGS_ENDPOINT ) . toBeUndefined ( ) ;
69
+ } ) ;
70
+
71
+ it ( 'Configures with AgentObservabilityEnabled with set region' , ( ) => {
72
+ process . env . AWS_REGION = 'us-west-2' ;
73
+ process . env . AGENT_OBSERVABILITY_ENABLED = 'true' ;
74
+
75
+ setAwsDefaultEnvironmentVariables ( ) ;
76
+
77
+ expect ( process . env . OTEL_EXPORTER_OTLP_TRACES_ENDPOINT ) . toEqual ( 'https://xray.us-west-2.amazonaws.com/v1/traces' ) ;
78
+ expect ( process . env . OTEL_EXPORTER_OTLP_LOGS_ENDPOINT ) . toEqual ( 'https://logs.us-west-2.amazonaws.com/v1/logs' ) ;
79
+ } ) ;
80
+
81
+ it ( 'Configures defaults when AgentObservabilityEnabled is true' , ( ) => {
82
+ process . env . AWS_REGION = 'us-east-1' ;
83
+ process . env . AGENT_OBSERVABILITY_ENABLED = 'true' ;
84
+
85
+ setAwsDefaultEnvironmentVariables ( ) ;
86
+
87
+ expect ( process . env . OTEL_TRACES_EXPORTER ) . toEqual ( 'otlp' ) ;
88
+ expect ( process . env . OTEL_LOGS_EXPORTER ) . toEqual ( 'otlp' ) ;
89
+ expect ( process . env . OTEL_METRICS_EXPORTER ) . toEqual ( 'awsemf' ) ;
90
+ expect ( process . env . OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT ) . toEqual ( 'true' ) ;
91
+ expect ( process . env . OTEL_TRACES_SAMPLER ) . toEqual ( 'parentbased_always_on' ) ;
92
+ expect ( process . env . OTEL_NODE_DISABLED_INSTRUMENTATIONS ) . toEqual (
93
+ 'amqplib,aws-lambda,aws-sdk,bunyan,cassandra-driver,connect,cucumber,dataloader,dns,express,fastify,fs,generic-pool,graphql,grpc,hapi,http,ioredis,kafkajs,knex,koa,lru-memoizer,memcached,mongodb,mongoose,mysql2,mysql,nestjs-core,net,pg,pino,redis,redis-4,restify,router,socket.io,tedious,undici,winston'
94
+ ) ;
95
+ expect ( process . env . OTEL_AWS_APPLICATION_SIGNALS_ENABLED ) . toEqual ( 'false' ) ;
96
+ expect ( process . env . OTEL_EXPORTER_OTLP_TRACES_ENDPOINT ) . toEqual ( 'https://xray.us-east-1.amazonaws.com/v1/traces' ) ;
97
+ expect ( process . env . OTEL_EXPORTER_OTLP_LOGS_ENDPOINT ) . toEqual ( 'https://logs.us-east-1.amazonaws.com/v1/logs' ) ;
98
+ } ) ;
99
+
100
+ it ( 'Respects user configuration when AgentObservabilityEnabled is false' , ( ) => {
101
+ process . env . AWS_REGION = 'us-east-1' ;
102
+ delete process . env . AGENT_OBSERVABILITY_ENABLED ;
103
+ process . env . OTEL_TRACES_SAMPLER = 'traceidratio' ;
104
+
105
+ setAwsDefaultEnvironmentVariables ( ) ;
106
+ expect ( process . env . OTEL_TRACES_SAMPLER ) . toEqual ( 'traceidratio' ) ;
107
+ expect ( process . env . OTEL_NODE_DISABLED_INSTRUMENTATIONS ) . toEqual ( 'fs,dns' ) ;
108
+ expect ( process . env . OTEL_AWS_APPLICATION_SIGNALS_ENABLED ) . toBeUndefined ( ) ;
109
+ } ) ;
110
+
111
+ it ( 'Respects user configuration when AgentObservabilityEnabled is true' , ( ) => {
112
+ // Enable agent observability
113
+ process . env . AGENT_OBSERVABILITY_ENABLED = 'true' ;
114
+
115
+ // Set custom values for some environment variables
116
+ process . env . OTEL_TRACES_SAMPLER = 'traceidratio' ;
117
+ process . env . OTEL_NODE_DISABLED_INSTRUMENTATIONS = 'a,b,c,d' ;
118
+ process . env . OTEL_AWS_APPLICATION_SIGNALS_ENABLED = 'true' ;
119
+
120
+ setAwsDefaultEnvironmentVariables ( ) ;
121
+
122
+ expect ( process . env . OTEL_TRACES_SAMPLER ) . toEqual ( 'traceidratio' ) ;
123
+ expect ( process . env . OTEL_NODE_DISABLED_INSTRUMENTATIONS ) . toEqual ( 'a,b,c,d' ) ;
124
+ expect ( process . env . OTEL_AWS_APPLICATION_SIGNALS_ENABLED ) . toEqual ( 'true' ) ;
125
+ } ) ;
49
126
} ) ;
50
127
51
128
it ( 'can load auto instrumentation from command line' , ( ) => {
@@ -89,7 +166,7 @@ describe('Register', function () {
89
166
) ;
90
167
91
168
// eslint-disable-next-line @typescript-eslint/typedef
92
- const packageJson = require ( './../../ package.json' ) ;
169
+ const packageJson = require ( './../package.json' ) ;
93
170
const DISTRO_VERSION : string = packageJson . version ;
94
171
assert . ok (
95
172
proc . stdout . includes ( `'telemetry.auto.version': '${ DISTRO_VERSION } -aws'` ) ,
0 commit comments