Exemplo n.º 1
0
            /// <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);
            }