internal AzureMonitorTraceExporter(AzureMonitorExporterOptions options, ITransmitter transmitter) { this.options = options ?? throw new ArgumentNullException(nameof(options)); ConnectionString.ConnectionStringParser.GetValues(this.options.ConnectionString, out this.instrumentationKey, out _); this.Transmitter = transmitter; }
public AzureMonitorTransmitter(AzureMonitorExporterOptions options) { ConnectionStringParser.GetValues(options.ConnectionString, out _, out string ingestionEndpoint); options.Retry.MaxRetries = 0; options.AddPolicy(new IngestionResponsePolicy(), HttpPipelinePosition.PerCall); applicationInsightsRestClient = new ApplicationInsightsRestClient(new ClientDiagnostics(options), HttpPipelineBuilder.Build(options), host: ingestionEndpoint); }
/// <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> /// <returns>The instance of <see cref="TracerProviderBuilder"/> to chain the calls.</returns> public static TracerProviderBuilder AddAzureMonitorTraceExporter(this TracerProviderBuilder builder, Action <AzureMonitorExporterOptions> configure = null) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } var options = new AzureMonitorExporterOptions(); configure?.Invoke(options); // TODO: Pick Simple vs Batching based on AzureMonitorExporterOptions return(builder.AddProcessor(new BatchExportProcessor <Activity>(new AzureMonitorTraceExporter(options)))); }
public AzureMonitorTraceExporter(AzureMonitorExporterOptions options) : this(options, new AzureMonitorTransmitter(options)) { }