Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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}"),
            });