Observability
Your messaging tests are a signal like any other
A testing tool that does not observe itself lets you discover its limits at the same time as the outage. We expose our counters where you already look.
# One scrapable endpoint per organisation.
- job_name: facteur
scheme: https
metrics_path: /v1/metrics
static_configs:
- targets: ['api.facteur.eu']
authorization:
credentials_file: /etc/prometheus/facteur.key
# Series exposed
# facteur_messages_received_total{inbox,type}
# facteur_quota_used_ratio{inbox,window}
# facteur_message_delivery_seconds{inbox,quantile}
# facteur_credits_remaining{
"type": "quota.threshold_reached",
"occurred_at": "2026-08-05T09:14:22Z",
"organization": "org_4kd9",
"inbox": { "id": "j3k9x2mq", "name": "e2e-signature" },
"window": "daily",
"threshold_pct": 90,
"used": 7200,
"limit": 8000,
"credits_remaining": 41320
}Integrations
Where your usage data goes
Prometheus endpoint
GET /v1/metricsAn OpenMetrics endpoint per organisation, protected by a read-only key. Your volumes, your quota fill rates and your reception latencies land in the same Grafana as everything else.
OTLP export
Metrics and traces pushed to any OpenTelemetry collector, and therefore to just about any observability platform.
Datadog integration
Metrics and events sent straight into your Datadog organisation. A quota overage becomes an event you can correlate with your deploys, not a lost email.
Signed webhooks
HMAC-SHA256Every event — message received, threshold crossed, credits exhausted — can call your system. HMAC signature, replay-proof timestamp, exponential retries and a delivery log you can read.
Slack and Microsoft Teams
For the common case where “observability” mostly means not missing the information in the right channel.
OpsGenie and PagerDuty
Credits exhausted the night before a release is not a notification, it is an on-call page. Critical events go to your escalation tool, with an integration key and a priority you choose per rule.
Reception latency, measured
The time between SMTP acceptance and availability through the API, published as a metric. If we slow down, you see it before we do.
Why this exists
A quota you do not see coming is an incident
The scenario we lived through, and which prompted this page.
- 1
A test suite is changed on a Monday. It now sends three times more emails than before. Nobody notices: it is an implementation detail.
- 2
On Tuesday at 11 am the daily quota is reached. Subsequent messages are refused.
- 3
CI turns red on tests nobody touched. The team hunts for the regression for two hours before thinking of the quota.
- →
With an alert at 50 %, that Monday a message drops into the team’s channel. The overage becomes a decision — buy a pack, review the test — instead of an investigation.
Your first inbox in two minutes
The free plan asks for no card. If you are migrating from Mailosaur, the compatibility layer saves you from rewriting your tests.