@@ -23,18 +23,30 @@ describe('Register', function () {
2323 NodeSDK . prototype . start = originalPrototypeStart ;
2424 } ) ;
2525
26- it ( 'Tests AWS Default Environment Variables' , ( ) => {
27- this . beforeEach ( ( ) => {
26+ describe ( 'Tests AWS Default Environment Variables' , ( ) => {
27+ beforeEach ( ( ) => {
2828 delete process . env . OTEL_EXPORTER_OTLP_PROTOCOL ;
2929 delete process . env . OTEL_PROPAGATORS ;
3030 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 ;
3143 } ) ;
3244
3345 it ( 'sets AWS Default Environment Variables' , ( ) => {
3446 setAwsDefaultEnvironmentVariables ( ) ;
3547 expect ( process . env . OTEL_EXPORTER_OTLP_PROTOCOL ) . toEqual ( 'http/protobuf' ) ;
3648 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 ' ) ;
3850 } ) ;
3951
4052 it ( 'Does not set AWS Default Environment Variables' , ( ) => {
@@ -46,6 +58,71 @@ describe('Register', function () {
4658 expect ( process . env . OTEL_PROPAGATORS ) . toEqual ( 'customPropagators' ) ;
4759 expect ( process . env . OTEL_NODE_DISABLED_INSTRUMENTATIONS ) . toEqual ( 'customDisabledInstrumentations' ) ;
4860 } ) ;
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+ } ) ;
49126 } ) ;
50127
51128 it ( 'can load auto instrumentation from command line' , ( ) => {
@@ -89,7 +166,7 @@ describe('Register', function () {
89166 ) ;
90167
91168 // eslint-disable-next-line @typescript-eslint/typedef
92- const packageJson = require ( './../../ package.json' ) ;
169+ const packageJson = require ( './../package.json' ) ;
93170 const DISTRO_VERSION : string = packageJson . version ;
94171 assert . ok (
95172 proc . stdout . includes ( `'telemetry.auto.version': '${ DISTRO_VERSION } -aws'` ) ,
0 commit comments