*Available as of Camel 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. |
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&...
| Name | Default Value | Context | Description |
|---|---|---|---|
| amazonCwClient | null
|
Producer | Reference to a com.amazonaws.services.cloudwatch.AmazonCloudWatch in the Registry. |
| accessKey | null
|
Producer | Amazon AWS Access Key |
| secretKey | null
|
Producer | Amazon AWS Secret Key |
| name | null
|
Producer | The metric name which is used if the message header 'CamelAwsCwMetricName' is not present. |
| value | 1.0
|
Producer | The metric value which is used if the message header 'CamelAwsCwMetricValue' is not present. |
| unit | Count
|
Producer | The metric unit which is used if the message header 'CamelAwsCwMetricUnit' is not present. |
| namespace | null
|
Producer | The metric namespace which is used if the message header 'CamelAwsCwMetricNamespace' is not present. |
| timestamp | null
|
Producer | The metric timestamp which is used if the message header 'CamelAwsCwMetricTimestamp' is not present. |
| amazonCwEndpoint | null
|
Producer | The region with which the AWS-CW client wants to work with. |
![]() | Required CW component options |
|---|---|
You have to provide the amazonCwClient in the Registry or your accessKey and secretKey to access the Amazon's CloudWatch. |
| 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. |
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);
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>${camel-version}</version>
</dependency>
|
where ${camel-version} must be replaced by the actual version of Camel (2.10 or higher).