public RemoteApplication SetupReceiverApplication(bool isDistributedTracing, bool isWebApplication) { RemoteApplication receiverApplication; if (isWebApplication) { receiverApplication = new RemoteWebApplication("BasicMvcApplication", ApplicationType.Bounded); } else { receiverApplication = new RemoteService(_applicationDirectoryName, _executableName, _targetFramework, ApplicationType.Bounded, createsPidFile: true, isCoreApp: false, publishApp: false); } receiverApplication.TestLogger = new XUnitTestLogger(TestLogger); receiverApplication.DeleteWorkingSpace(); receiverApplication.CopyToRemote(); SetSecrets(receiverApplication.DestinationNewRelicConfigFilePath); var configModifier = new NewRelicConfigModifier(receiverApplication.DestinationNewRelicConfigFilePath); configModifier.SetLogLevel("all"); if (isDistributedTracing) { configModifier.SetOrDeleteDistributedTraceEnabled(true); configModifier.SetOrDeleteSpanEventsEnabled(true); } else { configModifier.SetOrDeleteDistributedTraceEnabled(false); configModifier.SetOrDeleteSpanEventsEnabled(false); } return(receiverApplication); }
public OwinCATChainTests(OwinTracingChainFixture fixture, ITestOutputHelper output) : base(fixture) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configModifier = new NewRelicConfigModifier(_fixture.DestinationNewRelicConfigFilePath); configModifier.SetOrDeleteDistributedTraceEnabled(false); configModifier.SetOrDeleteSpanEventsEnabled(false); configModifier.SetLogLevel("all"); _fixture.ReceiverApplication = _fixture.SetupReceiverApplication(isDistributedTracing: false, isWebApplication: false); _fixture.ReceiverApplication.Start(string.Empty, captureStandardOutput: true); }, exerciseApplication: () => { _fixture.ExecuteTraceRequestChainHttpClient(); _fixture.ReceiverApplication.AgentLog.WaitForLogLine(AgentLogFile.AnalyticsEventDataLogLineRegex, TimeSpan.FromMinutes(2)); } ); _fixture.Initialize(); }
public DTSupportabilityMetricTests(RemoteServiceFixtures.DTBasicMVCApplicationFixture fixture, ITestOutputHelper output) : base(fixture) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.SetOrDeleteDistributedTraceEnabled(true); configModifier.ForceTransactionTraces(); configModifier.SetOrDeleteSpanEventsEnabled(true); }, exerciseApplication: () => { _fixture.GenerateMajorVersionMetric(); _fixture.GenerateIgnoredNullMetric(); _fixture.GenerateParsePayloadMetric(); _fixture.GenerateAcceptSuccessMetric(); _fixture.GenerateUntrustedAccountMetric(); _fixture.GenerateCreateSuccessMetric(); } ); _fixture.Initialize(); }
public RabbitMqDistributedTracingTestsBase(TFixture fixture, ITestOutputHelper output) : base(fixture) { _fixture = fixture; fixture.TestLogger = output; // RabbitMQ SendRecieve uses the BasicGet method to receive, which does not process incoming tracing payloads _fixture.AddCommand($"RabbitMQ SendReceive {_sendReceiveQueue} TestMessage"); // RabbitMQ SendRecieveWithEventingConsumer uses the HandleBasicDeliverWrapper on the receiving side, which does process incoming tracing headers // We execute the method twice to make sure this issue stays fixed: https://github.com/newrelic/newrelic-dotnet-agent/issues/464 _fixture.AddCommand($"RabbitMQ SendReceiveWithEventingConsumer {_sendReceiveQueue} EventingConsumerTestMessageOne"); _fixture.AddCommand($"RabbitMQ SendReceiveWithEventingConsumer {_sendReceiveQueue} EventingConsumerTestMessageTwo"); // This is needed to avoid a hang on shutdown in the test app _fixture.AddCommand("RabbitMQ Shutdown"); fixture.Actions ( setupConfiguration: () => { var configModifier = new NewRelicConfigModifier(fixture.DestinationNewRelicConfigFilePath); configModifier.ForceTransactionTraces(); configModifier.SetOrDeleteDistributedTraceEnabled(true); configModifier.SetOrDeleteSpanEventsEnabled(true); } ); fixture.Initialize(); }
public RabbitMqW3cTracingTests(RemoteServiceFixtures.RabbitMqBasicMvcFixture fixture, ITestOutputHelper output) { fixture.TestLogger = output; fixture.Actions ( setupConfiguration: () => { var configModifier = new NewRelicConfigModifier(fixture.DestinationNewRelicConfigFilePath); configModifier.ForceTransactionTraces(); configModifier.SetOrDeleteDistributedTraceEnabled(true); configModifier.SetOrDeleteSpanEventsEnabled(true); } ); }
public RabbitMqW3cTracingTests(ConsoleDynamicMethodFixtureFW471 fixture, ITestOutputHelper output) : base(fixture) { fixture.TestLogger = output; fixture.Actions ( setupConfiguration: () => { var configModifier = new NewRelicConfigModifier(fixture.DestinationNewRelicConfigFilePath); configModifier.ForceTransactionTraces(); configModifier.SetOrDeleteDistributedTraceEnabled(true); configModifier.SetOrDeleteSpanEventsEnabled(true); } ); }
public W3CTestBase(T fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configModifier = new NewRelicConfigModifier(_fixture.DestinationNewRelicConfigFilePath); configModifier.SetOrDeleteDistributedTraceEnabled(true); configModifier.SetOrDeleteSpanEventsEnabled(true); configModifier.SetLogLevel("debug"); _fixture.ReceiverApplication = _fixture.SetupReceiverApplication(isDistributedTracing: true, isWebApplication: _fixture is OwinTracingChainFixture ? false : true); _fixture.ReceiverApplication.Start(string.Empty, captureStandardOutput: true); }); }
protected RemoteService SetupDistributedTracingApplication() { var service = new RemoteService(ApplicationDirectoryName, ExecutableName, ApplicationType.Bounded, true, true, true); service.TestLogger = new XUnitTestLogger(TestLogger); service.DeleteWorkingSpace(); service.CopyToRemote(); SetSecrets(service.DestinationNewRelicConfigFilePath); var configModifier = new NewRelicConfigModifier(service.DestinationNewRelicConfigFilePath); configModifier.SetOrDeleteDistributedTraceEnabled(true); configModifier.SetOrDeleteSpanEventsEnabled(true); configModifier.SetLogLevel("all"); return(service); }
public AspNetCoreDistTraceRequestChainFixture() : base(new RemoteService(ApplicationDirectoryName, ExecutableName, ApplicationType.Bounded, true, true, true)) { Actions(setupConfiguration: () => { var configModifier = new NewRelicConfigModifier(DestinationNewRelicConfigFilePath); configModifier.SetOrDeleteDistributedTraceEnabled(true); configModifier.SetOrDeleteSpanEventsEnabled(true); configModifier.SetLogLevel("all"); //Do during setup so TestLogger is set. FirstCallApplication = SetupDistributedTracingApplication(); SecondCallApplication = SetupDistributedTracingApplication(); FirstCallApplication.Start(string.Empty, captureStandardOutput: true); SecondCallApplication.Start(string.Empty, captureStandardOutput: true); }); }
public SpanEventsNotCreatedAttributesTest(RemoteServiceFixtures.DTBasicMVCApplicationFixture fixture, ITestOutputHelper output) : base(fixture) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.SetOrDeleteDistributedTraceEnabled(true); configModifier.SetOrDeleteSpanEventsEnabled(false); configModifier.ForceTransactionTraces(); }, exerciseApplication: () => { _fixture.Initiate(); } ); _fixture.Initialize(); }
public RabbitMqLegacyDistributedTracingTests(RemoteServiceFixtures.RabbitMqLegacyBasicMvcFixture fixture, ITestOutputHelper output) { _fixture = fixture; fixture.TestLogger = output; fixture.Actions ( setupConfiguration: () => { var configModifier = new NewRelicConfigModifier(fixture.DestinationNewRelicConfigFilePath); configModifier.ForceTransactionTraces(); configModifier.SetOrDeleteDistributedTraceEnabled(true); configModifier.SetOrDeleteSpanEventsEnabled(true); }, exerciseApplication: () => { _headerExists = fixture.GetMessageQueue_RabbitMQ_SendReceive_HeaderExists("Test Message"); _headerValue = fixture.GetMessageQueue_RabbitMQ_SendReceive_HeaderValue("Test Message"); fixture.GetMessageQueue_RabbitMQ_SendReceiveWithEventingConsumer_HeaderValue("Test Message"); } ); fixture.Initialize(); }
public TraceIdTests(AspNetCore3BasicWebApiApplicationFixture fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configModifier = new NewRelicConfigModifier(_fixture.DestinationNewRelicConfigFilePath); configModifier.SetOrDeleteDistributedTraceEnabled(true); configModifier.SetOrDeleteSpanEventsEnabled(true); configModifier.SetLogLevel("all"); }, exerciseApplication: () => { _traceId = _fixture.GetTraceId(); _fixture.RemoteApplication.AgentLog.WaitForLogLine(AgentLogFile.AnalyticsEventDataLogLineRegex, TimeSpan.FromMinutes(2)); _fixture.RemoteApplication.AgentLog.WaitForLogLine(AgentLogFile.SpanEventDataLogLineRegex, TimeSpan.FromMinutes(2)); } ); _fixture.Initialize(); }
public RabbitMqDistributedTracingTestsBase(TFixture fixture, ITestOutputHelper output) : base(fixture) { _fixture = fixture; fixture.TestLogger = output; _fixture.AddCommand($"RabbitMQ SendReceive {_sendReceiveQueue} TestMessage"); _fixture.AddCommand($"RabbitMQ SendReceiveWithEventingConsumer {_sendReceiveQueue} EventingConsumerTestMessage"); // This is needed to avoid a hang on shutdown in the test app _fixture.AddCommand("RabbitMQ Shutdown"); fixture.Actions ( setupConfiguration: () => { var configModifier = new NewRelicConfigModifier(fixture.DestinationNewRelicConfigFilePath); configModifier.ForceTransactionTraces(); configModifier.SetOrDeleteDistributedTraceEnabled(true); configModifier.SetOrDeleteSpanEventsEnabled(true); } ); fixture.Initialize(); }