Class BowireTelemetry
- Namespace
- Kuestenlogik.Bowire.Telemetry
- Assembly
- Kuestenlogik.Bowire.dll
Canonical OpenTelemetry surface for Bowire (issue #29). A single
ActivitySource and a single Meter with
the stable name Kuestenlogik.Bowire so every consumer --
host pipelines that pick up Bowire's traces / metrics via
WithTracing().AddSource(...) and
WithMetrics().AddMeter(...) -- references one name and
receives every Bowire-domain signal we ever emit.
public static class BowireTelemetry
- Inheritance
-
BowireTelemetry
- Inherited Members
Remarks
Names are stable, even when Bowire isn't. The ActivityName / MeterName constants don't change between minor releases -- if they ever do we'll cut a major. Embedded hosts and Grafana dashboards can pin against them without breakage.
Always-on, always-cheap. The instruments are created at
module-load time regardless of whether OTel is wired up. With no
listener, the SDK's no-op fast path keeps the per-call cost at a
single virtual call + a null check. Opt-in happens at the host's
AddBowireTelemetry call: the SDK starts collecting when a
listener attaches.
Fields
ActivityName
public const string ActivityName = "Kuestenlogik.Bowire"
Field Value
ActivitySource
Shared ActivitySource Bowire emits all its spans
through. Embedded hosts add AddSource(SourceName)
to their existing WithTracing() configuration and the
Bowire-side spans flow into the host's exporter without further
wiring.
public static readonly ActivitySource ActivitySource
Field Value
DiscoverCount
bowire.discover.count -- discovery passes against backends.
public static readonly Counter<long> DiscoverCount
Field Value
InvokeCount
bowire.invoke.count -- one increment per workbench invoke.
public static readonly Counter<long> InvokeCount
Field Value
InvokeDuration
bowire.invoke.duration -- millisecond histogram of invoke latency.
public static readonly Histogram<double> InvokeDuration
Field Value
Meter
Shared Meter Bowire emits all its metrics
through. Embedded hosts add AddMeter(SourceName)
to their existing WithMetrics() configuration.
public static readonly Meter Meter
Field Value
MeterName
public const string MeterName = "Kuestenlogik.Bowire"
Field Value
MockRequests
bowire.mock.requests -- request entries against UI-started mocks.
public static readonly Counter<long> MockRequests
Field Value
PluginLifecycle
bowire.plugin.lifecycle -- one increment per operator-triggered
plugin lifecycle action (restart / unload / load / reset-storage).
The action + outcome dimensions split success from
failure so dashboards can spot a plugin that's restarting on a
loop.
public static readonly Counter<long> PluginLifecycle
Field Value
PluginLoad
bowire.plugin.load -- one increment per protocol-plugin load attempt at startup.
public static readonly Counter<long> PluginLoad
Field Value
SourceName
Source name used for both the ActivitySource and the Meter.
public const string SourceName = "Kuestenlogik.Bowire"