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
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
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
GetInterruptedExecutionIdsAsync()
public Task<IReadOnlyList<string>> GetInterruptedExecutionIdsAsync()
Returns
FailOrphanedExecutionsAsync(DateTime)
public Task<int> FailOrphanedExecutionsAsync(DateTime processStartUtc)
Parameters
processStartUtc DateTime
Returns
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