Table of Contents

Class Telemetry.Metrics

Namespace
Fdyay.IdentityServer
Assembly
Fdyay.IdentityServer.Core.dll

The instruments this server writes to.

public static class Telemetry.Metrics
Inheritance
Telemetry.Metrics
Inherited Members

Fields

ActiveRequests

Protocol requests currently in flight, by endpoint.

public static readonly UpDownCounter<long> ActiveRequests

Field Value

UpDownCounter<long>

Events

Every event this server raises, counted whether or not it is delivered.

public static readonly Counter<long> Events

Field Value

Counter<long>

Remarks

One instrument tagged by event name rather than one counter per concern, and both halves of that choice are deliberate.

Derived from the event surface, because that surface has already been audited for completeness — twenty-four types, every one with a raise site, checked release by release. A counter per concern would be a second list to keep in step with the first, and the release that forgot to extend it would ship a decision nothing counted. Here a new event type is counted the moment it is raised, by construction.

Counted before EventsOptions is consulted, so a host that raises no events still gets metrics. Those flags are off by default for a reason that does not apply here: an event carries client ids, subject ids and addresses, and where those end up is a host's decision. A count tagged with an event's name carries none of them. Gating metrics on a privacy control meant for payloads would leave a host with monitoring switched on and nothing arriving.

RequestDuration

How long a protocol request took, by endpoint.

public static readonly Histogram<double> RequestDuration

Field Value

Histogram<double>

Remarks

Seconds rather than milliseconds, which is what OpenTelemetry's semantic conventions specify for a duration histogram — a collector's default bucket boundaries are chosen for that unit, and a histogram in the wrong one lands every measurement in the last bucket.