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 ExpectedErrorTests(RemoteServiceFixtures.AspNetCoreMvcBasicRequestsFixture 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.AddExpectedStatusCodes("410-450") .AddExpectedErrorMessages("System.Exception", new List <string> { "test exception" }) .AddExpectedErrorClasses(new List <string> { "AspNetCoreMvcBasicRequestsApplication.Controllers.CustomExceptionClass" }); }, exerciseApplication: () => { _fixture.ReturnADesiredStatusCode(415); _fixture.ThrowExceptionWithMessage("test exception message"); _fixture.ThrowCustomException(); _fixture.AgentLog.WaitForLogLine(AgentLogBase.ErrorTraceDataLogLineRegex, TimeSpan.FromMinutes(2)); } ); _fixture.Initialize(); }
public RestSharpInstrumentationDistributedTracing(RemoteServiceFixtures.BasicMvcApplicationTestFixture 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(); }, exerciseApplication: () => { _fixture.GetRestSharpSyncClient(method: "GET", generic: false); _fixture.GetRestSharpSyncClient(method: "PUT", generic: false); _fixture.GetRestSharpSyncClient(method: "POST", generic: false); _fixture.GetRestSharpSyncClient(method: "DELETE", generic: false); _fixture.GetRestSharpClientTaskCancelled(); //Adding some time for metrics to be fully generated. Thread.Sleep(3000); } ); _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 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 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 CatEnabledHeaderPresentDistributedTraceSettingFalse(RemoteServiceFixtures.BasicMvcApplicationTestFixture fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.ForceTransactionTraces(); configModifier.SetOrDeleteDistributedTraceEnabled(false); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(_fixture.DestinationNewRelicConfigFilePath, new[] { "configuration" }, "crossApplicationTracingEnabled", "true"); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(_fixture.DestinationNewRelicConfigFilePath, new[] { "configuration", "crossApplicationTracer" }, "enabled", "true"); }, exerciseApplication: () => { _fixture.GetIgnored(); _responseHeaders = _fixture.GetWithCatHeader(); } ); _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 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 DtApiTestBase(DistributedTracingApiFixture fixture, ITestOutputHelper output, TracingTestOption tracingTestOption) : base(fixture) { _fixture = fixture; _fixture.TestLogger = output; _fixture.CommandLineArguments = tracingTestOption == TracingTestOption.W3cAndNewrelicHeaders ? "w3c" : null; _fixture.Actions ( setupConfiguration: () => { _fixture.RemoteApplication.NewRelicConfig.SetLogLevel("finest"); var configModifier = new NewRelicConfigModifier(_fixture.DestinationNewRelicConfigFilePath); configModifier.SetOrDeleteDistributedTraceEnabled(true); } ); _fixture.Initialize(); }
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 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); }); }
public HttpClientInstrumentationNet5(AspNet5BasicWebApiApplicationFixture 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(); }, exerciseApplication: () => { _fixture.MakeExternalCallUsingHttpClient("http://www.google.com", "/search"); } ); _fixture.Initialize(); }
public HttpClientInstrumentationNetCore(AspNetCoreMvcBasicRequestsFixture fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.SetOrDeleteDistributedTraceEnabled(true); configModifier.ForceTransactionTraces(); }, exerciseApplication: () => { _fixture.GetHttpClient(); _fixture.GetHttpClientTaskCancelled(); } ); _fixture.Initialize(); }
public InitiateDTAttributesTest(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(); }, exerciseApplication: () => { _fixture.Initiate(); } ); _fixture.Initialize(); }
public ApiCallsTests(TFixture fixture, ITestOutputHelper output) : base(fixture) { Fixture = fixture; Fixture.TestLogger = output; foreach (var apiCall in ApiCalls) { Fixture.AddCommand($"ApiCalls {apiCall}"); } Fixture.Actions ( setupConfiguration: () => { var configModifier = new NewRelicConfigModifier(Fixture.DestinationNewRelicConfigFilePath); configModifier.SetOrDeleteDistributedTraceEnabled(true); configModifier.SetLogLevel("finest"); } ); 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(); }
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(); }