protected virtual void ProcessMessageTimeout(MessageDefinition requestDefinition, TimeSpan elapsed, Guid correlationId) { _logSlaBreach("SLA={0} Response=monitor-timed-out ResponseTime={1} milliseconds CorrelationId={2}", new object[] { requestDefinition.Type, (long)elapsed.TotalMilliseconds, correlationId }); }
/// <summary> /// Logs the information that request with <c>correlationId</c> would not be monitored due to fact that quota for requests of this type has been already reached. /// The log level of this message is WARN /// </summary> /// <param name="requestDefinition">Message definition.</param> /// <param name="correlationId">Correlation ID</param> protected virtual void ProcessQuotaReached(MessageDefinition requestDefinition, Guid correlationId) { _logger.WarnFormat("SLA={0} monitoring message quota reached. Message with CorrelationId={1} is not going to be monitored.", requestDefinition.Type, correlationId); }
/// <summary> /// Begins a SLA definition configuration for TRequest request message. /// </summary> /// <typeparam name="TRequest">Type of request message</typeparam> /// <param name="correlationFn">Method to retrieve request-response correlation ID for TRequest</param> public static SlaDefinitionBuilder For <TRequest>(Func <TRequest, Guid> correlationFn) { return(new SlaDefinitionBuilder(MessageDefinition.Create(correlationFn))); }
/// <summary> /// Defines SLA for TRequest - TResponse messages /// </summary> /// <typeparam name="TResponse">Type of response message</typeparam> /// <param name="sla">SLA</param> /// <param name="correlationFn">Method to retrieve request-response correlation ID for TResponse</param> public SlaDefinitionBuilder AddSla <TResponse>(TimeSpan sla, Func <TResponse, Guid> correlationFn) { _definitions.Add(new SlaDefinition(_request, MessageDefinition.Create(correlationFn), sla)); return(this); }
private SlaDefinitionBuilder(MessageDefinition request) { _request = request; }
public SlaDefinition(MessageDefinition request, MessageDefinition response, TimeSpan sla) { Request = request; Response = response; Sla = sla; }