Skip to main content

Meeting monitoring

PostHog project 165441 (Switchback, UTC). Source of truth for insight windows, populations, and alert evaluation: packages/scripts/src/telemetry/meeting-dashboard.ts.

Dashboards

ViewURL
Meeting (this work)https://us.posthog.com/project/165441/dashboard/2093461
Sync health (reuse, do not duplicate provider health)https://us.posthog.com/project/165441/dashboard/1905421
Web vitalshttps://us.posthog.com/project/165441/dashboard/2058733
Existing alerts (do not add recipients here)https://us.posthog.com/project/165441/alerts

Default tiles are production with PostHog test-account filtering on Trends and Funnel insights. Staging fixture tiles set environment=staging and include test accounts so authorized staging traffic stays visible. Server booking_operation / booking_operation_heartbeat tiles stay empty until the merged WP-11 (#3717 / #3735) backend is deployed. Empty is no-data, not 0% failure and not 100% success.

Populations

Do not join these as one conversion rate.

PopulationEventsGrainWindow
Browser hostbooking_settings_openedbooking_page_enabledbooking_link_copiedunique identified hosts7 days
Browser guestbooking_page_viewedbooking_reservation_createdunique anonymous sessions1 day
Server operationbooking_operationdurable Mongo transitions30 minutes for rates, 7 days for counts
Server heartbeatbooking_operation_heartbeatone gauge sample every 5 minutes, including zeros10 minutes for freshness

booking_reservation_created is browser-observed confirm. Authoritative completion is booking_operation with phase confirmed or recovered. Guest sessions are never identified, so they do not join to hosts.

Every rate must show numerator, denominator, sample count, window, and exclusions. HogQL tiles return NULL for the rate when the denominator is 0. Do not chart that as 0% or 100%.

Launch alerts (evaluate, do not notify yet)

Existing PostHog alerts email the founder's PostHog account and evaluate hourly. This work does not activate new destinations or test sends. The intended Meeting checks are:

SignalFire whenCadence that matches the SLOAccount fallback
Exhausted recoverybooking_operation phase=failed and outcome=exhausted count > 0any occurrenceHourly count > 0, same pattern as sync_job_terminal_failure
Oldest pendingoldest_pending_age_ms > 5 minutes on two consecutive heartbeat samples5-minute heartbeat (10 minutes)Hourly evaluation is coarser than the SLO; read the heartbeat tile until a sub-hour alert add-on exists
Infrastructure failure rateprovider + storage + transport failures / phase=accepted source=operation > 5%, with at least 20 accepted operations in 30 minutes30-minute windowBelow 20 accepted: counts and manual review, not anomaly detection
Heartbeat absentzero booking_operation_heartbeat samples in 10 minutestwo missed 5-minute beatsDistinct from an idle queue (pending_count=0 with samples present)

Conflict, validation, and rate-limit outcomes are request-level or expected contention. They are not infrastructure failures.

Saved insights

TileURL
Host funnel (production)https://us.posthog.com/project/165441/insights/qmA6YEpq
Guest funnel (production)https://us.posthog.com/project/165441/insights/Bpjfok7y
Host funnel (staging fixtures)https://us.posthog.com/project/165441/insights/8jOUswJq
Guest funnel (staging fixtures)https://us.posthog.com/project/165441/insights/8DA2BrvI
Server operations by phasehttps://us.posthog.com/project/165441/insights/jC0leWid
Server outcomeshttps://us.posthog.com/project/165441/insights/TzMzEeKF
Completion latency p50/p95https://us.posthog.com/project/165441/insights/1MDTnQpk
Completion rate 30mhttps://us.posthog.com/project/165441/insights/4YNwF8bh
Infra failure rate 30mhttps://us.posthog.com/project/165441/insights/PqXHdek3
Heartbeat freshnesshttps://us.posthog.com/project/165441/insights/6kjX0jtM
Exhausted recoveries 24hhttps://us.posthog.com/project/165441/insights/L1penOJD
Setup save failureshttps://us.posthog.com/project/165441/insights/i3nZgQ5l

Staging readback (2026-09-14)

Queries run against project 165441. No production booking test events were inserted. No alert was armed.

CaseQueryResult
Staging guest conversionFunnel booking_page_viewedbooking_reservation_created, 1 day, unique sessions, environment=staging, test accounts included, 30 days5 sessions viewed, 2 confirmed (40% conversion, 60% drop-off, median 54s)
Staging host conversionFunnel settings → enabled → link copied, 7 days, unique users, staging, test accounts included, 30 days1 host completed all three steps
Staging event countsTrends week of 2026-09-06, test accounts includedsettings opened 14, page viewed 15, reservation created 2, page enabled 2, link copied 6
Production + test exclusionSame events, environment=production, test accounts filteredno-data (zeros), not a success rate
Server operations / heartbeatbooking_operation and booking_operation_heartbeat, production, 7 daysno-data until WP-11 (#3735) deploys
Completion rate 30m (saved)https://us.posthog.com/project/165441/insights/4YNwF8bhaccepted=0, completed_success=0, completion_rate=(null)
Infra failure rate 30m (saved)https://us.posthog.com/project/165441/insights/PqXHdek3infra_failure_rate=(null), sample_gate=manual_review
Heartbeat freshness (saved)https://us.posthog.com/project/165441/insights/6kjX0jtMheartbeat_samples=0, gauges (null), telemetry_status=missing_telemetry
Production host funnel (saved)https://us.posthog.com/project/165441/insights/qmA6YEpqno data recorded
Synthetic success / failure / pending / recovery / no-datapackages/scripts/src/testing/meeting-dashboard.test.tssuccess 8/10; infra 3/20 fires; pending 400s then 410s fires; exhausted 2 fires; 0/0 is no-data

Schema cutover: WP-10 browser path events (booking_slots_loaded, booking_submit_attempted, …) and WP-11 server events may be absent until those deploys. Tiles for missing events stay empty. Version the filter with environment and, once server events ship, version / service=compass-backend.

Review cadence

  • Daily during the first week after production booking is enabled.
  • Weekly after that.
  • Sample-size caveat: do not promote a rate with fewer than 20 accepted operations in the rate window.
  • Post-launch feedback loop: #3720.

Closeout

ItemValue
Release ownerTyler Dane (founder)
Authorized notification destinationFounder's PostHog account (already used by Sync/SSE alerts). Not activated for Meeting in this issue.
RollbackLeave isBookingEnabled unchanged here. Disable criteria live on WP-13.
Provider healthSync dashboard 1905421, not this dashboard

Pair with the launch ops checklist.