Monitoring
Logging
keuss-server
uses winston-log-space for logging, and by default it logs to stdout only, on a info
level. See winston-log-space
for how to configure and tailor logging
Prometheus metrics
Several metrics are provided at the /metrics
endpoint:
- Base metrics: metrics added by promster-express
- Queue operations metrics:
keuss_q_push
: counter, push operations done. Use labels 'proto' (protocol), 'ns' (namespace), 'q' (queue name), 'status' (op status, ok or failed)keuss_q_pop
: counter, pop operations done. Use labels 'proto' (protocol), 'ns' (namespace), 'q' (queue name), 'status' (op status, ok or failed)keuss_q_reserve
: counter, reserve operations done. Use labels 'proto' (protocol), 'ns' (namespace), 'q' (queue name), 'status' (op status, ok or failed)keuss_q_commit
: counter, commit operations done. Use labels 'proto' (protocol), 'ns' (namespace), 'q' (queue name), 'status' (op status, ok or failed)keuss_q_rollback
: counter, rollback operations done. Use labels 'proto' (protocol), 'ns' (namespace), 'q' (queue name), 'status' (op status, ok or failed)
- STOMP metrics:
stomp_sessions
: gauge, active STOMP sessions. No labelsstomp_subscriptions
: gauge, active STOMP subscriptions on all sessions. No labelsstomp_pending_acks
: gauge, total number of messages pending of ack. No labelsstomp_pending_tids
: gauge, idle consumers. No labelsstomp_wsize
: gauge, total window size on all consumers for all subscriptions. No labels
- AMQP metrics:
amqp_connections
: gauge, active amqp connections. No labelsamqp_senders
: gauge, active amqp senders. No labelsamqp_receivers
: gauge, active amqp receivers. No labelsamqp_pending_acks
: gauge, in-flight messages, pending an ackamqp_pending_tids
: gauge, idle consumersamqp_wsize
: gauge, total ack window size across all senders
- Exchanges metrics:
keuss_exchange_hops
: Histogram on loop processing time. Uses labels 'exchange' and 'status'
- Keuss-reflected metrics: Those are a reflection of the info maintained by keuss' own stats and therefore will be the same on all servers in a cluster if a non-local stats provider (such as mongodb or redis) is used:
q_global_size
: gauge, size of queue, only available elements. Use labels 'ns' (namespace), 'q' (queue name)q_global_schedSize
: gauge, elements in queue due in the future. Use labels 'ns' (namespace), 'q' (queue name)q_global_totalSize
: gauge, total size of queue (all elements). Use labels 'ns' (namespace), 'q' (queue name)q_global_resvSize
: gauge, reserved elements in queue pending commit/rollback. Use labels 'ns' (namespace), 'q' (queue name)q_global_next_t
: gauge, delta in milliseconds of next element due. Can be negative. Use labels 'ns' (namespace), 'q' (queue name)q_global_put
: counter, number of elements intserted. Use labels 'ns' (namespace), 'q' (queue name)q_global_get
: counter, number of elements extracted. Use labels 'ns' (namespace), 'q' (queue name)q_global_reserve
: counter, number of elements reserved. Use labels 'ns' (namespace), 'q' (queue name)q_global_commit
: counter, number of elements committed. Use labels 'ns' (namespace), 'q' (queue name)q_global_rollback
: counter, number of elements rolledback. Use labels 'ns' (namespace), 'q' (queue name)