Need help with bull_exporter?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

UpHabit
142 Stars 29 Forks MIT License 340 Commits 13 Opened issues

Description

Prometheus exporter for Bull metrics

Services available

!
?

Need anything else?

Contributors list

Bull Queue Exporter

Prometheus exporter for Bull metrics.



UI

Grafana Dashboard

Setup

Prometheus

An existing prometheus server is required to use this project

To learn more about how to setup promethues and grafana see: https://eksworkshop.com/monitoring/

Grafana

The dashboard pictured above is available to download from grafana. It will work aslong as EXPORTERSTATPREFIX is not changed.

Queue Discovery

Queues are discovered at start up by running

KEYS bull:*:id
this can also be triggered manually from the
/discover_queues
endpoint
curl -XPOST localhost:9538/discover_queues

Metrics

| Metric | type | description | |------------------------------|---------|-------------| | bullqueuecompleted | counter | Total number of completed jobs | | bullqueuecompleteduration | summary | Processing time for completed jobs | | bullqueueactive | counter | Total number of active jobs (currently being processed) | | bullqueuedelayed | counter | Total number of jobs that will run in the future | | bullqueuefailed | counter | Total number of failed jobs | | bullqueue_waiting | counter | Total number of jobs waiting to be processed |

Kubernetes Usage

Environment variables for default docker image

| variable | default | description | |-----------------------|--------------------------|-------------------------------------------------| | EXPORTERREDISURL | redis://localhost:6379/0 | Redis uri to connect | | EXPORTERPREFIX | bull | prefix for queues | | EXPORTERSTATPREFIX | bullqueue_ | prefix for exported metrics | | EXPORTERQUEUES | - | a space separated list of queues to check | | EXPORTERAUTODISCOVER | - | set to '0' or 'false' to disable queue discovery|

Example deployment

see: k8s-sample.yaml for more options

apiVersion: apps/v1

kind: Deployment metadata: name: bull-exporter labels: app: bull role: exporter

spec: selector: matchLabels: app: bull role: exporter replicas: 1 template: metadata: labels: app: bull role: exporter spec: containers: - name: bull-exporter image: uphabit/bull_exporter:latest securityContext: runAsGroup: 65534 # nobody runAsUser: 65534 # nobody runAsNonRoot: true privileged: false allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities: drop: - all resources: requests: cpu: 100m memory: 128M limits: cpu: 200m memory: 512M env: # space delimited list of queues - name: EXPORTER_QUEUES value: "mail job_one video audio"

          # find the redis service in the cluster
        - name: EXPORTER_REDIS_URL
          value: redis://redis:6379/0

apiVersion: v1 kind: Service metadata: name: bull-exporter labels: app: bull role: exporter annotations: prometheus.io/scrape: 'true' prometheus.io/port: '9538' spec: type: ClusterIP ports: - name: http port: 9538 targetPort: 9538 selector: app: bull role: exporter

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.