1616
1717import * as assert from 'assert' ;
1818import {
19- assertCloudResource ,
2019 assertEmptyResource ,
2120} from '@opentelemetry/contrib-test-utils' ;
21+ import {
22+ ATTR_CLOUD_PROVIDER ,
23+ ATTR_CLOUD_PLATFORM ,
24+ ATTR_CLOUD_REGION ,
25+ ATTR_FAAS_NAME ,
26+ ATTR_FAAS_VERSION ,
27+ ATTR_FAAS_INSTANCE ,
28+ ATTR_FAAS_MAX_MEMORY ,
29+ ATTR_AWS_LOG_GROUP_NAMES ,
30+ CLOUD_PROVIDER_VALUE_AWS ,
31+ CLOUD_PLATFORM_VALUE_AWS_LAMBDA ,
32+ } from '@opentelemetry/semantic-conventions/incubating' ;
2233
2334import { awsLambdaDetectorSync } from '../../src' ;
2435
@@ -35,25 +46,40 @@ describe('awsLambdaDetectorSync', () => {
3546
3647 describe ( 'on lambda' , ( ) => {
3748 it ( 'fills resource' , async ( ) => {
49+ process . env . AWS_EXECUTION_ENV = 'AWS_Lambda_nodejs22.x' ;
50+ process . env . AWS_REGION = 'us-east-1' ;
3851 process . env . AWS_LAMBDA_FUNCTION_NAME = 'name' ;
3952 process . env . AWS_LAMBDA_FUNCTION_VERSION = 'v1' ;
40- process . env . AWS_REGION = 'us-east-1' ;
53+ process . env . AWS_LAMBDA_FUNCTION_MEMORY_SIZE = '128' ;
54+ process . env . AWS_LAMBDA_LOG_GROUP_NAME = '/aws/lambda/name' ;
55+ process . env . AWS_LAMBDA_LOG_STREAM_NAME = '2024/03/14/[$LATEST]123456' ;
4156
4257 const resource = awsLambdaDetectorSync . detect ( ) ;
4358
44- assertCloudResource ( resource , {
45- provider : 'aws' ,
46- region : 'us-east-1' ,
47- } ) ;
48-
49- assert . strictEqual ( resource . attributes [ 'faas.name' ] , 'name' ) ;
50- assert . strictEqual ( resource . attributes [ 'faas.version' ] , 'v1' ) ;
59+ assert . strictEqual ( resource . attributes [ ATTR_CLOUD_PROVIDER ] , CLOUD_PROVIDER_VALUE_AWS ) ;
60+ assert . strictEqual ( resource . attributes [ ATTR_CLOUD_PLATFORM ] , CLOUD_PLATFORM_VALUE_AWS_LAMBDA ) ;
61+ assert . strictEqual ( resource . attributes [ ATTR_CLOUD_REGION ] , 'us-east-1' ) ;
62+ assert . strictEqual ( resource . attributes [ ATTR_FAAS_NAME ] , 'name' ) ;
63+ assert . strictEqual ( resource . attributes [ ATTR_FAAS_VERSION ] , 'v1' ) ;
64+ assert . strictEqual ( resource . attributes [ ATTR_FAAS_INSTANCE ] , '2024/03/14/[$LATEST]123456' ) ;
65+ assert . strictEqual ( resource . attributes [ ATTR_FAAS_MAX_MEMORY ] , 128 * 1024 * 1024 ) ;
66+ assert . deepStrictEqual ( resource . attributes [ ATTR_AWS_LOG_GROUP_NAMES ] , [ '/aws/lambda/name' ] ) ;
5167 } ) ;
5268 } ) ;
5369
5470 describe ( 'not on lambda' , ( ) => {
55- it ( 'returns empty resource' , async ( ) => {
56- process . env . AWS_LAMBDA_FUNCTION_VERSION = 'v1' ;
71+ it ( 'returns empty resource if AWS_EXECUTION_ENV is not set' , async ( ) => {
72+ process . env . AWS_LAMBDA_FUNCTION_NAME = 'name' ;
73+ process . env . AWS_REGION = 'us-east-1' ;
74+
75+ const resource = awsLambdaDetectorSync . detect ( ) ;
76+
77+ assertEmptyResource ( resource ) ;
78+ } ) ;
79+
80+ it ( 'returns empty resource if AWS_EXECUTION_ENV is not Lambda' , async ( ) => {
81+ process . env . AWS_EXECUTION_ENV = 'AWS_EC2' ;
82+ process . env . AWS_LAMBDA_FUNCTION_NAME = 'name' ;
5783 process . env . AWS_REGION = 'us-east-1' ;
5884
5985 const resource = awsLambdaDetectorSync . detect ( ) ;
0 commit comments