public void VerifyConnectionString_CorrectlySetsDefaultEndpoint() { var testIkey = "test_ikey"; var exporter = new AzureMonitorTraceExporter(new AzureMonitorExporterOptions { ConnectionString = $"InstrumentationKey={testIkey};" }); GetInternalFields(exporter, out string ikey, out string endpoint); Assert.Equal(testIkey, ikey); Assert.Equal(ConnectionString.Constants.DefaultIngestionEndpoint, endpoint); }
public void VerifyConnectionString_CorrectlySetsEndpoint() { var testIkey = "test_ikey"; var testEndpoint = "https://www.bing.com/"; var exporter = new AzureMonitorTraceExporter(new AzureMonitorExporterOptions { ConnectionString = $"InstrumentationKey={testIkey};IngestionEndpoint={testEndpoint}" }); GetInternalFields(exporter, out string ikey, out string endpoint); Assert.Equal(testIkey, ikey); Assert.Equal(testEndpoint, endpoint); }
/// <summary> /// Registers an Azure Monitor trace exporter that will receive <see cref="System.Diagnostics.Activity"/> instances. /// </summary> /// <param name="builder"><see cref="TracerProviderBuilder"/> builder to use.</param> /// <param name="configure">Exporter configuration options.</param> /// <param name="processorConfigure">Activity processor configuration.</param> /// <returns>The instance of <see cref="TracerProviderBuilder"/> to chain the calls.</returns> public static TracerProviderBuilder UseAzureMonitorTraceExporter(this TracerProviderBuilder builder, Action <AzureMonitorExporterOptions> configure = null, Action <ActivityProcessorPipelineBuilder> processorConfigure = null) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(builder.AddProcessorPipeline(pipeline => { var options = new AzureMonitorExporterOptions(); configure?.Invoke(options); var exporter = new AzureMonitorTraceExporter(options); processorConfigure?.Invoke(pipeline); pipeline.SetExporter(exporter); })); }
private void GetInternalFields(AzureMonitorTraceExporter exporter, out string ikey, out string endpoint) { // TODO: NEED A BETTER APPROACH FOR TESTING. WE DECIDED AGAINST MAKING FIELDS "internal". // instrumentationKey: AzureMonitorTraceExporter.AzureMonitorTransmitter.instrumentationKey // endpoint: AzureMonitorTraceExporter.AzureMonitorTransmitter.ServiceRestClient.endpoint var transmitter = typeof(AzureMonitorTraceExporter) .GetField("AzureMonitorTransmitter", BindingFlags.Instance | BindingFlags.NonPublic) .GetValue(exporter); ikey = typeof(AzureMonitorTransmitter) .GetField("instrumentationKey", BindingFlags.Instance | BindingFlags.NonPublic) .GetValue(transmitter) .ToString(); var serviceRestClient = typeof(AzureMonitorTransmitter) .GetField("applicationInsightsRestClient", BindingFlags.Instance | BindingFlags.NonPublic) .GetValue(transmitter); endpoint = typeof(ApplicationInsightsRestClient) .GetField("host", BindingFlags.Instance | BindingFlags.NonPublic) .GetValue(serviceRestClient) .ToString(); }