/// <summary> /// Builds a new client that connects to the Wavefront Proxy Agent. /// </summary> /// <returns>A new <see cref="WavefrontProxyClient"/>.</returns> public WavefrontProxyClient Build() { var client = new WavefrontProxyClient(); if (metricsPort == null) { client.metricsProxyConnectionHandler = null; } else { client.metricsProxyConnectionHandler = new ProxyConnectionHandler( proxyHostName, metricsPort.Value); } if (distributionPort == null) { client.histogramProxyConnectionHandler = null; } else { client.histogramProxyConnectionHandler = new ProxyConnectionHandler( proxyHostName, distributionPort.Value); } if (tracingPort == null) { client.tracingProxyConnectionHandler = null; } else { client.tracingProxyConnectionHandler = new ProxyConnectionHandler( proxyHostName, tracingPort.Value); } client.timer = new Timer(flushIntervalSeconds * 1000); client.timer.Elapsed += client.Run; client.timer.Enabled = true; return(client); }
/// <summary> /// Builds a new client that connects to the Wavefront Proxy Agent. /// </summary> /// <returns>A new <see cref="WavefrontProxyClient"/>.</returns> public WavefrontProxyClient Build() { loggerFactory = loggerFactory ?? Logging.LoggerFactory; var client = new WavefrontProxyClient { logger = loggerFactory.CreateLogger <WavefrontProxyClient>() }; if (enableInternalMetrics) { client.sdkMetricsRegistry = new WavefrontSdkMetricsRegistry.Builder(client) .Prefix(Constants.SdkMetricPrefix + ".core.sender.proxy") .Tag(Constants.ProcessTagKey, Process.GetCurrentProcess().Id.ToString()) .LoggerFactory(loggerFactory) .Build(); } else { client.sdkMetricsRegistry = new WavefrontSdkMetricsRegistry.Builder(null) .Prefix(Constants.SdkMetricPrefix + ".core.sender.proxy") .Tag(Constants.ProcessTagKey, Process.GetCurrentProcess().Id.ToString()) .LoggerFactory(loggerFactory) .Build(); } if (metricsPort == null) { client.metricsProxyConnectionHandler = null; } else { client.metricsProxyConnectionHandler = new ProxyConnectionHandler( proxyHostName, metricsPort.Value, client.sdkMetricsRegistry, "metricHandler", loggerFactory); } if (distributionPort == null) { client.histogramProxyConnectionHandler = null; } else { client.histogramProxyConnectionHandler = new ProxyConnectionHandler( proxyHostName, distributionPort.Value, client.sdkMetricsRegistry, "histogramHandler", loggerFactory); } if (tracingPort == null) { client.tracingProxyConnectionHandler = null; } else { client.tracingProxyConnectionHandler = new ProxyConnectionHandler( proxyHostName, tracingPort.Value, client.sdkMetricsRegistry, "tracingHandler", loggerFactory); } client.timer = new Timer(flushIntervalSeconds * 1000); client.timer.Elapsed += client.Run; client.timer.Enabled = true; double sdkVersion = Utils.GetSemVer(Assembly.GetExecutingAssembly()); client.sdkMetricsRegistry.Gauge("version", () => sdkVersion); client.pointsDiscarded = client.sdkMetricsRegistry.DeltaCounter("points.discarded"); client.pointsValid = client.sdkMetricsRegistry.DeltaCounter("points.valid"); client.pointsInvalid = client.sdkMetricsRegistry.DeltaCounter("points.invalid"); client.pointsDropped = client.sdkMetricsRegistry.DeltaCounter("points.dropped"); client.histogramsDiscarded = client.sdkMetricsRegistry.DeltaCounter("histograms.discarded"); client.histogramsValid = client.sdkMetricsRegistry.DeltaCounter("histograms.valid"); client.histogramsInvalid = client.sdkMetricsRegistry.DeltaCounter("histograms.invalid"); client.histogramsDropped = client.sdkMetricsRegistry.DeltaCounter("histograms.dropped"); client.spansDiscarded = client.sdkMetricsRegistry.DeltaCounter("spans.discarded"); client.spansValid = client.sdkMetricsRegistry.DeltaCounter("spans.valid"); client.spansInvalid = client.sdkMetricsRegistry.DeltaCounter("spans.invalid"); client.spansDropped = client.sdkMetricsRegistry.DeltaCounter("spans.dropped"); client.spanLogsDiscarded = client.sdkMetricsRegistry.DeltaCounter("spans_logs.discarded"); client.spanLogsValid = client.sdkMetricsRegistry.DeltaCounter("span_logs.valid"); client.spanLogsInvalid = client.sdkMetricsRegistry.DeltaCounter("span_logs.invalid"); client.spanLogsDropped = client.sdkMetricsRegistry.DeltaCounter("span_logs.dropped"); return(client); }