Issue #4: add structured logging and metrics foundation
This commit is contained in:
@@ -105,6 +105,12 @@ Do not let Razor components directly mutate gateway session or worker objects.
|
||||
Create a small read-only dashboard service that projects gateway state into
|
||||
plain DTOs.
|
||||
|
||||
`GatewayMetrics.GetSnapshot()` is the metrics input for the first dashboard
|
||||
projection. It carries current session and worker gauges, command and event
|
||||
counters, queue depth, and fault totals. The dashboard reads that snapshot
|
||||
instead of reading raw `Meter` instruments because exporter configuration is an
|
||||
operations concern, not a UI dependency.
|
||||
|
||||
Suggested service:
|
||||
|
||||
```csharp
|
||||
@@ -361,4 +367,3 @@ The first dashboard slice should implement:
|
||||
8. workers page with worker table.
|
||||
9. 1-second realtime refresh through Blazor Server.
|
||||
10. redaction tests for secrets.
|
||||
|
||||
|
||||
@@ -664,6 +664,26 @@ Metrics:
|
||||
|
||||
Do not log credential values or full tag values by default.
|
||||
|
||||
The gateway registers `GatewayMetrics` as the in-process metrics foundation.
|
||||
It emits .NET `Meter` instruments for collectors and keeps a
|
||||
`GatewayMetricsSnapshot` for dashboard projection. The snapshot exists because
|
||||
the dashboard needs current counters and queue depths without depending on a
|
||||
specific metrics exporter.
|
||||
|
||||
HTTP request handling uses `UseGatewayRequestLoggingScope()` to attach common
|
||||
structured log fields when request metadata is present:
|
||||
|
||||
- `SessionId`,
|
||||
- `ClientIdentity`,
|
||||
- `WorkerProcessId`,
|
||||
- `CorrelationId`,
|
||||
- `CommandMethod`.
|
||||
|
||||
`GatewayLogRedactor` redacts API key secrets and command values before they are
|
||||
added to log state. Value logging remains opt-in and redacted by default so
|
||||
secured writes, authentication commands, and ordinary tag values do not leak
|
||||
through diagnostics.
|
||||
|
||||
## Configuration
|
||||
|
||||
Suggested configuration shape:
|
||||
|
||||
Reference in New Issue
Block a user