Class MonitoringTelemetry

Namespace
Kuestenlogik.Bowire.Monitoring
Assembly
Kuestenlogik.Bowire.Monitoring.dll

The monitoring metrics surface (#102) — a single Meter with the two instruments the design calls for, in the shared bowire.* namespace so #29's Grafana dashboards gain a section rather than a parallel one:

  • bowire.monitoring.probe.duration — histogram of run latency (ms).
  • bowire.monitoring.probe.outcome — counter, tags: probe + outcome.

Recording is dependency-free (System.Diagnostics.Metrics is in the BCL) and cheap when no listener is attached, so the engine records on every run. The OTLP export lives in the opt-in Kuestenlogik.Bowire.Monitoring.Otlp package; without it the instruments still record in-process (readable by the workbench surface).

public static class MonitoringTelemetry
Inheritance
MonitoringTelemetry
Inherited Members

Fields

Meter

The shared meter all monitoring metrics flow through.

public static readonly Meter Meter

Field Value

Meter

MeterName

Meter name the OTLP exporter subscribes to via AddMeter.

public const string MeterName = "bowire.monitoring"

Field Value

string

ProbeDuration

Per-run latency, milliseconds.

public static readonly Histogram<double> ProbeDuration

Field Value

Histogram<double>

ProbeOutcome

Per-run outcome counter, tagged with the probe name + outcome.

public static readonly Counter<long> ProbeOutcome

Field Value

Counter<long>

Methods

Record(string, ProbeResult, double)

Record one run's duration + outcome. No-op cost when unobserved.

public static void Record(string probeName, ProbeResult result, double latencyMs)

Parameters

probeName string
result ProbeResult
latencyMs double