private Telemetry CreateTelemetry( MetricSerializer metricSerializer, StatsdConfig config, string[] globalTags, DogStatsdEndPoint dogStatsdEndPoint, ITransport transport) { var telemetryFlush = config.Advanced.TelemetryFlushInterval; if (telemetryFlush.HasValue) { var assembly = typeof(StatsdBuilder).GetTypeInfo().Assembly; var version = assembly.GetName().Version.ToString(); var optionalTelemetryEndPoint = config.Advanced.OptionalTelemetryEndPoint; ITransport telemetryTransport = transport; if (optionalTelemetryEndPoint != null && !dogStatsdEndPoint.AreEquals(optionalTelemetryEndPoint)) { telemetryTransport = CreateTransport(optionalTelemetryEndPoint, config); } return(_factory.CreateTelemetry(metricSerializer, version, telemetryFlush.Value, telemetryTransport, globalTags)); } // Telemetry is not enabled return(new Telemetry()); }
public Telemetry( MetricSerializer metricSerializer, string assemblyVersion, TimeSpan flushInterval, ITransport transport, string[] globalTags) { _optionalMetricSerializer = metricSerializer; _optionalTransport = transport; var transportStr = transport.TelemetryClientTransport; var optionalTags = new List <string> { "client:csharp", $"client_version:{assemblyVersion}", $"client_transport:{transportStr}" }; optionalTags.AddRange(globalTags); _optionalTags = optionalTags.ToArray(); _optionalTimer = new Timer( _ => Flush(), null, flushInterval, flushInterval); }