Class FlowOrchestratorTelemetry
- Namespace
- FlowOrchestrator.Core.Observability
- Assembly
- FlowOrchestrator.Core.dll
Singleton telemetry hub exposing the FlowOrchestratorActivitySource
and Meter used for distributed tracing and metrics.
Wire up AddOpenTelemetry() and AddFlowOrchestratorInstrumentation() to export
spans and counters to your observability backend.
public sealed class FlowOrchestratorTelemetry : IDisposable
- Inheritance
-
FlowOrchestratorTelemetry
- Implements
- Inherited Members
Remarks
Moved from FlowOrchestrator.Core.Execution in v1.19 so OpenTelemetry registration is
independent of any specific runtime adapter (Hangfire, in-memory, queue). The activity source
and meter names are unchanged — all existing OTel pipelines continue to work without changes.
Constructors
FlowOrchestratorTelemetry()
Initialises all counters and histograms against the shared Meter.
public FlowOrchestratorTelemetry()
Fields
SharedActivitySource
Library-wide static activity source. Used from contexts where DI is not available (e.g. PollableStepHandler<TInput> base class and the InMemory runtime's channel runner). Listeners subscribed to SourceName receive activities from this source and from the per-instance ActivitySource identically — multiple ActivitySource instances with the same name is the supported way to emit from many compilation units without round-tripping through DI.
public static readonly ActivitySource SharedActivitySource
Field Value
SourceName
Name shared by both the ActivitySource and the Meter.
public const string SourceName = "FlowOrchestrator"
Field Value
Properties
ActivitySource
OpenTelemetry activity source for distributed tracing of flow and step executions.
public ActivitySource ActivitySource { get; }
Property Value
CronLagMs
Records the gap between a cron trigger's scheduled fire time and its actual dispatch time, in milliseconds.
public Histogram<double> CronLagMs { get; }
Property Value
Meter
OpenTelemetry meter for emitting counters and histograms.
public Meter Meter { get; }
Property Value
QueueDelayMs
Records the delay between step enqueue time and actual execution start in milliseconds.
public Histogram<double> QueueDelayMs { get; }
Property Value
RunCompletedCounter
Incremented each time a flow run reaches a terminal state (succeeded, failed, or cancelled).
public Counter<long> RunCompletedCounter { get; }
Property Value
RunStartedCounter
Incremented each time a new flow run is triggered.
public Counter<long> RunStartedCounter { get; }
Property Value
SignalWaitMs
Records the wall-clock time a WaitForSignal step spent parked, in milliseconds.
public Histogram<double> SignalWaitMs { get; }
Property Value
StepCompletedCounter
Incremented each time any step reaches a terminal state.
public Counter<long> StepCompletedCounter { get; }
Property Value
StepDurationMs
Records the wall-clock duration of each step execution in milliseconds.
public Histogram<double> StepDurationMs { get; }
Property Value
StepPollAttemptsCounter
Incremented for each polling attempt of a PollableStepHandler.
public Counter<long> StepPollAttemptsCounter { get; }
Property Value
StepRetriesCounter
Incremented every time a failed step is dispatched for retry.
public Counter<long> StepRetriesCounter { get; }
Property Value
StepSkippedCounter
Incremented every time a step is skipped (false When clause or unmet RunAfter).
public Counter<long> StepSkippedCounter { get; }
Property Value
WebhookBodyBytes
Records the size of each webhook body in bytes. Tags: flow.
public Histogram<long> WebhookBodyBytes { get; }
Property Value
WebhookProcessingMs
Records the wall-clock pipeline processing time per webhook in milliseconds. Tags: flow, result.
public Histogram<double> WebhookProcessingMs { get; }
Property Value
WebhookReceivedCounter
Incremented for every webhook receive (accepted or rejected). Tags: flow, result, scheme.
public Counter<long> WebhookReceivedCounter { get; }
Property Value
WebhookRejectedCounter
Incremented for every webhook rejected by the security pipeline. Tags: flow, reason.
public Counter<long> WebhookRejectedCounter { get; }
Property Value
Methods
Dispose()
Disposes the ActivitySource and Meter.
public void Dispose()