uphabit / bull_exporter Goto Github PK
View Code? Open in Web Editor NEWPrometheus exporter for Bull metrics
License: MIT License
Prometheus exporter for Bull metrics
License: MIT License
Hi guys,
I am trying to put it to run, I am using the command bellow:
Am I missing something? Ok the Redis is not specified, but i tried to send env variable but even with nothing happend.
Tks
Ricardo
I've deployed Bull Exporter in Kubernetes to monitor our bull queue.
So far, it's able to report active, waiting and failed jobs however it does not appear to be able to get duration information. Tailing the pod logs indicates a constant influx of log messages indicating :
"level":40,"job":"2315963","msg":"unable to find job from id"
Is there any insight you might be able to share in order to troubleshoot / resolve this issue ?
[Goal]
Our goal is to integrate this bull_exporter
with Datadog prometheus, then showing all metrics comes from bull_exporter
as dashboards.
[Tools]
Google Redis, DataDog, and prometheus.
[Status]
bull_exporter
is already showing all metrics from type (count) but bull_queue_complete_duration
is not existing in datadog dashboards.
I checked the documentation many times, i don't see if i forgot something or not.
[Question]
What i missed to show bull_queue_complete_duration
in datadog dasboards ?
Thanks in advance ๐
The version of ioredis used, doesn't work with Redis ACLs, as it doesn't pass a user to AUTH.
I tested the same version 4.14.1 you use, and get the following error, but with e.g. 5.0.5 and the same URL it works completely.
> [ioredis] Unhandled error event: ReplyError: WRONGPASS invalid username-password pair or user is disabled.
at parseError (/root/node_modules/redis-parser/lib/parser.js:179:12)
at parseType (/root/node_modules/redis-parser/lib/parser.js:302:14)
if you have queues defined like this
const Bull = require("bull");
new Bull("foo:bar");
the queue discovery feature does not find them
I am trying to deploy the bull_exporter in kubernetes but target is showing "Down" in Prometheus.
I am using kube-prometheus-stack and following is my scrape-config.
One thing I noticed in sample file is that in deployment object there is no exposed port. Without exposed port how would service will be able to connect to pod? Please let me know what I am missing here.
Thanks in advance.
As per https://grafana.com/docs/grafana/latest/developers/angular_deprecation/, the angular is being depricated and will be removed in Grafana 11 which will be releasing in May 2024.
Is there any plans of moving away from angular in the dashboard?
There was already a MR for this.
I need it because AWS Elasticache is using TLS encrypted Redis.
Hi,
Is there any way to export metrics per job? Summary allows to have an overview of Avg execution time, but it would be great to see it on a job level.
Please advice!
I noticed that you only call collectJobCompletions
on startup, which iterates through the list of queues that were discovered on startup
If we later call the discover_queues endpoint, we don't appear to reinitialize the job complete listeners
Is this a bug?
I have a prometheus-grafana setup on k8s and I have the bull pod running and it shows metrics at the /metrics endpoint and I have both scrape annotations at pod,deployment and service level.
Still on prometheus it doesnt show up, I believe I need to add a scrape config, can you assist me here?
This package seems written for Bull from OptimalBits but I'm wondering if it works for BullMQ by taskforce.sh as well.
Hi there!
I have question regarding metrics types. Why does bull_exporter expose bull_queue_completed
and bull_queue_failed
metrics as type gauge? Completed and failed jobs can be represented as single monotonically increasing counter, which is what is Prometheus counter type designed for.
Completed and failed counters can be incremented in queue's global:completed
and global:failed
event handlers.
Jan
Hi Gabriel,
I'm trying to setup the exporter to collect metrics from cloud redis deployment using full uri, like:
EXPORTER_REDIS_URL="redis://admin:XXXpassishereXXX@redis-14505.c15.eu-central-1-1.ec2.cloud.redislabs.com:10735/0"
But when I observe the exporter result, I see
# HELP bull_queue_completed Number of completed messages
# TYPE bull_queue_completed gauge
# HELP bull_queue_complete_duration Time to complete jobs
# TYPE bull_queue_complete_duration summary
# HELP bull_queue_active Number of active messages
# TYPE bull_queue_active gauge
# HELP bull_queue_delayed Number of delayed messages
# TYPE bull_queue_delayed gauge
# HELP bull_queue_failed Number of failed messages
# TYPE bull_queue_failed gauge
# HELP bull_queue_waiting Number of waiting messages
# TYPE bull_queue_waiting gauge
What means the metrics are not collected, and I suspect because of problems with redis connection.
Could you advise if full uri redis connection is supported and correct uri format if yes?
Thanks!
Running this for the first time and it does not seem to start properly. Just goes into a restart loop with this only error outputted for logs
{"name":"bull-prom-metrics","hostname":"answers-bull-exporter-76776dc6cb-6njqp","pid":8,"level":50,"msg":"No clean exit after 5 seconds, force exit","time":"2019-11-13T20:23:48.853Z","v":0}
apiVersion: apps/v1
kind: Deployment
metadata:
name: answers-bull-exporter
labels:
app: answers-bull-exporter
spec:
selector:
matchLabels:
app: answers-bull-exporter
replicas: 1
template:
metadata:
labels:
app: answers-bull-exporter
spec:
containers:
- name: answers-bull-exporter
image: uphabit/bull_exporter:latest
imagePullPolicy: Always
securityContext:
privileged: false
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- all
resources:
requests:
cpu: 100m
memory: 128M
limits:
cpu: 200m
memory: 512M
env:
- name: EXPORTER_REDIS_URL
value: redis://my.redisserver.com:6379/0
- name: EXPORTER_PREFIX
value: assist-task-manager
- name: EXPORTER_STAT_PREFIX
value: assist-task-manager-stats
livenessProbe:
initialDelaySeconds: 30
periodSeconds: 15
httpGet:
path: /healthz
port: 9538
---
apiVersion: v1
kind: Service
metadata:
name: answers-bull-exporter
labels:
app: answers-bull-exporter
spec:
type: ClusterIP
ports:
- name: http
port: 9538
targetPort: 9538
selector:
app: answers-bull-exporter
Any Idea what I maybe doing wrong here?
This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.
These updates are currently rate-limited. Click on a checkbox below to force their creation now.
uuid
, @types/uuid
)These updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox.
bull
, @types/bull
)yargs
, @types/yargs
)These updates have all been created already. Click a checkbox below to force a retry/rebase of any.
@babel/core
, @babel/preset-env
, @babel/preset-typescript
, @types/bull
, @types/bunyan
, @types/express
, @types/jest
, @types/node
, @types/uuid
, @types/yargs
, acorn
, bull
, bunyan
, jest
, mkdirp
, ts-jest
, tslib
, typescript
, uuid
)@types/jest
, jest
, ts-jest
).circleci/config.yml
circleci/node 12
circleci/node 12
circleci/node 12
Dockerfile
package.json
@types/bull ^3.5.4
@types/bunyan ^1.8.5
@types/uuid ^8.0.0
@types/yargs ^15.0.0
bull ^3.6.0
bunyan ^1.8.12
express ^4.17.1
prom-client ^12.0.0
tslib ^2.0.0
uuid ^8.0.0
yargs ^15.1.0
@babel/core 7.10.4
@babel/preset-env 7.10.4
@babel/preset-typescript 7.10.4
@types/express 4.17.7
@types/jest 26.0.4
@types/node 10.17.27
jest 26.1.0
madge 3.9.2
ts-jest 26.1.2
tslint 5.20.1
tslint-config-airbnb 5.11.2
tslint-eslint-rules 5.4.0
tslint-microsoft-contrib 6.2.0
typescript 3.9.6
acorn >=7.1.1
kind-of >=6.0.3
mkdirp ^0.5.3
minimist >=1.2.5
@types/node 10.17.27
typescript 3.9.6
.travis.yml
node 10
Hi guys,
Is it possible to add an instruction to the readme to show how to get it all running please? (the Grafana dashboard).
I have to say, I don't have any experience with Grafana and prometheus.
IORedis has support to connect to redis clusters. I didn't find a way for bull_exporter to connect to redis clusters without a small adjustment (changing the constructor from IORedis(opts)
to IORedis.Cluster([opts])
.
Opening up this issue to track the status of the feature.
There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.
File: renovate.json
Error type: Invalid JSON (parsing failed)
Message: JSON.parse error: Unexpected token ] in JSON at position 515
Hello guys!
Simple question - can you share the source for the Grafana dashboard which is presented in your README? Couldn't find it in the repo and in the Grafana dashboards marketplace.
P.S. Thank you for your work - I was literally surprised when I found the well contributed and documented exporter for such rare queue as Bull.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.