vortos / vortos-observability
Publishable observability templates for Prometheus, Grafana, Alertmanager, Datadog, and New Relic
Requires
- php: >=8.2
- symfony/console: ^7.0 || ^8.0
- vortos/vortos-foundation: ^1.0
This package is auto-updated.
Last update: 2026-05-14 19:16:03 UTC
README
This module publishes optional starter assets for common observability stacks. It does not export telemetry, call external services, or run in the request path.
Vortos runtime modules emit standard signals:
- metrics through Prometheus or StatsD
- traces through OpenTelemetry OTLP
- logs as structured JSON to stdout/stderr
- health endpoints through the foundation module
The templates help teams bootstrap dashboards and alert rules for those signals.
Messaging applications also export operational gauges for the transactional outbox and dead-letter queue:
vortos_outbox_backlog_size{transport,status}vortos_outbox_oldest_pending_age_seconds{transport}vortos_dlq_backlog_size{transport,event}vortos_dlq_oldest_failed_age_seconds{transport}
With Prometheus these are refreshed during /metrics scrapes. With push-style
backends such as StatsD, schedule php bin/console vortos:metrics:collect from
one worker per environment so gauges are emitted without adding work to normal
request handling.
Commands
php bin/console vortos:observability:list php bin/console vortos:observability:publish --stack=grafana-oss php bin/console vortos:observability:publish --stack=datadog php bin/console vortos:observability:publish --stack=newrelic
Published files are written under observability/.
Use --dry-run to preview and --force to overwrite existing files.
Stacks
prometheus: recording and alert rulesgrafana: Grafana dashboard JSONalertmanager: Alertmanager routing examplegrafana-oss: Prometheus + Grafana + Alertmanagerdatadog: Datadog dashboard and monitor examplesnewrelic: New Relic dashboard and alert examples
All thresholds and notification routes are examples. Review and tune them per environment before production use.