Skip to main content

Virtual Care Service — Observability

Status: populated Owner: TBD Last updated: 2026-04-18 Companion: Service Template · 12 observability-telemetry

1. SLIs and SLOs

SLISLOMeasurement
Session creation success rate≥ 99% / 30-day windowvcare_session_create_total{status=success} / total
Session creation latency (p95)≤ 3000 mshttp_request_duration_ms{route=/sessions,method=POST}
Join token issuance latency (p95)≤ 500 mshttp_request_duration_ms{route=/join-token}
Session end → Encounter creation latency (p95)≤ 10 svcare_encounter_create_latency_seconds
Video backend health check success rate≥ 99.5%vcare_backend_health_check_success
API availability≥ 99.9%Success rate on all endpoints
Fallback initiation rate— monitored; alert if > 5%vcare_fallback_initiated_total / vcare_sessions_total

2. Key Metrics

MetricTypeLabelsDescription
vcare_sessions_totalCountertenant_id, status, video_backendSession lifecycle outcomes
vcare_session_duration_secondsHistogramtenant_id, video_backendActual session duration
vcare_waiting_room_wait_secondsHistogramtenant_idTime from patient join to admit
vcare_participants_per_sessionHistogramtenant_idParticipant count distribution
vcare_fallback_initiated_totalCountertenant_id, reasonFallback (video→async) activations
vcare_backend_health_check_latency_msHistogrambackendJitsi health check round-trip
vcare_encounter_create_latency_secondsHistogramtenant_idFHIR Encounter creation time post-session
vcare_token_validation_failures_totalCountertenant_id, reasonInvalid/expired join tokens
vcare_outbox_lag_secondsGaugeAge of oldest unpublished outbox message
vcare_consent_gate_blocks_totalCountertenant_id, gate_typeSessions blocked by consent gate

3. Traces

SpanKey attributes
vcare.session.createtenant_id, video_backend, has_appointment
vcare.video_provider.health_checkbackend, latency_ms, healthy
vcare.video_provider.create_roombackend, room_name
vcare.session.endsession_id, duration_seconds, participant_count
vcare.fhir.encounter_createsession_id, encounter_id, latency_ms
vcare.join_token.issuesession_id, role
vcare.join_token.validatesession_id, valid, failure_reason
vcare.ai.transcribesession_id, duration_s, model_id
vcare.fallback.initiatesession_id, reason

4. Dashboards

DashboardKey panels
Virtual Care OperationsActive sessions by tenant, session status funnel, fallback rate, backend health
Session LifecycleCreation latency, wait-room time, session duration distribution
Connectivity & FallbackFallback rate trend, fallback by reason, bandwidth degradation events
FHIR IntegrationEncounter creation latency, success/failure rate
SecurityConsent gate blocks, token validation failures, cross-tenant violations

5. Alerts

AlertConditionSeverityRunbook
Video backend unhealthyHealth check fails for 3 consecutive minutesCriticalrunbooks/vcare-backend-health.md
Session creation success rate drops< 99% for 5 minCriticalrunbooks/vcare-session-failures.md
Fallback rate spike> 10% of sessions for 5 minWarningrunbooks/vcare-fallback-spike.md
FHIR Encounter creation lagEncounter not created within 30s of session endWarningrunbooks/vcare-encounter-lag.md
Outbox lagOldest unpublished message > 5 minWarningrunbooks/vcare-outbox-lag.md
Token validation failure rate> 5% for 5 minWarningrunbooks/vcare-token-failures.md