55
66package io .opentelemetry .contrib .aws .resource ;
77
8+ import static io .opentelemetry .semconv .incubating .AwsIncubatingAttributes .AWS_ECS_CONTAINER_ARN ;
9+ import static io .opentelemetry .semconv .incubating .AwsIncubatingAttributes .AWS_ECS_LAUNCHTYPE ;
10+ import static io .opentelemetry .semconv .incubating .AwsIncubatingAttributes .AWS_ECS_TASK_ARN ;
11+ import static io .opentelemetry .semconv .incubating .AwsIncubatingAttributes .AWS_ECS_TASK_FAMILY ;
12+ import static io .opentelemetry .semconv .incubating .AwsIncubatingAttributes .AWS_ECS_TASK_REVISION ;
13+ import static io .opentelemetry .semconv .incubating .AwsIncubatingAttributes .AWS_LOG_GROUP_ARNS ;
14+ import static io .opentelemetry .semconv .incubating .AwsIncubatingAttributes .AWS_LOG_GROUP_NAMES ;
15+ import static io .opentelemetry .semconv .incubating .AwsIncubatingAttributes .AWS_LOG_STREAM_ARNS ;
16+ import static io .opentelemetry .semconv .incubating .AwsIncubatingAttributes .AWS_LOG_STREAM_NAMES ;
17+ import static io .opentelemetry .semconv .incubating .CloudIncubatingAttributes .CLOUD_ACCOUNT_ID ;
18+ import static io .opentelemetry .semconv .incubating .CloudIncubatingAttributes .CLOUD_AVAILABILITY_ZONE ;
19+ import static io .opentelemetry .semconv .incubating .CloudIncubatingAttributes .CLOUD_PLATFORM ;
20+ import static io .opentelemetry .semconv .incubating .CloudIncubatingAttributes .CLOUD_PROVIDER ;
21+ import static io .opentelemetry .semconv .incubating .CloudIncubatingAttributes .CLOUD_REGION ;
22+ import static io .opentelemetry .semconv .incubating .CloudIncubatingAttributes .CLOUD_RESOURCE_ID ;
23+ import static io .opentelemetry .semconv .incubating .CloudIncubatingAttributes .CloudPlatformValues .AWS_ECS ;
24+ import static io .opentelemetry .semconv .incubating .CloudIncubatingAttributes .CloudProviderValues .AWS ;
25+ import static io .opentelemetry .semconv .incubating .ContainerIncubatingAttributes .CONTAINER_ID ;
26+ import static io .opentelemetry .semconv .incubating .ContainerIncubatingAttributes .CONTAINER_IMAGE_NAME ;
27+ import static io .opentelemetry .semconv .incubating .ContainerIncubatingAttributes .CONTAINER_NAME ;
28+
829import com .fasterxml .jackson .core .JsonFactory ;
930import com .fasterxml .jackson .core .JsonParser ;
1031import com .fasterxml .jackson .core .JsonToken ;
1132import io .opentelemetry .api .common .Attributes ;
1233import io .opentelemetry .api .common .AttributesBuilder ;
1334import io .opentelemetry .sdk .resources .Resource ;
14- import io .opentelemetry .semconv .ResourceAttributes ;
35+ import io .opentelemetry .semconv .SchemaUrls ;
1536import java .io .IOException ;
1637import java .util .Collections ;
1738import java .util .Locale ;
@@ -58,7 +79,7 @@ static Resource buildResource(Map<String, String> sysEnv, SimpleHttpClient httpC
5879 // For TaskARN, Family, Revision.
5980 // May put the same attribute twice but that shouldn't matter.
6081 fetchMetadata (httpClient , ecsMetadataUrl + "/task" , attrBuilders );
61- return Resource .create (attrBuilders .build (), ResourceAttributes . SCHEMA_URL );
82+ return Resource .create (attrBuilders .build (), SchemaUrls . V1_25_0 );
6283 }
6384 // Not running on ECS
6485 return Resource .empty ();
@@ -70,9 +91,8 @@ static void fetchMetadata(
7091 if (json .isEmpty ()) {
7192 return ;
7293 }
73- attrBuilders .put (ResourceAttributes .CLOUD_PROVIDER , ResourceAttributes .CloudProviderValues .AWS );
74- attrBuilders .put (
75- ResourceAttributes .CLOUD_PLATFORM , ResourceAttributes .CloudPlatformValues .AWS_ECS );
94+ attrBuilders .put (CLOUD_PROVIDER , AWS );
95+ attrBuilders .put (CLOUD_PLATFORM , AWS_ECS );
7696 try (JsonParser parser = JSON_FACTORY .createParser (json )) {
7797 parser .nextToken ();
7898 LogArnBuilder logArnBuilder = new LogArnBuilder ();
@@ -82,17 +102,14 @@ static void fetchMetadata(
82102 .getLogGroupArn ()
83103 .ifPresent (
84104 logGroupArn -> {
85- attrBuilders .put (
86- ResourceAttributes .AWS_LOG_GROUP_ARNS , Collections .singletonList (logGroupArn ));
105+ attrBuilders .put (AWS_LOG_GROUP_ARNS , Collections .singletonList (logGroupArn ));
87106 });
88107
89108 logArnBuilder
90109 .getLogStreamArn ()
91110 .ifPresent (
92111 logStreamArn -> {
93- attrBuilders .put (
94- ResourceAttributes .AWS_LOG_STREAM_ARNS ,
95- Collections .singletonList (logStreamArn ));
112+ attrBuilders .put (AWS_LOG_STREAM_ARNS , Collections .singletonList (logStreamArn ));
96113 });
97114 } catch (IOException e ) {
98115 logger .log (Level .WARNING , "Can't get ECS metadata" , e );
@@ -151,26 +168,28 @@ static void parseResponse(
151168 String value = parser .nextTextValue ();
152169 switch (parser .currentName ()) {
153170 case "AvailabilityZone" :
154- attrBuilders .put (ResourceAttributes . CLOUD_AVAILABILITY_ZONE , value );
171+ attrBuilders .put (CLOUD_AVAILABILITY_ZONE , value );
155172 break ;
156173 case "DockerId" :
157- attrBuilders .put (ResourceAttributes . CONTAINER_ID , value );
174+ attrBuilders .put (CONTAINER_ID , value );
158175 break ;
159176 case "DockerName" :
160- attrBuilders .put (ResourceAttributes . CONTAINER_NAME , value );
177+ attrBuilders .put (CONTAINER_NAME , value );
161178 break ;
162179 case "ContainerARN" :
163180 arn = value ;
164- attrBuilders .put (ResourceAttributes . AWS_ECS_CONTAINER_ARN , value );
165- attrBuilders .put (ResourceAttributes . CLOUD_RESOURCE_ID , value );
181+ attrBuilders .put (AWS_ECS_CONTAINER_ARN , value );
182+ attrBuilders .put (CLOUD_RESOURCE_ID , value );
166183 logArnBuilder .setContainerArn (value );
167184 break ;
168185 case "Image" :
169186 DockerImage parsedImage = DockerImage .parse (value );
170187 if (parsedImage != null ) {
171- attrBuilders .put (ResourceAttributes . CONTAINER_IMAGE_NAME , parsedImage .getRepository ());
188+ attrBuilders .put (CONTAINER_IMAGE_NAME , parsedImage .getRepository ());
172189 // TODO: CONTAINER_IMAGE_TAG has been replaced with CONTAINER_IMAGE_TAGS
173- attrBuilders .put (ResourceAttributes .CONTAINER_IMAGE_TAG , parsedImage .getTag ());
190+ attrBuilders .put (
191+ io .opentelemetry .semconv .ResourceAttributes .CONTAINER_IMAGE_TAG ,
192+ parsedImage .getTag ());
174193 }
175194 break ;
176195 case "ImageID" :
@@ -181,38 +200,37 @@ static void parseResponse(
181200 parseResponse (parser , attrBuilders , logArnBuilder );
182201 break ;
183202 case "awslogs-group" :
184- attrBuilders .put (ResourceAttributes . AWS_LOG_GROUP_NAMES , value );
203+ attrBuilders .put (AWS_LOG_GROUP_NAMES , value );
185204 logArnBuilder .setLogGroupName (value );
186205 break ;
187206 case "awslogs-stream" :
188- attrBuilders .put (ResourceAttributes . AWS_LOG_STREAM_NAMES , value );
207+ attrBuilders .put (AWS_LOG_STREAM_NAMES , value );
189208 logArnBuilder .setLogStreamName (value );
190209 break ;
191210 case "awslogs-region" :
192211 logArnBuilder .setRegion (value );
193212 break ;
194213 case "TaskARN" :
195214 arn = value ;
196- attrBuilders .put (ResourceAttributes . AWS_ECS_TASK_ARN , value );
215+ attrBuilders .put (AWS_ECS_TASK_ARN , value );
197216 break ;
198217 case "LaunchType" :
199- attrBuilders .put (ResourceAttributes . AWS_ECS_LAUNCHTYPE , value .toLowerCase (Locale .ROOT ));
218+ attrBuilders .put (AWS_ECS_LAUNCHTYPE , value .toLowerCase (Locale .ROOT ));
200219 break ;
201220 case "Family" :
202- attrBuilders .put (ResourceAttributes . AWS_ECS_TASK_FAMILY , value );
221+ attrBuilders .put (AWS_ECS_TASK_FAMILY , value );
203222 break ;
204223 case "Revision" :
205- attrBuilders .put (ResourceAttributes . AWS_ECS_TASK_REVISION , value );
224+ attrBuilders .put (AWS_ECS_TASK_REVISION , value );
206225 break ;
207226 default :
208227 parser .skipChildren ();
209228 break ;
210229 }
211230 }
212231
213- getRegion (arn ).ifPresent (region -> attrBuilders .put (ResourceAttributes .CLOUD_REGION , region ));
214- getAccountId (arn )
215- .ifPresent (accountId -> attrBuilders .put (ResourceAttributes .CLOUD_ACCOUNT_ID , accountId ));
232+ getRegion (arn ).ifPresent (region -> attrBuilders .put (CLOUD_REGION , region ));
233+ getAccountId (arn ).ifPresent (accountId -> attrBuilders .put (CLOUD_ACCOUNT_ID , accountId ));
216234 }
217235
218236 private EcsResource () {}
0 commit comments