Sigra is a Phoenix authentication library. When you attach the Sigra integration, Parapet translates Sigra login and signup telemetry into journey metrics and feeds the WebSaaS login-journey SLO slice with real signal.
Prerequisites
sigrainstalled in your host app (optional dep — if it is absent, Sigra never emits the telemetry events the adapter listens for, so the attached handlers stay dormant and harmless; Parapet does not probe for thesigralibrary itself)- Parapet installed and configured (
mix parapet.install)
What it unlocks
Sigra login and signup events become Parapet journey metrics:
parapet_journey_login_count— counted peroutcometag (successorfailure)parapet_journey_signup_count— counted peroutcomeandprovidertags
The web_saas_login_journey slice in Parapet.SLO.StarterPack.WebSaaS relies on parapet_journey_login_count as its error-ratio source. Without Sigra (or another emitter of [:parapet, :journey, :login]), that slice has no data. The min_total_rate guard prevents false-positive alerts during low-traffic windows, but no data is not the same as green.
If you have not yet registered the WebSaaS provider, see Getting started for the full cold-start sequence and SLO reference for the provider catalog.
Activation
Add the adapter when you start your supervision tree, typically in application.ex:
Parapet.attach(adapters: [:sigra])This attaches telemetry handlers for [:sigra, :auth, :login, :stop], [:sigra, :auth, :login, :exception], [:sigra, :auth, :signup, :stop], and [:sigra, :auth, :signup, :exception].
Config keys
The Sigra integration has no Parapet-level config keys. It reads standard Sigra telemetry events and re-emits them as Parapet journey events without additional configuration.
Troubleshooting
Metrics are not appearing in Prometheus
Confirm two things: (1) Parapet.attach(adapters: [:sigra]) was called before the first Sigra event fired, and (2) your Telemetry.Metrics reporter includes the metrics from Parapet.Metrics.Sigra.metrics(). If the reporter is not wired, the counters are defined but never scraped.
The login-journey slice shows no data, not a healthy rate
The web_saas_login_journey slice needs parapet_journey_login_count to compute an error ratio. If no login events have fired since the last restart, the recording rule returns no series. This is distinct from a zero error rate — add a synthetic probe via Parapet.Metrics.Probe if you want a floor signal during low-traffic periods.
Telemetry handler raises a conflict error on startup
If a previous call to Parapet.attach(adapters: [:sigra]) already attached the handler with the same name (parapet-sigra-auth), a second call raises a telemetry conflict. Attach each adapter exactly once, typically at application startup rather than inside a request handler.