Skip to content
Facteur
FRGet started

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.

prometheus.ymlYAML
# 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
webhook payloadJSON
{
  "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/metrics

An 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-SHA256

Every 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. 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. 2

    On Tuesday at 11 am the daily quota is reached. Subsequent messages are refused.

  3. 3

    CI turns red on tests nobody touched. The team hunts for the regression for two hours before thinking of the quota.

  4. 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.