Zum Hauptinhalt springen

AdapterPipelineExecutionReporter

Namespace: Meshmakers.Octo.Sdk.Common.Services

Implementation of IPipelineExecutionReporter that reports execution metrics via the adapter hub client to the communication controller.

public class AdapterPipelineExecutionReporter : IPipelineExecutionReporter

Inheritance Object → AdapterPipelineExecutionReporter
Implements IPipelineExecutionReporter

Fields​

StatusFailureLogInterval​

How long a status-line delivery failure silences the next ones (AB#5385). A trigger reports once per poll, and against a controller that predates the hub method or is down every one of those fails; one Debug line per window is diagnostic, one per poll is a log flood.

public static TimeSpan StatusFailureLogInterval;

Constructors​

AdapterPipelineExecutionReporter(IAdapterHubClient, ILogger<AdapterPipelineExecutionReporter>, TimeProvider)​

Creates a new instance of the reporter.

public AdapterPipelineExecutionReporter(IAdapterHubClient adapterHubClient, ILogger<AdapterPipelineExecutionReporter> logger, TimeProvider timeProvider)

Parameters​

adapterHubClient IAdapterHubClient
The adapter hub client for communication with the controller

logger ILogger<AdapterPipelineExecutionReporter>
Logger instance

timeProvider TimeProvider
Clock behind the status-failure log rate limit; the system clock when omitted

Methods​

ReportPipelineStatusAsync(RtEntityId, String, Boolean, DateTime)​

public Task ReportPipelineStatusAsync(RtEntityId pipelineRtEntityId, string message, bool isError, DateTime timestampUtc)

Parameters​

pipelineRtEntityId RtEntityId

message String

isError Boolean

timestampUtc DateTime

Returns​

Task

ReportExecutionStartAsync(RtEntityId, Guid, PipelineTriggerType, DateTime, String)​

public Task ReportExecutionStartAsync(RtEntityId pipelineRtEntityId, Guid executionId, PipelineTriggerType triggerType, DateTime startedAt, string inputData)

Parameters​

pipelineRtEntityId RtEntityId

executionId Guid

triggerType PipelineTriggerType

startedAt DateTime

inputData String

Returns​

Task

ReportExecutionEndAsync(Guid, PipelineExecutionStatus, DateTime, Int32, String, String)​

public Task ReportExecutionEndAsync(Guid executionId, PipelineExecutionStatus status, DateTime completedAt, int durationMs, string errorMessage, string outputData)

Parameters​

executionId Guid

status PipelineExecutionStatus

completedAt DateTime

durationMs Int32

errorMessage String

outputData String

Returns​

Task

GetInterruptedExecutionIdsAsync()​

public Task<IReadOnlyList<string>> GetInterruptedExecutionIdsAsync()

Returns​

Task<IReadOnlyList<String>>

FailOrphanedExecutionsAsync(DateTime)​

public Task<int> FailOrphanedExecutionsAsync(DateTime processStartUtc)

Parameters​

processStartUtc DateTime

Returns​

Task<Int32>

ReportInterruptedExecutionResultAsync(Guid, PipelineExecutionStatus, DateTime, Int32, String, String)​

public Task ReportInterruptedExecutionResultAsync(Guid executionId, PipelineExecutionStatus status, DateTime completedAt, int durationMs, string errorMessage, string outputData)

Parameters​

executionId Guid

status PipelineExecutionStatus

completedAt DateTime

durationMs Int32

errorMessage String

outputData String

Returns​

Task