Skip to content

Commit 0bb4fa5

Browse files
committed
try adding error paths for sfn describe activity
1 parent ab6d02d commit 0bb4fa5

File tree

5 files changed

+81
-0
lines changed

5 files changed

+81
-0
lines changed

appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/base/AwsSdkBaseTest.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2418,4 +2418,39 @@ protected void doTestStepFunctionsDescribeActivity() throws Exception {
24182418
"arn:aws:states:us-west-2:000000000000:activity:test-activity")));
24192419

24202420
}
2421+
2422+
protected void dotestStepFunctionsDescribeActivityError() throws Exception {
2423+
appClient.get("/sfn/describeactivity/error").aggregate().join();
2424+
var traces = mockCollectorClient.getTraces();
2425+
var metrics = mockCollectorClient.getMetrics(
2426+
Set.of(
2427+
AppSignalsConstants.ERROR_METRIC,
2428+
AppSignalsConstants.FAULT_METRIC,
2429+
AppSignalsConstants.LATENCY_METRIC));
2430+
2431+
var localService = getApplicationOtelServiceName();
2432+
var localOperation = "GET /sfn/describeactivity/error";
2433+
var type = "AWS::StepFunctions::Activity";
2434+
var identifier = "nonexistant-activity";
2435+
var cloudformationIdentifier = "arn:aws:states:us-west-2:000000000000:activity:nonexistent-activity";
2436+
2437+
assertSpanClientAttributes(
2438+
traces,
2439+
stepFunctionsSpanName("DescribeActivity"),
2440+
getStepFunctionsRpcServiceName(),
2441+
localService,
2442+
localOperation,
2443+
getStepFunctionsServiceName(),
2444+
"DescribeActivity",
2445+
type,
2446+
identifier,
2447+
cloudformationIdentifier,
2448+
"error.test",
2449+
8080,
2450+
"http://error.test:8080",
2451+
400,
2452+
List.of(
2453+
assertAttribute(
2454+
SemanticConventionsConstants.AWS_ACTIVITY_ARN, "arn:aws:states:us-west-2:000000000000:activity:nonexistent-activity")));
2455+
}
24212456
}

appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v1/AwsSdkV1Test.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,4 +270,9 @@ void testStepFunctionsDescribeStateMachine() throws Exception {
270270
void testStepFunctionsDescribeActivity() throws Exception {
271271
doTestStepFunctionsDescribeActivity();
272272
}
273+
274+
@Test
275+
void testStepFunctionsDescribeActivityError() throws Exception {
276+
dotestStepFunctionsDescribeActivityError();
277+
}
273278
}

appsignals-tests/contract-tests/src/test/java/software/amazon/opentelemetry/appsignals/test/awssdk/v2/AwsSdkV2Test.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,4 +275,9 @@ void testStepFunctionsDescribeStateMachine() throws Exception {
275275
void testStepFunctionsDescribeActivity() throws Exception {
276276
doTestStepFunctionsDescribeActivity();
277277
}
278+
279+
@Test
280+
void testStepFunctionsDescribeActivityError() throws Exception {
281+
dotestStepFunctionsDescribeActivityError();
282+
}
278283
}

appsignals-tests/images/aws-sdk/aws-sdk-v1/src/main/java/com/amazon/sampleapp/App.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -821,5 +821,21 @@ private static void setupStepFunctions() {
821821
stepFunctionsClient.describeActivity(describeRequest);
822822
return "";
823823
});
824+
825+
get(
826+
"/sfn/describeactivity/error",
827+
(req, res) -> {
828+
setMainStatus(400);
829+
var errorClient = AWSStepFunctionsClient.builder().withCredentials(CREDENTIALS_PROVIDER)
830+
.withEndpointConfiguration(new EndpointConfiguration("http://error.test:8080", Regions.US_WEST_2.getName()))
831+
.build();
832+
try {
833+
var describeRequest = new DescribeActivityRequest().withActivityArn("arn:aws:states:us-west-2:000000000000:activity:nonexistent-activity");
834+
errorClient.describeActivity(describeRequest);
835+
} catch (Exception e) {
836+
logger.info("Error caught in Sample App", e);
837+
}
838+
return "";
839+
});
824840
}
825841
}

appsignals-tests/images/aws-sdk/aws-sdk-v2/src/main/java/com/amazon/sampleapp/App.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -852,5 +852,25 @@ private static void setupStepFunctions() {
852852
sfnClient.describeActivity(describeRequest);
853853
return "";
854854
});
855+
856+
get(
857+
"/sfn/describeactivity/error",
858+
(req, res) -> {
859+
setMainStatus(400);
860+
var errorClient = SfnClient.builder()
861+
.endpointOverride(URI.create("http://error.test:8080"))
862+
.credentialsProvider(CREDENTIALS_PROVIDER)
863+
.build();
864+
865+
try {
866+
var describeRequest = DescribeActivityRequest.builder()
867+
.activityArn("arn:aws:states:us-west-2:000000000000:activity:nonexistent-activity")
868+
.build();
869+
errorClient.describeActivity(describeRequest);
870+
} catch (Exception e) {
871+
logger.error("Error caught in Sample App", e);
872+
}
873+
return "";
874+
});
855875
}
856876
}

0 commit comments

Comments
 (0)