We just raised $142 million in our Series D Round! Read About Our Plans for the Future

Coralogix RabbitMQ Agent Coralogix RabbitMQ Agent

Last Updated: Jun. 15, 2022

This is a tool to pull Metrics from RabbitMQ Admin UI and send them to Coralogix. It will deploy a lambda function to your AWS Account. This Lambda function will periodically pull your RabbitMQ Metrics and send them to Coralogix.

Requirements

  • User with access to RabbitMQ Admin UI
  • AWS account
  • Your User should have AWS CLI and SAM installed and working.
  • Connectivity between AWS Lambda Functions and RabbitMQ Admin UI

Configuration

  1. Clone this repository to your computer
  2. To Deploy the Lambda Function run the following sam commands:
# sam build
# sam deploy --guided
  1. Once the new lambda gets deployed, get into your AWS Account, go to Lambda functions and find the recently deployed Lambda. Edit the following Environment Variables:
VariableDescription
APPLICATION_NAMECoralogix Application Metadata
SUBSYSTEMCoralogix Subsystem Metadata
PRIVATE_KEYCoralogix Private Key
RABBITMQ_USERNAMERabbit Admin UI Username
RABBITMQ_PASSWORDRabbit Admin UI Password
RABBITMQ_FQDNRabbit Admin UI URL
Example:
https://X-XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.mq.us-east-1.amazonaws.com

The Lambda function needs to have network connectivity with Rabbit MQ Admin UI (Firewall, VPC, SecurityGroup, Etc)

If your Account is not in the EU region (the account URL does not have a .com suffix) you will need to add this environment variable:

CORALOGIX_URL=https://<coralogix_cluster_url>/api/v1/logs
Cluster locationcoralogix_cluster_url
USapi.coralogix.us
INapi.app.coralogix.in
Singaporeapi.coralogixsg.com
EU2api.eu2.coralogix.com

This Current Version Supports Overview, Queues, Nodes, and Connections API.

Documentation here

Metric Example:

{
  "cluster_name": "mybroker",
  "disable_stats": false,
  "product_version": "3.9.16",
  "erlang_full_version": "Erlang/OTP 24 [erts-12.3.1] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [jit]",
  "rates_mode": "basic",
  "queue_totals": {
    "messages": 16,
    "messages_details": {
      "rate": 0
    },
    "messages_ready": 16,
    "messages_ready_details": {
      "rate": 0
    },
    "messages_unacknowledged": 0,
    "messages_unacknowledged_details": {
      "rate": 0
    }
  },
  "contexts": [
    {
      "ssl_opts": {
        "honor_ecc_order": "true",
        "honor_cipher_order": "true",
        "cacertfile": "/etc/rabbitmq/certs/cert_chain.pem",
        "keyfile": "/etc/rabbitmq/certs/server_key.pem",
        "certfile": "/etc/rabbitmq/certs/server_certificate.pem",
        "port": "15671",
        "versions": "['tlsv1.2']"
      },
      "node": "[email protected]",
      "description": "RabbitMQ Management",
      "path": "/",
      "cowboy_opts": "[{sendfile,false}]",
      "port": "15671",
      "ssl": "true"
    }
  ],
  "product_name": "RabbitMQ",
  "sample_retention_policies": {
    "global": [
      600,
      3600,
      28800,
      86400
    ],
    "basic": [
      600,
      3600
    ],
    "detailed": [
      600
    ]
  },
  "management_version": "3.9.16",
  "churn_rates": {
    "channel_closed": 16,
    "channel_closed_details": {
      "rate": 0
    },
    "channel_created": 16,
    "channel_created_details": {
      "rate": 0
    },
    "connection_closed": 16,
    "connection_closed_details": {
      "rate": 0
    },
    "connection_created": 16,
    "connection_created_details": {
      "rate": 0
    },
    "queue_created": 1,
    "queue_created_details": {
      "rate": 0
    },
    "queue_declared": 2,
    "queue_declared_details": {
      "rate": 0
    },
    "queue_deleted": 0,
    "queue_deleted_details": {
      "rate": 0
    }
  },
  "node": "[email protected]",
  "endpoint": "overview",
  "rabbitmq_version": "3.9.16",
  "statistics_db_event_queue": 0,
  "exchange_types": [
    {
      "name": "direct",
      "description": "AMQP direct exchange, as per the AMQP specification",
      "enabled": true
    },
    {
      "name": "fanout",
      "description": "AMQP fanout exchange, as per the AMQP specification",
      "enabled": true
    },
    {
      "name": "headers",
      "description": "AMQP headers exchange, as per the AMQP specification",
      "enabled": true
    },
    {
      "name": "topic",
      "description": "AMQP topic exchange, as per the AMQP specification",
      "enabled": true
    },
    {
      "name": "x-consistent-hash",
      "description": "Consistent Hashing Exchange",
      "enabled": true
    },
    {
      "name": "x-federation-upstream",
      "description": "Federation upstream helper exchange",
      "internal_purpose": "federation",
      "enabled": true
    }
  ],
  "message_stats": {
    "confirm": 16,
    "confirm_details": {
      "rate": 0
    },
    "disk_reads": 1,
    "disk_reads_details": {
      "rate": 0
    },
    "disk_writes": 16,
    "disk_writes_details": {
      "rate": 0
    },
    "drop_unroutable": 0,
    "drop_unroutable_details": {
      "rate": 0
    },
    "publish": 16,
    "publish_details": {
      "rate": 0
    },
    "return_unroutable": 0,
    "return_unroutable_details": {
      "rate": 0
    }
  },
  "erlang_version": "24.3.3",
  "enable_queue_totals": false,
  "object_totals": {
    "channels": 0,
    "connections": 0,
    "consumers": 0,
    "exchanges": 7,
    "queues": 1
  }
}

On this page