Feature flags

Embed
Preview of the card
<a href="https://watchtowerops.net/docs/flags"><img src="https://watchtowerops.net/docs/_api/public/orgs/aa5959cb-1a0b-4a9a-bc9a-913e7ac31cd9/spaces/b7aac181-9916-4805-b253-becc5fd2ca62/pages/9e174519-7984-43b8-aada-3eec9ffa7788/social-card.svg?v=3e7ae33eec8b" alt="Feature flags" width="600" height="315"></a>

Watchtower shows flag context next to errors; it does not manage flags (use your flag service, or PostHog for experiments).

  • Flag changes: LaunchDarkly, Statsig, Unleash and Flagsmith post audit events to a change source; see change-events.md. They show as annotations on charts and rank as candidate causes of a regression.

  • Evaluations: logs and spans carrying the OpenTelemetry feature_flag.* attributes (feature_flag.key, feature_flag.provider_name, feature_flag.variant, feature_flag.result.value, feature_flag.evaluation.reason) are recognised, so an OpenFeature OTel hook is enough on the application side.

Reading flag context

  • GET /v1/projects/{p}/flags/{key}/context — the flag's recent changes and links to them, from the change events.

  • GET /v1/projects/{p}/flags/{key}/impact?range=&env= — one row per variant with the RUM session error rate and LCP p75 and the APM span error rate and p95, plus the flag's recent changes, so a regression can be read against a variant. This is observed impact of variants your flag service already assigned; Watchtower never serves flags or decides assignments.

  • Filter telemetry by an evaluated variant with flag=key:value on rum/vitals, rum/sessions and apm/services/{service}/red, and the flag.<key> tags appear on errors and in the sessions explorer.

Status: change events, attribute recognition, the context and impact endpoints, and flag filters are all live. Serving flags and experiment assignment stay out of scope (use your flag service, or PostHog for experiments).

Updated