public MonitoringJob(TargetRecord targetRecord, IProbe probe, ILogger <MonitoringJob> logger) { targetRecord.VerifyNotNull(nameof(targetRecord)) .VerifyAssert(x => !x.ReadyUrl.IsEmpty(), x => nameof(x.ReadyUrl)) .VerifyAssert(x => x.FrequencyInSeconds != null, x => nameof(x.FrequencyInSeconds)); probe.VerifyNotNull(nameof(probe)); logger.VerifyNotNull(nameof(logger)); _targetRecord = targetRecord; _probe = probe; _logger = logger; }
public RestProbe(string agentId, TargetRecord targetRecord, HttpClient httpClient, IRecordContainer <TraceRecord> traceContainer, ILogger <RestProbe> logger) { agentId.VerifyNotNull(nameof(agentId)); targetRecord.VerifyNotNull(nameof(targetRecord)); httpClient.VerifyNotNull(nameof(httpClient)); traceContainer.VerifyNotNull(nameof(traceContainer)); logger.VerifyNotNull(nameof(logger)); _agentId = agentId; _targetRecord = targetRecord; _traceContainer = traceContainer; _logger = logger; _httpClient = httpClient; }
public IProbe Create(TargetRecord targetRecord, string agentId, IRecordContainer <TraceRecord>?traceContainer) { targetRecord.VerifyNotNull(nameof(targetRecord)); agentId.VerifyNotEmpty(nameof(agentId)); traceContainer.VerifyNotNull(nameof(traceContainer)); if (!Enum.TryParse(typeof(ProbeType), targetRecord.TargetType, true, out object probeTypeObj)) { throw new InvalidExpressionException($"Unknown target type {targetRecord.TargetType}"); } return((ProbeType)probeTypeObj switch { ProbeType.REST => new RestProbe(agentId !, targetRecord, _httpClientFactory.CreateClient(), traceContainer, _loggerFactory.CreateLogger <RestProbe>()), _ => throw new InvalidOperationException($"Unsupported target type, probeType={probeTypeObj}"), });