CloudWatch V3
This integration exports Prometheus metrics from your CloudAMQP cluster to CloudWatch, delivered via our OpenTelemetry Collector.
Authentication
This integration uses
AssumeRole
to authenticate with CloudWatch.
To set up the integration you need to create a role in your CloudWatch account. This role should have these permissions:
-
logs:PutLogEvents
-
logs:CreateLogStream
-
logs:CreateLogGroup
Example JSON config:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"logs:PutLogEvents",
"logs:CreateLogStream",
"logs:CreateLogGroup"
],
"Resource": "*"
}
]
}
To allow CloudAMQP to assume that role in your account you need to setup a trusted entity for the newly created role.
In that you specify which account and user is allowed to assume the role. We also make use of ExternalID which allows you to see a connection between the role and the integration on CloudAMQP. For all integration we list the external id so you can see which integration uses which role if you have setup multiple. We autogenerate an external id when you create the integration but you can use any value for this. Here is an example config for a trusted entity
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::714915985929:user/cloudamqp-metrics-publisher"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "cloudamqp-pxaqltthad"
}
}
}
]
}
The principal used in this example is the real ARN that we use so you can copy and paste this and only adjust the external id to match the configuration for the integration you have setup.
All metrics are exported with the labels/tags instance and cluster, which are populated with the name of the server and cluster. You can also set custom tags when configuring the integration.
Exported server metrics
| Metric | Metric labels | CloudAMQP labels |
|---|---|---|
| system_cpu_utilization_ratio | state | instance, cluster |
| system_disk_io_bytes_total | direction | instance, cluster |
| system_disk_operation_time_seconds_total | direction | instance, cluster |
| system_disk_operations_total | direction | instance, cluster |
| system_filesystem_usage_bytes | state | instance, cluster |
| system_filesystem_utilization_ratio | instance, cluster | |
| system_memory_usage_bytes | state | instance, cluster |
| system_memory_limit_bytes | instance, cluster | |
| system_network_io_bytes_total | direction | instance, cluster |
| system_paging_usage_bytes | state | instance, cluster |
Exported LavinMQ metrics
| Metric | Metric labels | CloudAMQP labels |
|---|---|---|
| lavinmq_global_messages_acknowledged_total | protocol, queue_type | instance, cluster |
| lavinmq_global_messages_delivered_total | protocol, queue_type | instance, cluster |
| lavinmq_global_messages_redelivered_total | protocol, queue_type | instance, cluster |
| lavinmq_global_messages_confirmed_total | protocol | instance, cluster |
| lavinmq_connections | instance, cluster | |
| lavinmq_channels | instance, cluster | |
| lavinmq_consumers | instance, cluster | |
| lavinmq_disk_space_available_bytes | instance, cluster | |
| lavinmq_process_open_fds | instance, cluster | |
| lavinmq_process_resident_memory_bytes | instance, cluster | |
| lavinmq_queues | instance, cluster | |
| lavinmq_queue_messages | instance, cluster | |
| lavinmq_queue_messages_ready | instance, cluster | |
| lavinmq_queue_messages_unacked | instance, cluster |
Exported RabbitMQ metrics
| Metric | Metric labels | CloudAMQP labels |
|---|---|---|
| rabbitmq_global_messages_acknowledged_total | protocol, queue_type | instance, cluster |
| rabbitmq_global_messages_delivered_total | protocol, queue_type | instance, cluster |
| rabbitmq_global_messages_delivered_get_manual_ack_total | protocol, queue_type | instance, cluster |
| rabbitmq_global_messages_delivered_get_auto_ack_total | protocol, queue_type | instance, cluster |
| rabbitmq_global_messages_redelivered_total | protocol, queue_type | instance, cluster |
| rabbitmq_global_messages_confirmed_total | protocol | instance, cluster |
| rabbitmq_global_messages_unroutable_dropped_total | protocol | instance, cluster |
| rabbitmq_global_messages_unroutable_returned_total | protocol | instance, cluster |
| rabbitmq_alarms_memory_used_watermark | instance, cluster | |
| rabbitmq_alarms_free_disk_space_watermark | instance, cluster | |
| rabbitmq_connections | instance, cluster | |
| rabbitmq_channels | instance, cluster | |
| rabbitmq_consumers | instance, cluster | |
| rabbitmq_disk_space_available_bytes | instance, cluster | |
| rabbitmq_exchange_messages_published_total | instance, cluster | |
| rabbitmq_process_open_fds | instance, cluster | |
| rabbitmq_process_resident_memory_bytes | instance, cluster | |
| rabbitmq_queues | instance, cluster | |
| rabbitmq_queue_get_total | instance, cluster | |
| rabbitmq_queue_get_ack_total | instance, cluster | |
| rabbitmq_queue_messages | instance, cluster | |
| rabbitmq_queue_messages_acked_total | instance, cluster | |
| rabbitmq_queue_messages_delivered_ack_total | instance, cluster | |
| rabbitmq_queue_messages_persistent | instance, cluster | |
| rabbitmq_queue_messages_published_total | instance, cluster | |
| rabbitmq_queue_messages_ready | instance, cluster | |
| rabbitmq_queue_messages_unacked | instance, cluster | |
| rabbitmq_queue_head_message_timestamp | instance, cluster |
Metrics Filtering
The metrics listed above are the metrics exported by default. However, you can use the metrics_filter endpoint to specify exactly which metrics you want to export. See the API documentation for more details.
The complete list of available metrics that can be included in the metrics filter includes:
- All metrics available from the server’s
/metricsendpoint (broker metrics) - All metrics available from the server’s
/metrics/detailedendpoint (detailed broker metrics). Note: Detailed metrics can be resource-intensive on servers with many objects such as connections and queues. - Server metrics:
system_cpu_utilization_ratiosystem_disk_io_bytes_totalsystem_disk_operation_time_seconds_totalsystem_disk_operations_totalsystem_filesystem_usage_bytessystem_filesystem_utilization_ratiosystem_memory_limit_bytessystem_memory_usage_bytessystem_linux_memory_available_bytessystem_network_io_bytes_totalsystem_paging_usage_bytes
Histograms and summaries are selected by their family name, for example
rabbitmq_message_size_bytes for the RabbitMQ message size histogram. The
collector merges the bucket, sum and count series into that single metric,
so listing the family name exports all of them. The full list of names
accepted by the filter for your instance is available from the
valid_metrics
endpoint.