Observability
Configure OpenTelemetry tracing and metrics export, and control runtime logging verbosity. Both sections are editable from the admin UI.
Navigate to Settings > Observability.
Requires the Admin role. OpenTelemetry export requires the OBSERVABILITY entitlement (Enterprise plan only). The diagnostics log level section is available on all plans.
Status Display
The status card shows whether observability is active and reports the current configuration:
| Field | Description |
|---|---|
| Active OTLP Endpoint | The endpoint the OpenTelemetry pipeline was started with |
| Service Name | The service name reported in traces and metrics (inspire-edge) |
| Service Version | The Inspire version reported in telemetry |
| Tracing | Whether distributed tracing is enabled |
| Metrics | Whether metrics export is enabled |
OTLP Endpoint
Enter the URL of your OpenTelemetry collector and save. The value is persisted in the Setting table (Component='Observability', Name='OtlpEndpoint'). Leave blank to disable observability on next restart.
A service restart is required for endpoint changes to take effect. The OpenTelemetry SDK captures the endpoint at startup and cannot be reconfigured while the service is running. A banner appears after saving to remind you, showing both the active and pending values.
To disable observability entirely, clear the endpoint field and save — on the next restart, the OpenTelemetry pipeline will not be registered at all (zero runtime overhead).
Diagnostics Log Level
Control the Microsoft.Extensions.Logging verbosity for the running service. Unlike the OTLP endpoint, log level changes hot-reload — the very next log entry is filtered at the new level, no restart needed.
| Setting | Default | Description |
|---|---|---|
| Default level | Information | Log level for all sources not covered by a more specific rule |
| ASP.NET Core level | Warning | Log level for Microsoft.AspNetCore.* sources |
Valid values: Trace, Debug, Information, Warning, Error, Critical, None.
Typical incident response flow: bump the default level to Debug or Trace, reproduce the issue, examine the logs, then drop it back to Information once you’re done. No restart at any step.
Debug and especially Trace are very noisy. A busy service can produce gigabytes of logs per hour at Trace. Don’t leave it cranked up in production beyond the debugging window.
ASP.NET Core’s internal sources (Microsoft.AspNetCore.Hosting, Microsoft.AspNetCore.Routing, etc.) are chatty at Information — the default Warning cuts the framework noise. Only raise the ASP.NET Core level when you specifically need to see request pipeline internals (e.g. debugging a routing problem).
What Gets Exported
Traces
- HTTP request spans for all API calls
- Outbound HTTP calls (connectors, AI providers, license server)
- Custom service spans for background jobs and data processing
Metrics
- Request duration and throughput
- Data ingest throughput
- Device status update frequency
- Scene rotation events
Compatible Backends
Inspire exports data using the standard OTLP protocol. Any OTLP-compatible backend works:
| Backend | Type |
|---|---|
| Grafana Tempo | Open source |
| Jaeger | Open source |
| Datadog | Commercial |
| Honeycomb | Commercial |
| Dynatrace | Commercial |
| AWS X-Ray (via collector) | Cloud |
| Google Cloud Trace (via collector) | Cloud |