You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2022/10/24 08:10:14 UTC

[camel] 01/03: Camel AWS2 Kinesis - For HealthCheck use AwsServiceException and set service.error.code and service.status.code

This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 9bb04a988937d0223a03e0f11b82d59633d80ac6
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Oct 21 18:43:04 2022 +0200

    Camel AWS2 Kinesis - For HealthCheck use AwsServiceException and set service.error.code and service.status.code
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 .../component/aws2/kinesis/Kinesis2ConsumerHealthCheck.java    | 10 ++++++++--
 .../java/org/apache/camel/impl/health/AbstractHealthCheck.java |  4 ++++
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/components/camel-aws/camel-aws2-kinesis/src/main/java/org/apache/camel/component/aws2/kinesis/Kinesis2ConsumerHealthCheck.java b/components/camel-aws/camel-aws2-kinesis/src/main/java/org/apache/camel/component/aws2/kinesis/Kinesis2ConsumerHealthCheck.java
index 985704d7d20..f866ccabe1b 100644
--- a/components/camel-aws/camel-aws2-kinesis/src/main/java/org/apache/camel/component/aws2/kinesis/Kinesis2ConsumerHealthCheck.java
+++ b/components/camel-aws/camel-aws2-kinesis/src/main/java/org/apache/camel/component/aws2/kinesis/Kinesis2ConsumerHealthCheck.java
@@ -23,7 +23,7 @@ import org.apache.camel.impl.health.AbstractHealthCheck;
 import org.apache.camel.util.ObjectHelper;
 import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
 import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
-import software.amazon.awssdk.core.exception.SdkClientException;
+import software.amazon.awssdk.awscore.exception.AwsServiceException;
 import software.amazon.awssdk.regions.Region;
 import software.amazon.awssdk.services.kinesis.KinesisClient;
 import software.amazon.awssdk.services.kinesis.KinesisClientBuilder;
@@ -69,9 +69,15 @@ public class Kinesis2ConsumerHealthCheck extends AbstractHealthCheck {
                 client = clientBuilder.region(Region.of(configuration.getRegion())).build();
             }
             client.listStreams();
-        } catch (SdkClientException e) {
+        } catch (AwsServiceException e) {
             builder.message(e.getMessage());
             builder.error(e);
+            if (ObjectHelper.isNotEmpty(e.statusCode())) {
+                builder.detail(SERVICE_STATUS_CODE, e.statusCode());
+            }
+            if (ObjectHelper.isNotEmpty(e.awsErrorDetails().errorCode())) {
+                builder.detail(SERVICE_ERROR_CODE, e.awsErrorDetails().errorCode());
+            }
             builder.down();
             return;
 
diff --git a/core/camel-health/src/main/java/org/apache/camel/impl/health/AbstractHealthCheck.java b/core/camel-health/src/main/java/org/apache/camel/impl/health/AbstractHealthCheck.java
index 654c47e2e83..305c0f4b45e 100644
--- a/core/camel-health/src/main/java/org/apache/camel/impl/health/AbstractHealthCheck.java
+++ b/core/camel-health/src/main/java/org/apache/camel/impl/health/AbstractHealthCheck.java
@@ -47,6 +47,10 @@ public abstract class AbstractHealthCheck implements HealthCheck, CamelContextAw
     private final String id;
     private final ConcurrentMap<String, Object> meta;
 
+    public static final String SERVICE_STATUS_CODE = "service.status.code";
+
+    public static final String SERVICE_ERROR_CODE = "service.error.code";
+
     protected AbstractHealthCheck(String id) {
         this(null, id, null);
     }