public void Dispose() { if (MetricsCollector is IDisposable disposableMetricsCollector) { disposableMetricsCollector.Dispose(); } if (PayloadSender is IDisposable disposablePayloadSender) { disposablePayloadSender.Dispose(); } CentralConfigurationFetcher?.Dispose(); }
public void CentralConfigNoUserNamePwPrinted() { var userName = "******"; var pw = "def"; var inMemoryLogger = new InMemoryBlockingLogger(LogLevel.Error); var configReader = new MockConfiguration(serverUrls: $"http://{userName}:{pw}@localhost:8123", maxBatchEventCount: "0", flushInterval: "0"); var configStore = new ConfigurationStore(configReader, inMemoryLogger); using var centralConfigFetcher = new CentralConfigurationFetcher(inMemoryLogger, configStore, Service.GetDefaultService(configReader, inMemoryLogger)); inMemoryLogger.Lines.Should().HaveCount(1); inMemoryLogger.Lines.Should().NotContain(n => n.Contains($"{userName}:{pw}")); inMemoryLogger.Lines.Should().Contain(n => n.Contains("http://[REDACTED]:[REDACTED]@localhost:8123")); }
public void Should_Sanitize_HttpRequestMessage_In_Log() { var testLogger = new TestLogger(LogLevel.Trace); var secretToken = "secretToken"; var serverUrl = "http://*****:*****@localhost:8200"; var configSnapshotFromReader = new MockConfiguration(testLogger, logLevel: "Trace", serverUrl: serverUrl, secretToken: secretToken); var configStore = new ConfigurationStore(configSnapshotFromReader, testLogger); var service = Service.GetDefaultService(configSnapshotFromReader, testLogger); var waitHandle = new ManualResetEvent(false); var handler = new MockHttpMessageHandler(); var configUrl = BackendCommUtils.ApmServerEndpoints .BuildGetConfigAbsoluteUrl(configSnapshotFromReader.ServerUrl, service); handler.When(configUrl.AbsoluteUri) .Respond(_ => { waitHandle.Set(); return(new HttpResponseMessage(HttpStatusCode.ServiceUnavailable)); }); var centralConfigFetcher = new CentralConfigurationFetcher(testLogger, configStore, service, handler); waitHandle.WaitOne(); var count = 0; while (!testLogger.Log.Contains("Exception was thrown while fetching configuration from APM Server and parsing it.") && count < 10) { Thread.Sleep(500); count++; } testLogger.Log .Should().Contain($"Authorization: {Consts.Redacted}").And.NotContain(secretToken) .And.NotContain(serverUrl); }