Monitor RabbitMQ in Kubernetes
RabbitMQ running in Kubernetes can be monitored in SnappyFlow using:
- sfKubeAgent as sidecar container.
MySQL monitoring with sfKubeAgent
In this approach, sfKubeAgent is run as a side-car inside RabbitMQ pod. The example below shows the config-map for sfKubeAgent container, config-map for RabbitMQ container and pod yaml.
ConfigMap for RabbitMQ sfKubeAgent:
apiVersion: v1
kind: ConfigMap
metadata:
  name: rabbitmq-sfagent-config
data:
  config.yaml: |-
    key: "<profile key>"
    metrics:
      plugins:
        - name: rabbitmq
          enabled: true
          interval: 60
          config:
            documentsTypes:
              - clusterDetails
              - nodeStats
              - connectionStats
              - channelStats
              - exchangeStats
              - queueStats
              - consumerStats
            host: localhost
            password: <password>
            secure: false
            port: 15672
            username: <username>
    agent:
      loglevel: debug
RabbitMQ YAML(Statefulset)
apiVersion: apps/v1
kind: StatefulSet
metadata:
 name: rabbitmqcluster
spec:
 replicas: 3
 serviceName: rabbitmqcluster-headless
 template:
   spec:
     containers:
     - command:
       - /app/sfagent
       - -config-file
       - /opt/sfagent/config.yaml
       - -enable-console-log
       env:
       - name: APP_NAME
         value: rabbitmq
       - name: PROJECT_NAME
         value: rabbitmq-kube
       image: snappyflowml/sfagent:latest
       imagePullPolicy: Always
       name: rabbitmq-sfagent
       resources:
         limits:
           cpu: 500m
           memory: 500Mi
         requests:
           cpu: 100m
           memory: 128Mi
       terminationMessagePath: /dev/termination-log
       terminationMessagePolicy: File
       volumeMounts:
       - mountPath: /opt/sfagent/config.yaml
         name: sfagent
         subPath: config.yaml
     securityContext:
       fsGroup: 1001
     volumes:
     - configMap:
         defaultMode: 420
         name: rabbitmq-sfagent-config
       name: sfagent
Parameters required in metrics plugin
- Username: username of the RabbitMQ user
- password: password for RabbitMQ
- port: Broker Port
- secure: http(false) or https(true)
- documentTypes: User can either leave this empty to collect all documentTypes or mention specific documentTypes to collect. Available options for plugin type RabbitMQ are clusterDetails, nodeStats, connectionStats, exchangeStats, queueStats, consumerStats
Viewing data and dashboards
Data collected by plugins can be viewed in SnappyFlow’s browse data section
- plugin: rabbitmq
- documentType: clusterDetails, nodeStats, connectionStats, exchangeStats, queueStats, consumerStats
- Dashboard template: RabbitMQ