public AspNetCoreGenericWebHostTests(RemoteServiceFixtures.AspNetCore3FeaturesFixture fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.ForceTransactionTraces(); }, exerciseApplication: () => { _fixture.Get(); _fixture.ThrowException(); _fixture.AgentLog.WaitForLogLine(AgentLogBase.ErrorTraceDataLogLineRegex, TimeSpan.FromMinutes(2)); } ); _fixture.Initialize(); }
public AspNetCoreLocalHSMDisabledAndServerSideHSMDisabledTests(RemoteServiceFixtures.AspNetCoreMvcBasicRequestsFixture fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.ForceTransactionTraces(); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "level", "debug"); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "requestParameters" }, "enabled", "true"); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "service" }, "ssl", "false"); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "transactionTracer" }, "recordSql", "raw"); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "highSecurity" }, "enabled", "false"); }, exerciseApplication: () => _fixture.GetWithData(QueryStringParameterValue) ); _fixture.Initialize(); }
public InstrumentationLoaderTestsCore(RemoteServiceFixtures.ConsoleInstrumentationLoaderFixtureCore fixture, ITestOutputHelper output) : base(fixture) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.ForceTransactionTraces(); configModifier.SetLogLevel("finest"); }, exerciseApplication: () => { } ); _fixture.Initialize(); }
public GetBrowserTimingHeader(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.AutoInstrumentBrowserMonitoring(false); configModifier.BrowserMonitoringEnableAttributes(true); }, exerciseApplication: () => { _browserTimingHeader = _fixture.GetBrowserTimingHeader(); } ); _fixture.Initialize(); }
public OtherTransactionAsync(RemoteServiceFixtures.BasicMvcApplicationTestFixture fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configModifier = new NewRelicConfigModifier(_fixture.DestinationNewRelicConfigFilePath); configModifier.ForceTransactionTraces(); var instrumentationFilePath = $@"{fixture.DestinationNewRelicExtensionsDirectoryPath}\CustomInstrumentation.xml"; CommonUtils.AddCustomInstrumentation(instrumentationFilePath, "BasicMvcApplication", "BasicMvcApplication.Controllers.CustomInstrumentationAsyncController", "CustomMethodBackgroundThread", "AsyncForceNewTransactionWrapper", "MyCustomMetricName"); }, exerciseApplication: () => { _fixture.GetBackgroundThread(); } ); _fixture.Initialize(); }
public DataTransmissionPutGzip(MvcWithCollectorFixture fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.AddActions( setupConfiguration: () => { var configModifier = new NewRelicConfigModifier(fixture.DestinationNewRelicConfigFilePath); configModifier.PutForDataSend(); configModifier.CompressedContentEncoding("gzip"); }, exerciseApplication: () => { _fixture.Get(); _fixture.AgentLog.WaitForLogLine(AgentLogFile.AgentConnectedLogLineRegex, TimeSpan.FromMinutes(1)); _collectedRequests = _fixture.GetCollectedRequests(); } ); _fixture.Initialize(); }
public RestSharpInstrumentationTaskResult(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.ForceTransactionTraces(); }, exerciseApplication: () => { _fixture.GetRestSharpTaskResultClient(method: "GET", generic: true, cancelable: true); _fixture.GetRestSharpTaskResultClient(method: "PUT", generic: false, cancelable: false); _fixture.GetRestSharpTaskResultClient(method: "POST", generic: false, cancelable: false); _fixture.GetRestSharpTaskResultClient(method: "DELETE", generic: true, cancelable: true); } ); _fixture.Initialize(); }
public LogLevelInfoAndAuditLogTrueTests(RemoteServiceFixtures.BasicMvcApplicationTestFixture fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.ForceTransactionTraces(); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "level", "info"); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "auditLog", "true"); }, exerciseApplication: () => { _fixture.Get(); } ); _fixture.Initialize(); }
public SpanEventsNotCreatedAttributesTest(RemoteServiceFixtures.DTBasicMVCApplicationFixture fixture, ITestOutputHelper output) { _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 CouchbaseQueryTests(RemoteServiceFixtures.CouchbaseBasicMvcFixture fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.ForceTransactionTraces(); configModifier.ForceSqlTraces(); }, exerciseApplication: () => { _fixture.Couchbase_Query(); } ); _fixture.Initialize(); }
public CatEnabledChainedTaskResultRestSharp(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.ForceTransactionTraces(); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(_fixture.DestinationNewRelicConfigFilePath, new[] { "configuration" }, "crossApplicationTracingEnabled", "true"); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(_fixture.DestinationNewRelicConfigFilePath, new[] { "configuration", "crossApplicationTracer" }, "enabled", "true"); }, exerciseApplication: () => { _fixture.GetIgnored(); _responseHeaders = _fixture.GetRestSharpTaskResultClientWithHeaders(method: "GET", generic: true, cancelable: true); } ); _fixture.Initialize(); }
public AspNetCoreCollectibleAssemblyContextTests(RemoteServiceFixtures.AspNetCore3FeaturesFixture fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.ForceTransactionTraces(); configModifier.SetLogLevel("finest"); }, exerciseApplication: () => { _fixture.AccessCollectible(); _fixture.AccessCollectible(); _fixture.TestLogger?.WriteLine(_fixture.ProfilerLog.GetFullLogAsString()); } ); _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 AspNetCoreMvcCoreFrameworkTests(AspNetCoreMvcCoreFrameworkFixture fixture, ITestOutputHelper output) : base(fixture) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.SetLogLevel("FINEST"); }, exerciseApplication: () => { _fixture.Get(); _fixture.Get(); } ); _fixture.Initialize(); }
public CallStackFallbackMvc(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.SetLogLevel("Finest"); _fixture.DisableAsyncLocalCallStack(); }, exerciseApplication: () => { _fixture.Get(); } ); _fixture.Initialize(); }
public OtherTransaction(RemoteServiceFixtures.AgentApiExecutor fixture, ITestOutputHelper output) : base(fixture) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configModifier = new NewRelicConfigModifier(_fixture.DestinationNewRelicConfigFilePath); var instrumentationFilePath = $@"{fixture.DestinationNewRelicExtensionsDirectoryPath}\CustomInstrumentation.xml"; //Use the two different wrappers here to ensure that they both filter to OtherTransactionWrapper and create the same behavior CommonUtils.AddCustomInstrumentation(instrumentationFilePath, "NewRelic.Agent.IntegrationTests.Applications.AgentApiExecutor", "NewRelic.Agent.IntegrationTests.Applications.AgentApiExecutor.Program", "RealMain", "NewRelic.Providers.Wrapper.CustomInstrumentation.OtherTransactionWrapper", "MyCustomMetricName"); CommonUtils.AddCustomInstrumentation(instrumentationFilePath, "NewRelic.Agent.IntegrationTests.Applications.AgentApiExecutor", "NewRelic.Agent.IntegrationTests.Applications.AgentApiExecutor.Program", "SomeSlowMethod", "NewRelic.Agent.Core.Tracer.Factories.BackgroundThreadTracerFactory"); } ); _fixture.Initialize(); }
public HighSecurityAndCustomAttributes(HSMCustomAttributesWebApi fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.ForceTransactionTraces(); configModifier.SetHighSecurityMode(true); configModifier.SetLogLevel("debug"); }, exerciseApplication: () => { _fixture.Get(); _fixture.GetCustomErrorAttributes(); _fixture.AgentLog.WaitForLogLine(AgentLogFile.ErrorEventDataLogLineRegex, 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(); }
public NServiceBusReceiveTests(NServiceBusReceiverFixture fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configPath = _fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.ForceTransactionTraces(); }, exerciseApplication: () => { _fixture.SendValidAndInvalidMessages(); _fixture.AgentLog.WaitForLogLine(AgentLogFile.ErrorTraceDataLogLineRegex, TimeSpan.FromMinutes(2)); _fixture.AgentLog.WaitForLogLine(AgentLogFile.TransactionSampleLogLineRegex, TimeSpan.FromMinutes(1)); } ); _fixture.Initialize(); }
public CustomInstrumentationEditorConnectCommand(MvcWithCollectorFixture fixture, ITestOutputHelper output) : base(fixture) { _fixture = fixture; _fixture.TestLogger = output; _fixture.AddActions( setupConfiguration: () => { var configModifier = new NewRelicConfigModifier(_fixture.DestinationNewRelicConfigFilePath); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(_fixture.DestinationNewRelicConfigFilePath, new[] { "configuration", "service" }, "autoStart", "false"); configModifier.SetLogLevel("finest"); }, exerciseApplication: () => { _fixture.SetCustomInstrumentationEditorOnConnect(); _fixture.Get(); _fixture.StartAgent(); _fixture.AgentLog.WaitForLogLine(AgentLogFile.AgentConnectedLogLineRegex, TimeSpan.FromMinutes(1)); _fixture.GenerateCallsToCustomInstrumentationEditorMethods(); } ); _fixture.Initialize(); }
public CustomInstrumentationEditorAgentCommand(MvcWithCollectorFixture fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.AddActions( setupConfiguration: () => { var configModifier = new NewRelicConfigModifier(_fixture.DestinationNewRelicConfigFilePath); configModifier.SetLogLevel("finest"); }, exerciseApplication: () => { _fixture.Get(); _fixture.TriggerCustomInstrumentationEditorAgentCommand(); _fixture.AgentLog.WaitForLogLine(AgentLogBase.InstrumentationUpdateCommandLogLineRegex, TimeSpan.FromMinutes(3)); _fixture.AgentLog.ClearLog(TimeSpan.FromSeconds(5)); _fixture.GenerateCallsToCustomInstrumentationEditorMethods(); } ); _fixture.Initialize(); }
public CustomAttributesIgnoredErrorAttributesNotInTransactionTrace(CustomAttributesWebApi fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.ForceTransactionTraces(); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "level", "debug"); CommonUtils.ModifyOrCreateXmlNodeInNewRelicConfig(configPath, new[] { "configuration", "errorCollector", "ignoreErrors" }, "exception", "System.ArithmeticException"); }, exerciseApplication: () => { _fixture.Get404(); _fixture.AgentLog.WaitForLogLine(AgentLogFile.TransactionSampleLogLineRegex, TimeSpan.FromMinutes(2)); } ); _fixture.Initialize(); }
public WebForms45Application(RemoteServiceFixtures.WebForms45Application fixture, ITestOutputHelper output) : base(fixture) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var newRelicConfig = _fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(newRelicConfig); configModifier.ForceTransactionTraces(); }, exerciseApplication: () => { // Make a request with an invalid query string to ensure that the agent handles it safely var queryStringParams = new Dictionary <string, string> { { "a", "<b>" } }; _fixture.GetWithQueryString(queryStringParams, true); } ); _fixture.Initialize(); }
public CustomAttributesLegacyIgnored(RemoteServiceFixtures.CustomAttributesWebApi fixture, ITestOutputHelper output) : base(fixture) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.ForceTransactionTraces(); CommonUtils.ModifyOrCreateXmlNodeInNewRelicConfig(configPath, new[] { "configuration", "parameterGroups", "customParameters" }, "ignore", "key"); }, exerciseApplication: () => { _fixture.Get(); _fixture.AgentLog.WaitForLogLine(AgentLogFile.TransactionSampleLogLineRegex, TimeSpan.FromMinutes(2)); } ); _fixture.Initialize(); }
public CustomAttributes(RemoteServiceFixtures.CustomAttributesWebApi fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.ForceTransactionTraces(); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(configPath, new[] { "configuration", "log" }, "level", "debug"); }, exerciseApplication: () => { _fixture.Get(); //This transaction trace will appear as error trace instead of transaction trace. _fixture.Get404(); _fixture.AgentLog.WaitForLogLine(AgentLogFile.TransactionSampleLogLineRegex, TimeSpan.FromMinutes(2)); }); _fixture.Initialize(); }
public CouchbaseAsyncUpsertTests(RemoteServiceFixtures.CouchbaseBasicMvcFixture fixture, ITestOutputHelper output) : base(fixture) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.ForceTransactionTraces(); }, exerciseApplication: () => { _fixture.Couchbase_UpsertAsync(); _fixture.Couchbase_UpsertCASReplicatePersistWithExpirationAsync(); _fixture.Couchbase_UpsertCASWithExpirationAsync(); } ); _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 CatEnabledWithServerRedirect(RemoteServiceFixtures.BasicMvcApplicationTestFixture fixture, ITestOutputHelper output) { _fixture = fixture; _fixture.TestLogger = output; _fixture.Actions ( setupConfiguration: () => { var configPath = fixture.DestinationNewRelicConfigFilePath; var configModifier = new NewRelicConfigModifier(configPath); configModifier.ForceTransactionTraces(); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(_fixture.DestinationNewRelicConfigFilePath, new[] { "configuration" }, "crossApplicationTracingEnabled", "true"); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(_fixture.DestinationNewRelicConfigFilePath, new[] { "configuration", "crossApplicationTracer" }, "enabled", "true"); }, exerciseApplication: () => { _fixture.GetIgnored(); _responseHeaders = _fixture.GetWithCatHeaderWithRedirect(); } ); _fixture.Initialize(); }
public CatEnabledChainedRequestsHttpClient(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.ForceTransactionTraces(); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(_fixture.DestinationNewRelicConfigFilePath, new[] { "configuration" }, "crossApplicationTracingEnabled", "true"); CommonUtils.ModifyOrCreateXmlAttributeInNewRelicConfig(_fixture.DestinationNewRelicConfigFilePath, new[] { "configuration", "crossApplicationTracer" }, "enabled", "true"); }, exerciseApplication: () => { _fixture.GetIgnored(); _responseHeaders = _fixture.GetWithCatHeaderChainedHttpClient(requestData: new CrossApplicationRequestData("guid", false, "tripId", "pathHash")); } ); _fixture.Initialize(); }