Chapter 22. AWS CloudWatch Component Available as of Camel version 2.11 The CW component allows messages to be sent to an Amazon CloudWatch metrics. The implementation of the Amazon API is provided by the AWS SDK . Prerequisites You must have a valid Amazon Web Services developer account, and be signed up to use Amazon CloudWatch. More information are available at Amazon CloudWatch . 22.1. URI Format aws-cw://namespace[?options] The metrics will be created if they don't already exists. You can append query options to the URI in the following format, ?options=value&option2=value&... 22.2. URI Options The AWS CloudWatch component supports 5 options, which are listed below. Name Description Default Type configuration (advanced) The AWS CW default configuration CwConfiguration accessKey (producer) Amazon AWS Access Key String secretKey (producer) Amazon AWS Secret Key String region (producer) The region in which CW client needs to work String resolveProperty Placeholders (advanced) Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. true boolean The AWS CloudWatch endpoint is configured using URI syntax: with the following path and query parameters: 22.2.1. Path Parameters (1 parameters): Name Description Default Type namespace Required The metric namespace String 22.2.2. Query Parameters (11 parameters): Name Description Default Type amazonCwClient (producer) To use the AmazonCloudWatch as the client AmazonCloudWatch name (producer) The metric name String proxyHost (producer) To define a proxy host when instantiating the CW client String proxyPort (producer) To define a proxy port when instantiating the CW client Integer region (producer) The region in which CW client needs to work String timestamp (producer) The metric timestamp Date unit (producer) The metric unit String value (producer) The metric value Double synchronous (advanced) Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). false boolean accessKey (security) Amazon AWS Access Key String secretKey (security) Amazon AWS Secret Key String 22.3. Spring Boot Auto-Configuration The component supports 16 options, which are listed below. Name Description Default Type camel.component.aws-cw.access-key Amazon AWS Access Key String camel.component.aws-cw.configuration.access-key Amazon AWS Access Key String camel.component.aws-cw.configuration.amazon-cw-client To use the AmazonCloudWatch as the client AmazonCloudWatch camel.component.aws-cw.configuration.name The metric name String camel.component.aws-cw.configuration.namespace The metric namespace String camel.component.aws-cw.configuration.proxy-host To define a proxy host when instantiating the CW client String camel.component.aws-cw.configuration.proxy-port To define a proxy port when instantiating the CW client Integer camel.component.aws-cw.configuration.region The region in which CW client needs to work String camel.component.aws-cw.configuration.secret-key Amazon AWS Secret Key String camel.component.aws-cw.configuration.timestamp The metric timestamp Date camel.component.aws-cw.configuration.unit The metric unit String camel.component.aws-cw.configuration.value The metric value Double camel.component.aws-cw.enabled Enable aws-cw component true Boolean camel.component.aws-cw.region The region in which CW client needs to work String camel.component.aws-cw.resolve-property-placeholders Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. true Boolean camel.component.aws-cw.secret-key Amazon AWS Secret Key String Required CW component options You have to provide the amazonCwClient in the Registry or your accessKey and secretKey to access the Amazon's CloudWatch . 22.4. Usage 22.4.1. Message headers evaluated by the CW producer Header Type Description CamelAwsCwMetricName String The Amazon CW metric name. CamelAwsCwMetricValue Double The Amazon CW metric value. CamelAwsCwMetricUnit String The Amazon CW metric unit. CamelAwsCwMetricNamespace String The Amazon CW metric namespace. CamelAwsCwMetricTimestamp Date The Amazon CW metric timestamp. CamelAwsCwMetricDimensionName String Camel 2.12: The Amazon CW metric dimension name. CamelAwsCwMetricDimensionValue String Camel 2.12: The Amazon CW metric dimension value. CamelAwsCwMetricDimensions Map<String, String> Camel 2.12: A map of dimension names and dimension values. 22.4.2. Advanced AmazonCloudWatch configuration If you need more control over the AmazonCloudWatch instance configuration you can create your own instance and refer to it from the URI: from("direct:start") .to("aws-cw://namepsace?amazonCwClient=#client"); The #client refers to a AmazonCloudWatch in the Registry. For example if your Camel Application is running behind a firewall: AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey"); ClientConfiguration clientConfiguration = new ClientConfiguration(); clientConfiguration.setProxyHost("http://myProxyHost"); clientConfiguration.setProxyPort(8080); AmazonCloudWatch client = new AmazonCloudWatchClient(awsCredentials, clientConfiguration); registry.bind("client", client); 22.5. Dependencies Maven users will need to add the following dependency to their pom.xml. pom.xml <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-aws</artifactId> <version>USD{camel-version}</version> </dependency> where USD{camel-version } must be replaced by the actual version of Camel (2.10 or higher). 22.6. See Also Configuring Camel Component Endpoint Getting Started AWS Component

Commands:
aws-cw://namespace[?options]
aws-cw:namespace
from("direct:start") .to("aws-cw://namepsace?amazonCwClient=#client");
AWSCredentials awsCredentials = new BasicAWSCredentials("myAccessKey", "mySecretKey"); ClientConfiguration clientConfiguration = new ClientConfiguration(); clientConfiguration.setProxyHost("http://myProxyHost"); clientConfiguration.setProxyPort(8080); AmazonCloudWatch client = new AmazonCloudWatchClient(awsCredentials, clientConfiguration); registry.bind("client", client);
<dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-aws</artifactId> <version>USD{camel-version}</version> </dependency>