Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
The English summary is being prepared. Showing the original description.
Use when an "enable observability" card asks for queues, or a worker's queue.backlog / consumer lag signals are unbound - which exporter or direct broker data source reads Kafka, RabbitMQ, NATS and Redis queues, the metric names the recipes expect, and the consumer-side metrics the developer adds
The English summary is being prepared. Showing the original description.
Review the instructions the agent will receive before you install.
A worker's golden signals are its backlog (messages waiting), its consume rate and its errors. The backlog is read at the broker; the rate and the errors are best emitted by the consumer itself. Decide per broker which path exists before you open a task.
TaskTrooper reads three brokers directly as data sources of their own kind — kafka, rabbitmq, nats — and their direct recipes (kafka-direct, rabbitmq-direct, nats-direct) bind a worker's backlog to a consumer group, queue or JetStream consumer. When a person can add that data source (broker address and credentials), nothing has to be built: say so on the card and propose the binding once the source exists.
| Broker | Exporter | What the recipes read |
|---|---|---|
| Kafka | danielqsj/kafka_exporter (recipe kafka-exporter) | kafka_consumergroup_lag{consumergroup,topic,partition}, kafka_topic_partition_current_offset |
| Kafka | redpanda-data/kminion (recipe kminion) | kminion_kafka_consumer_group_topic_lag{group_id,topic_name} |
| RabbitMQ | the built-in rabbitmq_prometheus plugin, port 15692 (recipe rabbitmq-prometheus) | rabbitmq_queue_messages_ready, rabbitmq_queue_messages_unacked per queue — scrape /metrics/detailed?family=queue_coarse_metrics (or /metrics/per-object), since the default /metrics aggregates queues away |
| NATS JetStream | nats-io/prometheus-nats-exporter with -jsz=all (recipe nats-exporter) | the consumer's num_pending and ack-pending gauges |
| Redis lists (Sidekiq, Bull, RQ, custom) | oliver006/redis_exporter with -check-keys / -check-single-keys naming the queue keys (recipe redis-exporter-lists) | redis_key_size{key="queue:default"} |
| AWS SQS / GCP Pub/Sub | none needed: CloudWatch ApproximateNumberOfMessagesVisible and Cloud Monitoring subscription/num_undelivered_messages (recipes aws-sqs, gcp-pubsub) | read through the cloud's own data source |
Running an exporter is infrastructure: if its deployment lives in this repository (a Helm chart, a docker-compose file, Terraform), it can be the developer's task; otherwise it is a before_deploy step for a person, and the exporter's address becomes a Prometheus scrape target.
messaging.client.consumed.messages, and messaging.process.duration as a histogram), plus error.type on failures.records-lag-max) exported as a gauge.Acceptance criteria: "Given messages wait on queue orders, then the backlog series for orders is readable from <data source> and grows while the worker is stopped"; "Given a message fails, then the failed counter for orders increases by one."
Bind queue.backlog (and the worker's other golden signals) with propose_signal_binding scoped to this worker's queue or group — never a query summing every queue on the broker — and propose a rising alert rule above its normal peak.
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
The English summary is being prepared. Showing the original description.
Use when the diff adds or changes an endpoint, resolver, RPC, job or query that takes an object id, a role check, a request binding or a tenant filter - BOLA/IDOR, function-level authorization, mass assignment and tenant scoping
The English summary is being prepared. Showing the original description.
Use on every UI change - semantic HTML, labels for controls, keyboard-navigable dialogs/menus, visible focus, and never color as the only signal
The English summary is being prepared. Showing the original description.
Use when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task
The English summary is being prepared. Showing the original description.
How to work a task returned with review, QA or UAT findings. Use when a task is in need_revision or PR review comments are in your context.
The English summary is being prepared. Showing the original description.
Use when the repository keeps its alerting in code, or a person asks for alerts outside TaskTrooper - PrometheusRule YAML, a Cloud Monitoring alert policy in Terraform, a Datadog monitor, each routed to TaskTrooper's alert ingest URL so it opens an incident here
The English summary is being prepared. Showing the original description.