/// <summary> /// Construct a telemetry client for ingesting logs into Kusto /// </summary> /// <param name="ctx">CDM corpus context</param> /// <param name="config">The configuration for the client</param> public TelemetryKustoClient(CdmCorpusContext ctx, TelemetryConfig config) { this.ctx = ctx; this.config = config; this.httpClient = new CdmHttpClient(); this.requestQueue = new ConcurrentQueue <Tuple <CdmStatusLevel, string> >(); }
public void TestResultHttpExceptionZeroRetry() { using (var cdmHttpClient = new CdmHttpClient("https://www.example1.com", new CdmHttpMessageHandlerStub(method1))) { var cdmHttpRequest = new CdmHttpRequest("/folder1") { Timeout = TimeSpan.FromSeconds(5), MaximumTimeout = TimeSpan.FromSeconds(9) }; Func <Task> func = async() => await cdmHttpClient.SendAsync(cdmHttpRequest, null); func.Should().Throw <HttpRequestException>(); } }
public void TestMaximumTimeout() { using (var cdmHttpClient = new CdmHttpClient("https://www.example.com", new CdmHttpMessageHandlerStub(method2))) { var cdmHttpRequest = new CdmHttpRequest("/folder2") { Timeout = TimeSpan.FromSeconds(1), MaximumTimeout = TimeSpan.FromSeconds(6), NumberOfRetries = 3 }; Func <Task> func = async() => await cdmHttpClient.SendAsync(cdmHttpRequest, DefaultGetWaitTime); func.Should().Throw <CdmTimedOutException>(); } }
public async Task TestResultReturnedFirstTime() { using (var cdmHttpClient = new CdmHttpClient("https://www.example.com", new CdmHttpMessageHandlerStub(method1))) { var cdmHttpRequest = new CdmHttpRequest("/folder1") { Timeout = TimeSpan.FromSeconds(5), MaximumTimeout = TimeSpan.FromSeconds(9) }; var result = await cdmHttpClient.SendAsync(cdmHttpRequest, null); var content = await result.Content.ReadAsStringAsync(); Assert.AreEqual("REPLY1", content); } }
public async Task TestTimeoutThenSuccessMultipleRetries() { using (var cdmHttpClient = new CdmHttpClient("https://www.example.com", new CdmHttpMessageHandlerStub(method2))) { var cdmHttpRequest = new CdmHttpRequest("/folder2") { Timeout = TimeSpan.FromSeconds(3), MaximumTimeout = TimeSpan.FromSeconds(150), NumberOfRetries = 3 }; var result = await cdmHttpClient.SendAsync(cdmHttpRequest, this.DefaultGetWaitTime); var content = await result.Content.ReadAsStringAsync(); Assert.AreEqual("REPLY2", content); } }