Instance API🔗
Documentation for CloudAMQP Instance API. Use it to manage alarms, integrations, RabbitMQ, the firewall, VPC peering and more.
CloudAMQP Terraform provider ➜🔗
You can also use Terraform to manage your CloudAMQP resources. See the documentation at the Terraform Registry.
Nodes🔗
List nodes🔗
curl -XGET -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
https://api.cloudamqp.com/api/nodes
The above command returns JSON structured like this:
[
{
"name": "some-server-01",
"hostname": "some-server-01.rmq.cloudamqp.com",
"configured": true,
"hipe": false,
"rabbitmq_version": "3.10.5",
"erlang_version": "24.1.7",
"running": true,
"disk_size": 20,
"additional_disk_size": 0,
"availability_zone": "availability_zone_id",
"hostname_internal": "some-server-01.in.rmq.cloudamqp.com"
}
]
HTTP Request🔗
GET https://api.cloudamqp.com/api/nodes
Get available versions🔗
Lists versions to which the instance can be upgraded
curl -XGET -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
https://api.cloudamqp.com/api/nodes/available-versions
The above command returns JSON structured like this:
{
"rabbitmq_versions": ["3.9.11", "3.9.9", "3.9.7"],
"erlang_versions": ["24.0.4"]
}
HTTP Request🔗
GET https://api.cloudamqp.com/api/nodes/available-versions
Plugins🔗
List plugins🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/plugins
The above command returns JSON structured like this:
[
{
"name": "amqp_client",
"version": "3.6.12",
"description": "RabbitMQ AMQP Client",
"enabled": true
}
]
HTTP Request🔗
GET https://api.cloudamqp.com/api/plugins
Enable plugin🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "plugin_name=rabbitmq_top" \
https://api.cloudamqp.com/api/plugins?async=true
HTTP Request🔗
POST https://api.cloudamqp.com/api/plugins
Query Parameters🔗
Parameter | Description |
---|---|
async | Asynchronous API mode, the request will return directly and not wait for the plugin to be enabled. Poll List plugins to see the result. |
Request Parameters🔗
Parameter | Description |
---|---|
plugin_name | The name of the plugin to enable |
Disable plugin🔗
curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/plugins/rabbitmq_top?async=true
HTTP Request🔗
DELETE https://api.cloudamqp.com/api/plugins/PLUGIN_NAME
Query Parameters🔗
Parameter | Description |
---|---|
async | Asynchronous API mode, the request will return directly and not wait for the plugin to be disabled. Poll List plugins to see the result. |
URL Parameters🔗
Parameter | Description |
---|---|
PLUGIN_NAME | The name of the plugin to disable |
List community plugins🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/plugins/community
The above command returns JSON structured like this:
[
{
"name": "rabbitmq_management_themes",
"description": "Adds the possibility to customize the management web UI look.",
"require": "3.5.0"
}
]
HTTP Request🔗
GET https://api.cloudamqp.com/api/plugins/community
Enable plugin🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "plugin_name=rabbitmq_top" \
https://api.cloudamqp.com/api/plugins/community?async=true
HTTP Request🔗
POST https://api.cloudamqp.com/api/plugins/community
Query Parameters🔗
Parameter | Description |
---|---|
async | Asynchronous API mode, the request will return directly and not wait for the plugin to be enabled. Poll List plugins to see the result. |
Request Parameters🔗
Parameter | Description |
---|---|
plugin_name | The name of the plugin to enable |
Disable plugin🔗
curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/plugins/community/rabbitmq_top?async=true
Query Parameters🔗
Parameter | Description |
---|---|
async | Asynchronous API mode, the request will return directly and not wait for the plugin to be disabled. Poll List plugins to see the result. |
HTTP Request🔗
DELETE https://api.cloudamqp.com/api/plugins/community/PLUGIN_NAME
URL Parameters🔗
Parameter | Description |
---|---|
PLUGIN_NAME | The name of the plugin to disable |
Custom Domain🔗
Get configured custom domain🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/custom-domain
The above command returns JSON structured like this:
{
"hostname": "myname.mydomain",
"configured": true,
}
Shows the current custom domain the cluster is currently configured for, if any.
HTTP Request🔗
GET https://api.cloudamqp.com/api/custom-domain
Generate Lets Encrypt certificates for a custom domain🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-H "content-type: application/json" \
-d '{"hostname": "myname.mydomain"}' \
https://api.cloudamqp.com/api/custom-domain
Generates and installs a Let's Encrypt certificate on the cluster as SNI with your custom domain. This requires that your provided SNI host point towards the RabbitMQ cluster. Otherwise the generation and renewal of the certificate will fail.
HTTP Request🔗
POST https://api.cloudamqp.com/api/custom-domain
Request Parameters🔗
Parameter | Description |
---|---|
hostname | The custom hostname. This DNS record must point towards the Rabbit cluster |
Restore custom configured domain and certificate🔗
curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/custom-domain
Restores current custom domain configuration. Also stops future renewal process of the certificate.
HTTP Request🔗
DELETE https://api.cloudamqp.com/api/custom-domain
Firewall🔗
Get firewall settings🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/security/firewall
The above command returns JSON structured like this:
[
{
"description": "My rule",
"ip": "0.0.0.0/0",
"ports": [80],
"services": ["AMQP", "AMQPS", "MQTT"]
}
]
This response shows that services AMQP, AMQPS, MQTT and port 80 are open all all.
HTTP Request🔗
GET https://api.cloudamqp.com/api/security/firewall
Configure firewall🔗
When configuring the firewall you can choose to specify which ports that you want to have open, or you can specify which services that you would like to access. The benefits of specifying services instead of the ports is that we automatically map these to correct ports or port ranges.
Available services to specify
- AMQP Maps to port 5672
- AMQPS AMQP over TLS, maps to port 5671
- HTTPS Maps to port 443
- MQTT Maps to port 8883
- MQTTS MQTT over TLS, maps to port 1883
- STOMP Maps to port 61614
- STOMPS STOMP over TLS, maps to port 61613
- STREAM RabbitMQ Streams, maps to port 5552
- STREAM_SSL RabbitMQ Streams over TLS, maps to port 5551
HTTP Request🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-H "content-type: application/json" \
-d '[{"ip": "0.0.0.0/0", "services": ["AMQP", "AMQPS"], "ports": [80]}]' \
https://api.cloudamqp.com/api/security/firewall
POST https://api.cloudamqp.com/api/security/firewall
Request Parameters🔗
Parameter | Description |
---|---|
ip | A CIDR for which to open the ports for |
services | Which services to open up for in the firewall |
ports | Which ports to open in the firewall |
HTTP Request🔗
Providing an already existing CIDR will overwrite the current rule. If provided CIDR does not yet exist, it is added upon the other rules. To delete a specific rule, provide the CIDR with empty services and ports.
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-X PATCH \
-H "content-type: application/json" \
-d '[{"ip": "0.0.0.0/0", "services": ["MQTT"]}]' \
https://api.cloudamqp.com/api/security/firewall
PATCH https://api.cloudamqp.com/api/security/firewall
Request Parameters🔗
Parameter | Description |
---|---|
ip | A CIDR for which to open the ports for |
services | Which services to open up for in the firewall |
ports | Which ports to open in the firewall |
Alarms🔗
Information about both alarms, notifications and recipients. When creating a new instance, a set of default alarms and recipient will be created.
Recipient: There will always be a default recipient created, using the team email set during sign up. This recipient is used to receive notifications from the default alarms.
Alarm: There will always be four default alarms created, cpu, memory, disk and notice alarms.
Create recipient🔗
To use another recipient than the default recipient, a new one needs to be created.
Available recipients types:
- email Send an email notification
- webhook Send a webhook notification
- pagerduty Create an incident in PagerDuty
- opsgenie, opsgenie-eu, victorops Send a notification to opsgenie, opsgenie-eu or victorops
- signl4 Create a Signl in Signl4
- slack Send a notification to Slack channels using Incoming Webhooks
- teams Send a notification to Microsoft Teams channels using Incoming Webhooks Workflow
HTTP Request🔗
POST https://api.cloudamqp.com/api/alarms/recipients
Example of email recipient🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "type=email&value=notification@example.com&name=low"
https://api.cloudamqp.com/api/alarms/recipients
This creates an email recipient for notification@example.com that can be used to receive alarm notifications. The returned JSON structured look like this:
{
"id": 2,
"type": "email",
"value": "notification@example.com",
"name": "Low",
"options": {},
}
Request body parameters🔗
Parameter | Required | Type | Description |
---|---|---|---|
type | true | string | The type of notification to be sent |
value | true | string | Endpoint to where the notification will be sent |
name | false | string | Optional, name for the recipient |
List recipients🔗
Retrieve all recipients for an instance that can receive notifications
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/alarms/recipients
The above command returns JSON structured like this:
[
{
"id": 1,
"type": "email",
"value": "team@84codes.com",
"name": "Default",
"options": null
},
{
"id": 2,
"type": "email",
"value": "notification@example.com",
"name": "Low",
"options": null
}
]
HTTP Request🔗
GET https://api.cloudamqp.com/api/alarms/recipients
Retrieve specific recipient🔗
Use the id of a recipient to retrieve it
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/alarms/recipients/1
The above command returns JSON structured like this:
{
"id": 1,
"type": "email",
"value": "team@example.com",
"name": "Default",
"options": null
}
HTTP Request🔗
GET https://api.cloudamqp.com/api/alarms/recipients/<id>
Update recipient🔗
Update a specific recipient with new information
HTTP Request🔗
PUT https://api.cloudamqp.com/api/alarms/recipients/<id>
Example of email recipient🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "type=email&value=alarms@example.com&name=High"
https://api.cloudamqp.com/api/alarms/recipients/2
This updates an email recipient for notification@example.com that can be used to receive alarm notifications. The returned JSON structured look like this:
{
"id": 2,
"type": "email",
"value": "alarm@example.com",
"name": "High",
"options": {},
}
URL Parameters🔗
Parameter | Description |
---|---|
id | The recipient identifier |
Request body parameters🔗
Parameter | Required | Type | Description |
---|---|---|---|
type | true | string | The type of notification to be sent |
value | true | string | Endpoint to where the notification will be sent |
name | false | string | Optional, name for the recipient |
Delete recipient🔗
Use the id of a specific recipient to remove it
curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/alarms/recipients/2
HTTP Request🔗
DELETE https://api.cloudamqp.com/api/alarms/recipients/<id>
URL Parameters🔗
Parameter | Description |
---|---|
id | Use the id of the recipient that you want to delete |
Create alarm🔗
You can create one or more alarms per type, which for example, lets you setup an low urgency alarm on a low threshold first and then another alarm with higher urgency to be triggered later.
Parameters enabled, recipients and reminder_interval are optional. enabled defaults to true, recipients defaults to all and reminder_interval defaults to disabled.
Available alarms types:
Name | Type | Dedicated | Shared | Description |
---|---|---|---|---|
CPU | cpu | yes | - | Alarm if CPU usage is above a certain level for a period of time |
Memory | memory | yes | - | Alarm if memory usage is above a certain level for a period of time |
Disk space | disk | yes | - | Alarm id disk usage is above a certain level for a period of time |
Queue length | queue | yes | yes | Alarm if a queue get longer than count for a period of time |
Connection count | connection | yes | yes | Alarm if connection count is above count for a period of time |
Connection flow | flow | yes | yes | Alarm if a connection has been in flow state for a period of time |
Consumer count | consumer | yes | yes | Alarm if a consumer count is below count for a period of time |
Channel count | channel | yes | yes | Alarm if channel count is above count for a period of time |
Net split | netsplit | yes | - | Alarm if net split occurs and isn't resolved for a period of time |
Server unreachable | server_unreachable | yes | - | Alarm if server is unreachable |
Notice | notice | yes | yes | Notifications on events such as planned or emergency maintenance |
HTTP Request🔗
POST https://api.cloudamqp.com/api/alarms
Request (CPU alarm)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "type=cpu&value_threshold=90&time_threshold=600&recipients[]=1"
https://api.cloudamqp.com/api/alarms
This sets the alarm to trigger if the CPU usage is above 90% for 10 minutes or more.
{
"type": "cpu",
"enabled": true,
"value_threshold": 90,
"time_threshold": 600,
"recipients": [1]
}
Parameter | Type | Description |
---|---|---|
type | string | The alarm type, valid types see table Available alarms types above |
enabled | bool | Enable or disable the alarm (Optional) |
value_threshold | int | The value threshold to trigger the alarm |
time_threshold | int | For how long (in seconds) the value_threshold should be active before trigger alarm |
recipients | []int | Recipients identifiers for which should receive notifications when the alarm trigger (Optional) |
reminder_interval | int | How often you wish to get a reminder on this alarm (Optional) |
Request (Memory alarm)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "type=memory&value_threshold=90&time_threshold=600&recipients[]=1"
https://api.cloudamqp.com/api/alarms
This sets the alarm to trigger if the memory usage is above 90% for 10 minutes or more.
{
"type": "memory",
"enabled": true,
"value_threshold": 90,
"time_threshold": 600,
"recipients": [1]
}
Parameter | Type | Description |
---|---|---|
type | string | The alarm type, valid types see table Available alarms types above |
enabled | bool | Enable or disable the alarm (Optional) |
value_threshold | int | The value threshold to trigger the alarm |
time_threshold | int | For how long (in seconds) the value_threshold should be active before trigger alarm |
recipients | []int | Recipients identifiers for which should receive notifications when the alarm trigger (Optional) |
reminder_interval | int | How often you wish to get a reminder on this alarm (Optional) |
Request (Disk space alarm)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "type=disk&value_threshold=5&time_threshold=600&recipients[]=1"
https://api.cloudamqp.com/api/alarms
This sets the alarm to trigger if available disk space is above 5Gb for 10 minutes or more.
{
"type": "disk",
"enabled": true,
"value_threshold": 5,
"time_threshold": 600,
"recipients": [1]
}
Parameter | Type | Description |
---|---|---|
type | string | The alarm type, valid types see table Available alarms types above |
enabled | bool | Enable or disable the alarm (Optional) |
value_threshold | int | The value threshold to trigger the alarm (unit is gigabytes if calculation fixed) |
value_calculation | string | How to treat value threshold, possible values: fixed (default), percentage
|
time_threshold | int | For how long (in seconds) the value_threshold should be active before trigger alarm |
recipients | []int | Recipients identifiers for which should receive notifications when the alarm trigger (Optional) |
reminder_interval | int | How often you wish to get a reminder on this alarm (Optional) |
Request (Queue length alarm)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "type=queue&value_threshold=10&time_threshold=600&queue_regex=[a-z]%2B&vhost_regex=[a-z]%2B&message_type=total&recipients[]=1"
https://api.cloudamqp.com/api/alarms
This sets the alarm to trigger if a queue which matches the regex has more than 10 messages for 10 minutes.
{
"type": "queue",
"enabled": true,
"value_threshold": 10,
"time_threshold": 600,
"queue_regex": "[a-z]%2B",
"vhost_regex": "[a-z]%2B",
"message_type": "total",
"recipients": [1]
}
Parameter | Type | Description |
---|---|---|
type | string | The alarm type, valid types see table Available alarms types above |
enabled | bool | Enable or disable the alarm (Optional) |
value_threshold | int | The value threshold to trigger the alarm |
time_threshold | int | For how long (in seconds) the value_threshold should be active before trigger alarm |
queue_regex | string | Queue regex expression to trigger the alarm (Optional) |
vhost_regex | string | Vhost regex expression to trigger the alarm (Optional) |
message_type | string | Message types (total, unacked, ready) of the queue to trigger the alarm (Optional) |
recipients | []int | Recipients identifiers for which should receive notifications when the alarm trigger (Optional) |
reminder_interval | int | How often you wish to get a reminder on this alarm (Optional) |
Request (Connection count alarm)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "type=connection&value_threshold=100&time_threshold=600&recipients[]=1"
https://api.cloudamqp.com/api/alarms
This sets the alarm to trigger if there is 10 or more connections for 10 minutes.
{
"type": "connection",
"enabled": true,
"value_threshold": 10,
"time_threshold": 600,
"recipients": [1]
}
Parameter | Type | Description |
---|---|---|
type | string | The alarm type, valid types see table Available alarms types above |
enabled | bool | Enable or disable the alarm (Optional) |
value_threshold | int | The value threshold to trigger the alarm |
time_threshold | int | For how long (in seconds) the value_threshold should be active before trigger alarm |
recipients | []int | Recipients identifiers for which should receive notifications when the alarm trigger (Optional) |
reminder_interval | int | How often you wish to get a reminder on this alarm (Optional) |
Request (Connection flow alarm)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "type=flow&time_threshold=600&recipients[]=1"
https://api.cloudamqp.com/api/alarms
This sets the alarm to trigger if a connection has been in flow state for 10 minutes.
{
"type": "connection",
"enabled": true,
"time_threshold": 600,
"recipients": [1]
}
Parameter | Type | Description |
---|---|---|
type | string | The alarm type, valid types see table Available alarms types above |
enabled | bool | Enable or disable the alarm (Optional) |
time_threshold | int | For how long (in seconds) the value_threshold should be active before trigger alarm |
recipients | []int | Recipients identifiers for which should receive notifications when the alarm trigger (Optional) |
reminder_interval | int | How often you wish to get a reminder on this alarm (Optional) |
Request (Consumer count)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "type=consumer&value_threshold=1&time_threshold=600&queue_regex=[a-z]%2B&vhost_regex=[a-z]%2B&recipients[]=1"
https://api.cloudamqp.com/api/alarms
This sets the alarm to trigger if a queue which matches the regex has less than 1 consumer for 10 minutes.
{
"type": "consumer",
"enabled": true,
"value_threshold": 1,
"time_threshold": 600,
"recipients": [1]
}
Parameter | Type | Description |
---|---|---|
type | string | The alarm type, valid types see table Available alarms types above |
enabled | bool | Enable or disable the alarm (Optional) |
value_threshold | int | The value threshold to trigger the alarm |
time_threshold | int | For how long (in seconds) the value_threshold should be active before trigger alarm |
queue_regex | string | Queue regex expression to trigger the alarm (Optional) |
vhost_regex | string | Vhost regex expression to trigger the alarm (Optional) |
recipients | []int | Recipients identifiers for which should receive notifications when the alarm trigger (Optional) |
reminder_interval | int | How often you wish to get a reminder on this alarm (Optional) |
Request Parameters (Net split)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "type=netsplit"
https://api.cloudamqp.com/api/alarms
This sets the alarm to trigger if a net split occurs and isn't resolved within 10 minutes.
{
"type": "netsplit",
"enabled": true,
"time_threshold": 600
}
Parameter | Type | Description |
---|---|---|
type | string | The alarm type, valid types see table Available alarms types above |
enabled | bool | Enable or disable the alarm (Optional) |
time_threshold | int | For how long (in seconds) the value_threshold should be active before trigger alarm |
recipients | []int | Recipients identifiers for which should receive notifications when the alarm trigger (Optional) |
reminder_interval | int | How often you wish to get a reminder on this alarm (Optional) |
Request (Notice)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "type=notice&recipients[]=1"
https://api.cloudamqp.com/api/alarms
Notifies recipients on events such as planned or emergency maintenance
{
"type": "notice",
"enabled": true,
"recipients": [1]
}
Parameter | Type | Description |
---|---|---|
type | string | The alarm type, valid types see table Available alarms types above |
enabled | bool | Enable or disable the alarm (Optional) |
recipients | []int | Recipients identifiers for which should receive notifications when the alarm trigger (Optional) |
reminder_interval | int | How often you wish to get a reminder on this alarm (Optional) |
Request (Server unreachable)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "type=server_unreachable&recipients[]=1"
https://api.cloudamqp.com/api/alarms
Notifies recipients if the server is unreachable
{
"type": "server_unreachable",
"enabled": true,
"recipients": [1]
}
Parameter | Type | Description |
---|---|---|
type | string | The alarm type, valid types see table Available alarms types above |
enabled | bool | Enable or disable the alarm (Optional) |
recipients | []int | Recipients identifiers for which should receive notifications when the alarm trigger (Optional) |
reminder_interval | int | How often you wish to get a reminder on this alarm (Optional) |
List alarms🔗
Retrive all alarms used for the instance.
If the recipients array is empty, it means that all recipients will be used if the alarm is triggered.
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/alarms
Example of the default created alarms:
[
{
"time_threshold": 600,
"value_threshold": 90,
"id": 7395,
"type": "cpu",
"recipients": [],
"enabled": true
},
{
"time_threshold": 600,
"value_threshold": 90,
"id": 7396,
"type": "memory",
"recipients": [],
"enabled": true
},
{
"time_threshold": 600,
"value_threshold": 5,
"id": 7397,
"type": "disk",
"recipients": [],
"enabled": true
},
{
"id": 7398,
"type": "notice",
"recipients": [],
"enabled": true
}
]
HTTP Request🔗
GET https://api.cloudamqp.com/api/alarms
Retrieve specific alarm🔗
Use the id of a specific alarm to retrieve it.
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/alarms/7395
The above command returns JSON structured like this:
{
"time_threshold": 600,
"value_threshold": 90,
"id": 7395,
"type": "cpu",
"recipients": [1],
"enabled": true
}
HTTP Request🔗
GET https://api.cloudamqp.com/api/alarms/<id>
Update alarm🔗
Use the id of a specific alarm to update it
HTTP Request🔗
PUT https://api.cloudamqp.com/api/alarms/<id>
Request Parameters (CPU alarm)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "type=cpu&enabled=true&value_threshold=90&time_threshold=600&recipients=[1]"
https://api.cloudamqp.com/api/alarms
This sets the alarm to trigger if the CPU usage is above 90% for 10 minutes or more.
Parameter | Type | Description |
---|---|---|
type | string | The alarm type, valid types see table Available alarms types above |
enabled | bool | Enable or disable the alarm |
value_threshold | int | The value threshold to trigger the alarm |
time_threshold | int | For how long (in seconds) the value_threshold should be active before trigger alarm |
recipients | []int | Recipients identifiers for which should receive notifications when the alarm trigger |
For more examples, see under the section about creating alarm.
Delete alarm🔗
Use the id for a specific alarm to remove it.
curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/alarms/7395
HTTP Request🔗
DELETE https://api.cloudamqp.com/api/alarms/<id>
URL Parameters🔗
Parameter | Description |
---|---|
id | Use the id of the alarm that you want to delete |
AWS Eventbridge🔗
List eventbridges🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/eventbridges
The above command returns JSON structured like this:
[
{
"id":1,
"account_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"aws_region":"eu-north-1",
"aws_account_id":123456789012,
"vhost":"yhfhkuqb",
"queue":"eventbridge_queue",
"status":null,
"with_headers":true
}
]
Status field always set to null, unless there is an error starting the AWS EventBridge.
HTTP Request🔗
GET https://api.cloudamqp.com/api/eventbridges
Retrieve specific eventbridge🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/eventbridges/1
The above command returns JSON structured like this:
{
"id":1,
"account_id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"aws_region":"eu-north-1",
"aws_account_id":123456789012,
"vhost":"yhfhkuqb",
"queue":"eventbridge_queue",
"status":null,
"with_headers":true
}
Status field always set to null, unless there is an error starting the AWS EventBridge.
HTTP Request🔗
GET https://api.cloudamqp.com/api/eventbridges/<id>
Request Parameters🔗
Parameter | Description |
---|---|
id | The eventbridge's id |
Add eventbridges🔗
The command below is for including message headers in the event data
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -d \
'{"vhost":"yhfhkuqb", "queue":"eventbridge_queue", "aws_region":"eu-north-1", "aws_account_id":123456789012, "with_headers":true}' -H "content-type: application/json" \
https://api.cloudamqp.com/api/eventbridges
The command below is for excluding message headers in the event data
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -d \
'{"vhost":"yhfhkuqb", "queue":"eventbridge_queue", "aws_region":"eu-north-1", "aws_account_id":123456789012, "with_headers":false}' -H "content-type: application/json" \
https://api.cloudamqp.com/api/eventbridges
Adds an AWS EventBridge integration and returns its given identifier
Both above commands returns JSON structured like this:
{
"id":1,
}
URL Parameters🔗
POST https://customer.cloudamqp.com/api/eventbridges
Request Parameters🔗
Parameter | Description |
---|---|
vhost | The VHost the queue resides in |
queue | A (durable) queue on your RabbitMQ instance |
aws_region | The AWS region where you the events to be sent to |
aws_account_id | The AWS Account ID where you want the events to be sent to |
with_headers | Include message headers in the event data ({"headers": {}, "body": {"your": "message"}}) |
Delete eventbridge🔗
Removes an AWS EventBridge integration
URL Parameters🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -X DELETE https://api.cloudamqp.com/api/eventbridges/1
DELETE https://api.cloudamqp.com/api/eventbridges/<id>
Request Parameters🔗
Parameter | Description |
---|---|
id | The eventbridge's id |
Webhooks🔗
List webhooks🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/webhooks
The above command returns JSON structured like this:
[
{
"id":1,
"webhook_uri":"http://www.example.com/endpoint",
"queue":"push-queue",
"last_status":null,
"concurrency":10,
"vhost":"hptqevnp"
}
]
HTTP Request🔗
GET https://api.cloudamqp.com/api/webhooks
Get specific webhook🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/webhooks/1
The above command returns JSON structured like this:
{
"id":1,
"webhook_uri":"http://www.example.com/endpoint",
"queue":"push-queue",
"last_status":null,
"concurrency":10,
"vhost":"hptqevnp"
}
HTTP Request🔗
GET https://api.cloudamqp.com/api/webhooks/WEBHOOK_ID
URL Parameters🔗
Parameter | Description |
---|---|
WEBHOOK_ID | The webhook identifier |
Create webhook🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "concurrency=10&vhost=test&webhook_uri=http://www.example.com/endpoint&queue=push-queue" \
https://api.cloudamqp.com/api/webhooks
A POST request will be made for each message in the queue to this endpoint. If the endpoint returns a HTTP status code in the 200 range the message will be acknowledged and removed from the queue, otherwise retried.
HTTP Request🔗
POST https://api.cloudamqp.com/api/webhooks
Request Parameters🔗
Parameter | Description |
---|---|
concurrency | Max simultaneous outstanding requests to the endpoint |
webhook_uri | The URL to POST the messages to |
vhost | The vhost to connect to |
queue | The queue to consume from |
Update webhook🔗
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "concurrency=1&vhost=test&webhook_uri=http://www.example.com/endpoint&queue=push-queue" \
https://api.cloudamqp.com/api/webhooks/WEBHOOK_ID
HTTP Request🔗
PUT https://api.cloudamqp.com/api/webhooks/WEBHOOK_ID
URL Parameters🔗
Parameter | Description |
---|---|
WEBHOOK_ID | The webhook identifier |
Request Parameters🔗
Parameter | Description |
---|---|
concurrency | Max simultaneous outstanding requests to the endpoint |
webhook_uri | The URL to POST the messages to |
vhost | The vhost to connect to |
queue | The queue to consume from |
Delete webhook🔗
curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/webhooks/1
HTTP Request🔗
DELETE https://api.cloudamqp.com/api/webhooks/WEBHOOK_ID
URL Parameters🔗
Parameter | Description |
---|---|
WEBHOOK_ID | The id of the webhook to delete |
RabbitMQ Configuration🔗
List current configuration🔗
curl -XGET -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/config
The above command returns JSON structured like this:
{
"rabbitmq_prometheus.return_per_object_metrics": null,
"rabbit.heartbeat": 120,
"rabbit.channel_max": 0,
"rabbit.consumer_timeout": 7200000,
"rabbit.vm_memory_high_watermark": 0.81,
"rabbit.queue_index_embed_msgs_below": null,
"rabbit.log.exchange.level": "error",
"rabbitmq_mqtt.exchange": "amq.topic",
"rabbit.default_vhost": "/"
}
HTTP Request🔗
GET https://api.cloudamqp.com/api/config
List available settings🔗
A list of settings that are exposed to changes.
curl -XGET -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/config/available_settings
The above command returns JSON structured like this:
[
{
"name": "rabbitmq_prometheus.return_per_object_metrics",
"type": "boolean",
"desc": "If you want prometheus to return its metrics per object instead of an aggregated value",
"version_requirement": "3.8.0",
"default": false
},
{
"name": "rabbit.heartbeat",
"type": "int",
"desc": "Set the server AMQP 0-9-1 heartbeat timeout in seconds.",
"default": 120,
"min": 0
},
{
"name": "rabbit.channel_max",
"type": "int",
"desc": "Set the maximum permissible number of channels per connection 0 means 'no limit'.",
"default": 128,
"min": 0
},
{
"name": "rabbit.consumer_timeout",
"type": "int",
"desc": "A consumer that has recevied a message and does not acknowledge that message within the timeout in milliseconds, will get cancelled, the channel will close and the message will be returned to the queue. Max 25,000,000. To disable, set value to false.",
"version_requirement": "3.8.15",
"default": 900000,
"min": 10000,
"max": 25000000
},
{
"name": "rabbit.vm_memory_high_watermark",
"type": "float",
"desc": "When the server will enter memory based flow-control as relative to the maximum available memory. Allowed values (0.40 - 0.90)",
"default": 0.81,
"min": 0.4,
"max": 0.9
},
{
"name": "rabbit.queue_index_embed_msgs_below",
"type": "int",
"desc": "Size in bytes below which to embed messages in the queue index. Max 10,485,760 while 0 will turn off payload embedding in the queue index.",
"default": 4096,
"min": 0,
"max": 10485760
},
{
"name": "rabbitmq_mqtt.exchange",
"type": "symbol",
"desc": "The exchange option determines which exchange messages from MQTT clients are published
to. The exchange is expected to be a topic exchange.",
"default": "amq.topic"
},
{
"name": "rabbit.default_vhost",
"type": "symbol",
"desc": "Virtual host to create when RabbitMQ creates a new database from scratch.
The exchange `amq.rabbitmq.log` will exist in this virtual host. RabbitMQ restart required.",
"default": "/"
}
]
HTTP Request🔗
GET https://api.cloudamqp.com/api/config/available_settings
Updating a setting🔗
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx -d'{"rabbit.vm_memory_high_watermark": 0.5}'\
https://api.cloudamqp.com/api/config
The above command returns JSON structured like this:
{
"success": "RabbitMQ config has been updated"
}
HTTP Request🔗
PUT https://api.cloudamqp.com/api/config
JSON Parameters🔗
Parameter | Description |
---|---|
rabbitmq_prometheus.return_per_object_metrics | If you want prometheus to return its metrics per object instead of an aggregated value. |
rabbit.heartbeat | Set the server AMQP 0-9-1 heartbeat timeout in seconds. |
rabbit.channel_max | Set the maximum permissible number of channels per connection 0 means 'no limit'. |
rabbit.consumer_timeout | A consumer that has recevied a message and does not acknowledge that message within the timeout in milliseconds, will get cancelled, the channel will close and the message will be returned to the queue. Max 25,000,000. To disable, set value to false. |
rabbit.vm_memory_high_watermark | When the server will enter memory based flow-control as relative to the maximum available memory. Allowed values (0.40 - 0.90) |
rabbit.queue_index_embed_msgs_below | Size in bytes below which to embed messages in the queue index. Max 10,485,760 while 0 will turn off payload embedding in the queue index. |
rabbit.connection_max | Set the maximum permissible number of connections 0 means 'no limit'. |
rabbit.max_message_size | The largest allowed message payload size in bytes. |
rabbitmq_mqtt.exchange | The exchange option determines which exchange messages from MQTT clients are published to. |
rabbit.default_vhost | Virtual host to create when RabbitMQ creates a new database from scratch. |
Account🔗
Rotate password🔗
Initiate rotation of the user password on your instance.
curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx \
https://api.cloudamqp.com/api/account/rotate-password
HTTP Request🔗
POST https://api.cloudamqp.com/api/account/rotate-password
Rotate API key🔗
curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx \
https://api.cloudamqp.com/api/account/rotate-apikey
HTTP Request🔗
POST https://api.cloudamqp.com/api/account/rotate-apikey
Actions🔗
Enable/disable HiPE🔗
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d '{"enable":true, "nodes": ["some-server-01"]}' -H "content-type: application/json" \
https://api.cloudamqp.com/api/actions/hipe
HTTP Request🔗
PUT https://api.cloudamqp.com/api/actions/hipe
Request Parameters🔗
Parameter | Description |
---|---|
enabled | Boolean, whether to enable or disable HiPE |
nodes | (Optional) A list of nodes to enable HiPE for, skip parameter to enable HiPE on all nodes |
Enable/disable Firehose🔗
Not recommended to run in production environments.
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d '{"enable":true, "vhost": "/"}' -H "content-type: application/json" \
https://api.cloudamqp.com/api/actions/firehose
HTTP Request🔗
PUT https://api.cloudamqp.com/api/actions/firehose
Request Parameters🔗
Parameter | Description |
---|---|
enabled | Boolean, whether to enable or disable Firehose |
vhost | String, virtual host to enable tracing on |
Restart RabbitMQ🔗
HTTP Request🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
-d '{"nodes": ["some-server-01"]}' -H "content-type: application/json" \
https://api.cloudamqp.com/api/actions/restart
Request Parameters🔗
Parameter | Description |
---|---|
nodes | (Optional) A list of node names |
Restart Cluster🔗
HTTP Request🔗
curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
https://api.cloudamqp.com/api/actions/cluster-restart
Restart Management Interface🔗
HTTP Request🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
-d '{"nodes": ["some-server-01"]}' -H "content-type: application/json" \
https://api.cloudamqp.com/api/actions/mgmt-restart
Request Parameters🔗
Parameter | Description |
---|---|
nodes | (Optional) A list of node names |
Stop Instance🔗
HTTP Request🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
-d '{"nodes": ["some-server-01"]}' -H "content-type: application/json" \
https://api.cloudamqp.com/api/actions/stop
Request Parameters🔗
Parameter | Description |
---|---|
nodes | (Optional) A list of node names |
Start Instance🔗
HTTP Request🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
-d '{"nodes": ["some-server-01"]}' -H "content-type: application/json" \
https://api.cloudamqp.com/api/actions/start
Request Parameters🔗
Parameter | Description |
---|---|
nodes | (Optional) A list of node names |
Reboot Instance🔗
HTTP Request🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
-d '{"nodes": ["some-server-01"]}' -H "content-type: application/json" \
https://api.cloudamqp.com/api/actions/reboot
Request Parameters🔗
Parameter | Description |
---|---|
nodes | (Optional) A list of node names |
Upgrade Erlang🔗
Always updates to latest compatible version
HTTP Request🔗
curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
https://api.cloudamqp.com/api/actions/upgrade-erlang
Upgrade RabbitMQ🔗
HTTP Request🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
-d '{"version": "3.10.7"}' -H "content-type: application/json" \
https://api.cloudamqp.com/api/actions/upgrade-rabbitmq
Request Parameters🔗
Parameter | Description |
---|---|
version | String, RabbitMQ version |
Upgrade RabbitMQ and Erlang🔗
Always updates to latest possible version of both RabbitMQ and Erlang
HTTP Request🔗
curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
https://api.cloudamqp.com/api/actions/upgrade-rabbitmq-erlang
Fetch what versions RabbitMQ/Erlang upgrade will upgrade to🔗
Returns what version of Erlang and RabbitMQ the cluster will update to
HTTP Request🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx\
https://api.cloudamqp.com/api/actions/new-rabbitmq-erlang-versions
Integrations🔗
List log integrations🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/integrations/logs
The above command returns JSON structured like this:
[
{
"id":10,
"type":"papertrail",
"config": {
"url":"logs.papertrail.com:2123"
},
"error": "",
"account_id": "99ed6d99-fjsd-7d7d-8ujd-2f53asf34weaws"
}
]
HTTP Request🔗
GET https://api.cloudamqp.com/api/integrations/logs
Add log integration🔗
Available log integrations are:
- Azure Monitor
- CloudWatch Logs
- Coralogix
- Datadog
- Logentries
- Loggly
- Papertrail
- Scalyr
- Splunk
HTTP Request🔗
POST https://api.cloudamqp.com/api/integrations/logs/<SYSTEM>
URL Parameters🔗
Parameter | Description |
---|---|
SYSTEM | The logs system to integrate to, any of these: azure_monitor , cloudwatchlog , coralogix , datadog , logentries , loggly , papertrail , scalyr or splunk
|
Request Parameters (azure_monitor
)🔗
Use Azure portal to configure external access for Azure Monitor. Tutorial to find/create all params below.
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "tenant_id=CHANGEM&application_id=CHANGEME&application_secret=CHANGEME&dce_uri=CHANGEME&table=CHANGEME&dcr_id=CHANGEME" \
https://api.cloudamqp.com/api/integrations/logs/azure_monitor
Parameter | Description |
---|---|
tenant_id | Directory (tenant) ID. |
application_id | Application (client) ID. How to create an application |
application_secret | Application secret |
dce_uri | Data Collection Endpoint URI. How to create a DCE |
table | Table name. Table should have the columns: TimeGenerated, Host, Event, Level and Message. How to create a table |
dcr_id | ID of Data Collection Rule that your DCE is linked to. Find the DCR ID |
Request Parameters (cloudwatchlog
)🔗
Need to create an IAM user with programmatic permissions:
- CreateLogGroup
- CreateLogStream
- DescribeLogGroups
- DescribeLogStreams
- PutLogEvents
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "region=us-west-1&access_key_id=87656789&secret_access_key=09876tyui9876yui98" \
https://api.cloudamqp.com/api/integrations/logs/cloudwatchlog
Parameter | Description |
---|---|
region | The AWS region to use |
access_key_id | The access key id to use |
secret_access_key | The secret that goes with the key id |
Request Parameters (coralogix
)🔗
Create a 'Send-Your-Data' private API key, Coralogix documentation
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "private_key=CHANGEM&endpoint=CHANGEME&application=CHANGEME&subsystem=CHANGEME" \
https://api.cloudamqp.com/api/integrations/logs/coralogix
Parameter | Description |
---|---|
private_key | The API key used for authentication |
endpoint | The syslog destination to send the logs to (e.g. syslog.eu2.coralogix.com:6514) |
application | The "Application Name", see Coralogix documentation |
subsystem | The "Subsystem Name", see Coralogix documentation |
Request Parameters (datadog
)🔗
Create a Datadog API key at app.datadoghq.com
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "api_key=XXXXXXXXXXXXX®ion=us1&tags=env=dev,region=europe" \
https://api.cloudamqp.com/api/integrations/logs/datadog
Parameter | Description |
---|---|
api_key | The API key ised for authentication |
region | The region to send the logs, [us1, us3, us5, eu] |
tags | (Optional) Enter tags for the integration, like this: env=prod,region=europe |
If tags are used, the value part (prod, europe) must start with a letter. Read more about tags format in the Datadog documentation
Request Parameters (logentries
)🔗
Create a Logentries token at logentries add-log
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "token=XXXXXXXXXXXXX" \
https://api.cloudamqp.com/api/integrations/logs/logentries
Parameter | Description |
---|---|
token | A TCP token for authentication |
Request Parameters (loggly
)🔗
Create a Loggly token at https://{your-company}.loggly.com/tokens
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "token=XXXXXXXXX" \
https://api.cloudamqp.com/api/integrations/logs/loggly
Parameter | Description |
---|---|
token | The token used for authentication |
Request Parameters (papertrail
)🔗
Create a Papertrail endpoint at papertrail setup
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "url=logs.papertrail.com:2123" \
https://api.cloudamqp.com/api/integrations/logs/papertrail
Parameter | Description |
---|---|
url | The URL to push the logs to |
Request Parameters (scalyr
)🔗
Create a Log write token at Scalyr keys
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "token=XXXXX&host=app.scalyr.com" \
https://api.cloudamqp.com/api/integrations/logs/scalyr
Parameter | Description |
---|---|
token | The token used for authentication |
host | Destination to send the logs [app.scalyr.com, app.eu.scalyr.com] |
Request Parameters (splunk
)🔗
Create a HTTP Event Collector token at https://<your-splunk>.cloud.splunk.com/en-US/manager/search/http-eventcollector
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "token=XXXXX&host_port=innput-prd-p-rdq96mdbptj4.cloud.splunk.com:8080&sourcetype=generic_single_line" \
https://api.cloudamqp.com/api/integrations/logs/splunk
Parameter | Description |
---|---|
token | The token used for authentication |
host_port | Destination to send the logs |
sourcetype | Assigns source type to the data exported |
Update log integration🔗
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "api_key=XXXXXXXXXXXXX®ion=us1&tags=env=dev" \
https://api.cloudamqp.com/api/integrations/logs/datadog/11
HTTP Request🔗
PUT https://api.cloudamqp.com/api/integrations/logs/<INT_ID>
URL Parameters🔗
Parameter | Description |
---|---|
INT_ID | The ID of the integration to update |
Request Parameter🔗
See above supported systems and paramaters
Delete log integration🔗
curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/integrations/logs/636
HTTP Request🔗
DELETE https://api.cloudamqp.com/api/integrations/logs/<INT_ID>
URL Parameters🔗
Parameter | Description |
---|---|
INT_ID | The ID of the integration to delete |
List metrics integrations🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/integrations/metrics
The above command returns JSON structured like this:
[
{
"id":10,
"type":"datadog",
"config": {
"api_key":"XXXXXXXXXXXXX",
"region": "us1",
"tags": "env=dev"
},
"error": "",
"account_id": "99ed6d99-fjsd-7d7d-8ujd-2f53asf34weaws"
}
]
HTTP Request🔗
GET https://api.cloudamqp.com/api/integrations/metrics
Add metrics integration🔗
Available Prometheus metrics integrations:
- Azure Monitor
- CloudWatch v3
- Datadog v3
- Dynatrace
- New Relic v3
- Stackdriver v2
- Splunk v2
Note: these are available on all LavinMQ clusters and RabbitMQ cluster running version 3.10.0 or later.
We recommend you to use the Prometheus metrics integrations but these legacy metrics integrations are still also available:
- CloudWatch
- CloudWatch v2
- Datadog
- Datadog v2
- Librato
- NewRelic v2
- Splunk
- Stackdriver
HTTP Request🔗
POST https://api.cloudamqp.com/api/integrations/metrics/<SYSTEM>
URL Parameters🔗
Parameter | Description |
---|---|
SYSTEM | The metrics system to integrate to, any of these: azure_monitor , cloudwatch , cloudwatch_v2 , cloudwatch_v3 , datadog , datadog_v2 , datadog_v3 , dynatrace , librato , newrelic_v2 , newrelic_v3 , splunk , splunk_v2 , stackdriver or stackdriver_v2
|
Request Parameters (azure_monitor
)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "connection_string=InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://ingestion.azuremonitor.com/" \
https://api.cloudamqp.com/api/integrations/metrics/azure_monitor
Parameter | Description |
---|---|
connection_string | Azure Application Insights Connection String |
Request Parameters (cloudwatch
and cloudwatch_v2
) with access keys🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "region=us-west-1&access_key_id=87656789&secret_access_key=09876tyui9876yui98" \
https://api.cloudamqp.com/api/integrations/metrics/cloudwatch
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "region=us-west-1&access_key_id=87656789&secret_access_key=09876tyui9876yui98" \
https://api.cloudamqp.com/api/integrations/metrics/cloudwatch_v2
Parameter | Description |
---|---|
region | The AWS region to use |
access_key_id | The access key id to use (Needs to have the PutMetricData permission) |
secret_access_key | The secret that goes with the key id |
Request Parameters (cloudwatch
, cloudwatch_v2
and cloudwatch_v3
) with assume role🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "region=us-west-1&iam_role=arn:aws:iam::ACCOUNT-ID:role/ROLE-NAME&iam_external_id=cloudamqp-abc123" \
https://api.cloudamqp.com/api/integrations/metrics/cloudwatch
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "region=us-west-1&iam_role=arn:aws:iam::ACCOUNT-ID:role/ROLE-NAME&iam_external_id=cloudamqp-abc123" \
https://api.cloudamqp.com/api/integrations/metrics/cloudwatch_v2
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "region=us-west-1&iam_role=arn:aws:iam::ACCOUNT-ID:role/ROLE-NAME&iam_external_id=cloudamqp-abc123" \
https://api.cloudamqp.com/api/integrations/metrics/cloudwatch_v3
Parameter | Description |
---|---|
region | The AWS region to use |
iam_role | An AWS IAM role in your account with PutMetricData permission. |
iam_external_id | Create own external identifier that match the role created. E.g. "cloudamqp-abc123". |
Request Parameters (librato
)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "email=my@email.com&api_key=9876thjio90876tyu" \
https://api.cloudamqp.com/api/integrations/metrics/librato
Parameter | Description |
---|---|
The email registered at librato | |
api_key | The API key |
Request Parameters (datadog
and datadog_v2
)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "api_key=XXXXXXXXXXXXX®ion=us1" \
https://api.cloudamqp.com/api/integrations/metrics/datadog
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "api_key=XXXXXXXXXXXXX®ion=us1" \
https://api.cloudamqp.com/api/integrations/metrics/datadog_v2
Parameter | Description |
---|---|
api_key | The API key for Datadog |
region | The region to send the logs, [us1, us3, us5, eu] |
Request Parameters (datadog_v3
)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "api_key=XXXXXXXXXXXXX" \
https://api.cloudamqp.com/api/integrations/metrics/datadog_v3
Parameter | Description |
---|---|
api_key | The API key for Datadog |
Request Parameters (dynatrace
)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "environment_id=XXXXXXX&access_token=XXXXX" \
https://api.cloudamqp.com/api/integrations/metrics/dynatrace
Parameter | Description |
---|---|
environment_id | Environment ID for a Dynatrace account |
access_token | Access token with at least Ingest metrics permission |
Request Parameters (newrelic_v2
)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "api_key=XXXXXXXXXXXXXXXXX®ion=us" \
https://api.cloudamqp.com/api/integrations/metrics/newrelic_v2
Parameter | Description |
---|---|
api_key | The API key for NewRelic |
region | US or EU |
Request Parameters (newrelic_v3
)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "api_key=XXXXXXXXXXXXXXXXX" \
https://api.cloudamqp.com/api/integrations/metrics/newrelic_v3
Parameter | Description |
---|---|
api_key | The API key for NewRelic |
Request Parameters (splunk
)🔗
Create a HTTP Event Collector token at https://<your-splunk>.cloud.splunk.com/en-US/manager/search/http-eventcollector
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "token=XXXXX&host_port=innput-prd-p-rdq96mdbptj4.cloud.splunk.com:8080&sourcetype=generic_single_line" \
https://api.cloudamqp.com/api/integrations/metrics/splunk
Parameter | Description |
---|---|
token | The token used for authentication |
host_port | Destination to send the logs |
sourcetype | Assigns source type to the data exported |
Request Parameters (splunk_v2
)🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "token=XXXXX&endpoint=input-prd-p-rdq96mdbptj4.cloud.splunk.com:8080" \
https://api.cloudamqp.com/api/integrations/metrics/splunk
Parameter | Description |
---|---|
token | The token secret used for authentication |
endpoint | HEC destination to send the logs |
Optional Request Parameter🔗
Request parameter that are optional and can be added to each metric integration.
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "region=us-west-1&access_key_id=87656789&secret_access_key=09876tyui9876yui98&tags=env=prod,region=europe" \
https://api.cloudamqp.com/api/integrations/metrics/cloudwatch_v2
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "api_key=XXXXXXXXXXXXX®ion=us1&tags=env=prod,region=europe" \
https://api.cloudamqp.com/api/integrations/metrics/datadog_v2
Parameter | Description |
---|---|
tags | Enter tags for the integration, like this: env=prod,region=europe |
queue_regex | Allowlist to filter queues using regular expression. Leave empty to include all queues. |
vhost_regex | Allowlist to filter vhost using regular expression. Leave empty to include all queues. |
include_ad_queues | true/false By default we don't include auto-delete queues in the metrics. |
Update metrics integration🔗
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "api_key=XXXXXXXXXXXXX®ion=us1&tags=env=dev,region=us1" \
https://api.cloudamqp.com/api/integrations/metrics/10
HTTP Request🔗
PUT https://api.cloudamqp.com/api/integrations/metrics/<INT_ID>
URL Parameters🔗
Parameter | Description |
---|---|
INT_ID | The ID of the integration to update |
Request Parameter🔗
See above supported systems and paramaters
Delete metric integration🔗
curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/integrations/metrics/636
HTTP Request🔗
DELETE https://api.cloudamqp.com/api/integrations/metrics/<INT_ID>
URL Parameters🔗
Parameter | Description |
---|---|
INT_ID | The ID of the integration to delete |
Maintenance🔗
List, run and reschedule maintenance
List upcoming maintenance🔗
curl -XGET -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx https://api.cloudamqp.com/api/maintenance
The above command returns JSON structured like this:
[
{
"id": 1234,
"scheduled_by": "2022-02-05 00:36:00 +0000",
"status": "scheduled",
"required_by": "2022-03-05 00:00:00 +0000",
"duration": "1 hour",
"description": "..."
}
]
HTTP Request🔗
GET https://api.cloudamqp.com/api/maintenance
Reschedule maintenance🔗
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d '{"scheduled_by":"2022-02-05 00:36:00 +0000"}' \
-H "Content-type: application/json" \
https://api.cloudamqp.com/api/maintenance/1234
HTTP Request🔗
PUT https://api.cloudamqp.com/api/maintenance/<ID>
Request Parameters🔗
Parameter | Description |
---|---|
scheduled_by | Date string |
URL Parameters🔗
Parameter | Description |
---|---|
ID | Maintenance id |
Run maintenance now🔗
curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx https://api.cloudamqp.com/api/maintenance/<ID>/run
HTTP Request🔗
POST https://api.cloudamqp.com/api/maintenance/<ID>/run
URL Parameters🔗
Parameter | Description |
---|---|
ID | Maintenance id |
Maintenance Settings🔗
Get and update maintenance settings of the cluster. See Maintenance by the CloudAMQP team for more information.
Get maintenance settings🔗
Fetches the current maintenance settings for the cluster.
HTTP Request🔗
GET https://api.cloudamqp.com/api/maintenance/settings
curl -X GET -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx https://api.cloudamqp.com/api/api/maintenance/settings
The above command returns JSON structured like this:
{
"preferred_maintenance_day": "Monday",
"preferred_maintenance_time": "03:00",
"automatic_updates": false
}
Update maintenance settings🔗
Updates the maintenance settings for the cluster.
HTTP Request🔗
POST https://api.cloudamqp.com/api/maintenance/settings
curl -X POST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d '{ "preferred_maintenance_day": "Monday", "preferred_maintenance_time": "00:00", "automatic_updates": "true" }' \
-H "content-type: application/json" https://api.cloudamqp.com/api/api/maintenance/settings
Request Parameters🔗
Parameter | Required | Type | Description |
---|---|---|---|
preferred_maintenance_day | true | String | Day of the week for scheduling maintenances (e.g. Monday, Tuesday, etc). |
preferred_maintenance_time | true | String | UTC time for scheduling maintenances (e.g 00:00). |
automatic_updates | false | Boolean | Enable/Disable automatic version upgrades updates. Currently only supported by LavinMQ. From August 5, 2025, will default to true for LavinMQ. |
VPC🔗
List peering requests🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/vpc-peering
The above command returns JSON structured like this:
{
"rows": [
{
"tag_set": [],
"vpc_peering_connection_id": "pcx-98yi98u",
"requester_vpc_info": {
"owner_id": "76567890987",
"vpc_id": "vpc-876thui8",
"cidr_block": "10.128.0.0/24"
},
"accepter_vpc_info": {
"owner_id": "987687678",
"vpc_id": "vpc-i876thuio",
"cidr_block": "10.0.0.0/16"
},
"status": {
"code": "active",
"message": "Active"
},
"routes": [
{
"destination": "10.0.0.0/16",
"state": "active"
}
]
}
],
"vpc": {
"id": "vpc-876thui8",
"name": "test-speedcar",
"subnet": "10.128.0.0/24"
}
}
HTTP Request🔗
GET https://api.cloudamqp.com/api/vpc-peering
Create peering request🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d "peer_account_id=1234567890123456&peer_vpc_id=vpc-0123456789123&peer_subnet=10.20.30.0%2F24"
https://api.cloudamqp.com/api/vpc-peering
This endpoint creates a peering request from the VPC hosting your cluster to the VPC you specify in the request.
Note: The request requires different parameters depending on if you are using Google Cloud Platform or Amazon Web Services.
HTTP Request🔗
POST https://api.cloudamqp.com/api/vpc-peering
Request Parameters (AWS)🔗
Parameter | Description |
---|---|
peer_account_id | Your account ID at the cloud provider |
peer_vpc_id | Your VPC ID |
peer_subnet | Peer subnet, whole or part of your VPC subnet |
Request Parameters (GCP)🔗
Parameter | Description |
---|---|
peer_network_uri | Your GCE network uri |
Accept peering request (AWS)🔗
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/vpc-peering/request/1
This endpoint accepts a pending peering request.
HTTP Request🔗
PUT https://api.cloudamqp.com/api/vpc-peering/<PEERING_REQUEST_ID>
URL Parameters🔗
Parameter | Description |
---|---|
PEERING_REQUEST_ID | The ID of the peering request |
Delete peering request🔗
curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/vpc-peering/78
HTTP Request🔗
DELETE https://api.cloudamqp.com/api/vpc-peering/<PCX_ID>
URL Parameters🔗
Parameter | Description |
---|---|
PCX_ID | The ID of the peering connection |
VPC Connect🔗
This endpoint handles PrivateLink for Amazon Web Services or Azure and Private Service Connect for Google Cloud Platform.
Retrieve VPC connect information🔗
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/vpc-connect
The above command returns JSON structured like this:
// AWS
{
"updated_at": "2023-11-01 12:00:00 +0000",
"status": "enabled",
"service_name": "com.amazonaws.vpce.<region>.vpce-svc-<id>",
"allowed_principals": [
"arn:aws:iam::aws-account-id:root",
"arn:aws:iam::aws-account-id:user/user-name"
],
"active_zones": [
"<active-zone>"
]
}
// Azure
{
"updated_at": "2023-11-01 12:00:00 +0000",
"status": "enabled",
"server_name": "<server-name>",
"alias": "<server-name>.<guid>.<region>.azure.privatelinkservice",
"approved_subscriptions": [
"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
]
}
// GCP
{
"updated_at": "2023-11-01 12:00:00 +0000",
"status": "enabled",
"server_name": "<server-name>",
"allowed_projects": [
"project-id"
]
}
HTTP Request🔗
GET https://api.cloudamqp.com/api/vpc-connect
Enable VPC Connect🔗
# AWS
curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d '{"allowed_principals":["arn:aws:iam::aws-account-id:user/user-name"]}' \
-H "content-type: application/json" \
https://api.cloudamqp.com/api/vpc-connect
# Azure
curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d '{"approved_subscriptions":["XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"]}' \
-H "content-type: application/json" \
https://api.cloudamqp.com/api/vpc-connect
# GCP
curl -XPOST -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d '{"allowed_projects":["project-id"]}' \
-H "content-type: application/json" \
https://api.cloudamqp.com/api/vpc-connect
This endpoint enables PrivateLink (AWS and Azure) and Private Service Connection (GCP) for the
instance with a standalone VPC. If no VPC exists, one is created. Once enabled, the provided
allowed_principals
, approved_subscriptions
or allowed_projects
will be applied to the allowlist.
Note: The request requires different parameters to the allowlist depending on if you are using Amazon Web Services, Azure or Google Cloud Platform.
HTTP Request🔗
POST https://api.cloudamqp.com/api/vpc-connect
Request Parameters (AWS)🔗
Parameter | Description |
---|---|
allowed_principals | Array of ARN principals |
ARN principal format for AWS account, IAM user and role:
arn:aws:iam::aws-account-id:root
arn:aws:iam::aws-account-id:user/user-name
arn:aws:iam::aws-account-id:role/role-name
More information can be found at, AWS PrivateLink
Request Parameters (Azure)🔗
Parameter | Description |
---|---|
approved_subscriptions | Array of subscriptions ID |
Subscription ID format (guid):
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
More information can be found at, Azure PrivateLink
Request Parameters (GCP)🔗
Parameter | Description |
---|---|
allowed_projects | Array of project IDs |
Project ID format:
project-id
More information can be found at, GCP Private Service Connect
Update allowlist🔗
# AWS
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d '{"allowed_principals":["arn:aws:iam::aws-account-id:user/user-name"]}' \
-H "content-type: application/json" \
https://api.cloudamqp.com/api/vpc-connect
# Azure
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d '{"approved_subscriptions":["XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"]}' \
-H "content-type: application/json" \
https://api.cloudamqp.com/api/vpc-connect
# GCP
curl -XPUT -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
-d '{"allowed_projects":["project-id"]}' \
-H "content-type: application/json" \
https://api.cloudamqp.com/api/vpc-connect
This endpoint updates the allowlist for the enabled VPC connect (PrivateLink/Private Service Connect). Please note that the full list should be given, any current entries in the allowlist will be removed if it's not in the list sent in this request.
HTTP Request🔗
PUT https://api.cloudamqp.com/api/vpc-connect
URL Parameters🔗
Request Parameters (AWS)🔗
Parameter | Description |
---|---|
allowed_principals | Array of ARN principals |
ARN principal format for AWS account, IAM user and role:
arn:aws:iam::aws-account-id:root
arn:aws:iam::aws-account-id:user/user-name
arn:aws:iam::aws-account-id:role/role-name
Request Parameters (Azure)🔗
Parameter | Description |
---|---|
approved_subscriptions | Array of subscriptions ID |
Subscription ID format (guid):
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Request Parameters (GCP)🔗
Parameter | Description |
---|---|
allowed_projects | Array of project IDs |
Project ID format:
project-id
Disable VPC Connect🔗
curl -XDELETE -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx \
https://api.cloudamqp.com/api/vpc-connect
HTTP Request🔗
DELETE https://api.cloudamqp.com/api/vpc-connect
Authentication🔗
Authentication is done by sending your API key in the user or password field for Basic Auth.
curl -u :xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx \
https://api.cloudamqp.com/api/<endpoint>
You can find your API key on the details page for your instance.
Formats🔗
All API end points support form FormData and JSON in the request.
You need to format the request accordingly and if you send the request as JSON
be sure to add the content type header content-type: application/json
otherwise the server won't be able to parse your request.
Status Codes🔗
Status Code | Meaning |
---|---|
200 | The request completed successfully. |
204 | The request completed successfully. |
400 | Bad Request -- Your request might be invalid. |
401 | Unauthorized -- Your API key is wrong. |
403 | Forbidden -- The resource requested is hidden for administrators only. |
404 | Not Found -- The specified resource could not be found. |
405 | Method Not Allowed -- You tried to access a resource with an invalid method. |
429 | Too Many Requests -- Rate limiting, you have requested too many resources in a given amount of time. |
500 | Internal Server Error -- We had a problem with our server. Try again later. |