EdgeInteract
Interaction Observability Overview
EdgeInteract provides built-in observability at three levels: real-time monitoring via InteractionMonitor, structured audit logs for compliance, and Prometheus metrics via OpenTelemetry for BizFirst Observe dashboards and alerts.
What to Monitor
For EdgeInteract deployments, focus on four operational health signals:
- Response time: How long do users take to respond? High response times may indicate poor UX or users ignoring interactions.
- Completion rate: What percentage of interactions receive a response vs. timing out? High timeout rates indicate a systemic problem.
- Timeout rate: What fraction of interactions expire? A growing timeout rate may indicate delivery issues or user disengagement.
- In-flight count: How many interactions are currently pending? A growing in-flight count with no responses may indicate a pipeline issue.
Key Metrics
interaction_response_time_ms
histogram
Time from interaction displayed to response received. Tagged by type and outcome.
interaction_published_total
counter
Total interactions published. Tagged by type and priority.
interaction_responses_total
counter
Total responses received. Tagged by type and outcome.
interaction_timeout_total
counter
Total timeouts. Tagged by type. Alert when this rises above 5% of publishes.
interaction_in_flight
gauge
Current number of pending interactions awaiting a response.
interaction_blocked_total
counter
Interactions blocked by pre-send hooks. Tagged by blocked_by (hook name).
Observability Stack
| Layer | Tool | What It Provides |
|---|---|---|
| Real-time visibility | InteractionMonitor (React component) | Live view of in-flight interactions, recent completions |
| Compliance audit | IInteractionAuditStore (server-side) | Immutable record of every request/response pair |
| Time-series metrics | OTel → Prometheus → BizFirst Observe | Charts, dashboards, trend analysis |
| Alerting | Grafana AlertManager (via BizFirst Observe) | PagerDuty/Slack alerts on threshold violations |
Register the Metrics Hook
The
MetricsInteractionHook must be registered for any metrics to be emitted. It is not enabled by default.
// Enable metrics emission
builder.Services.AddInteractionHook<AuditInteractionHook>();
builder.Services.AddInteractionHook<MetricsInteractionHook>(); // Add this