public MetricsService(IMetricsClient client, TimeSpan period) { ReferenceFrame.Period = period; var collector = ReferenceFrame.StaticCollector.Initialize(this); Publisher = new MetricPublisher(this, collector, client); ReferenceFrame.CheckEnabled = () => IsEnabled; }
public bool Start(HostControl hostControl) { log.Info("starting up"); var statsify = configuration.Statsify; var @namespace = statsify.Namespace; if (!string.IsNullOrWhiteSpace(@namespace)) { @namespace += "."; } @namespace += Environment.MachineName.ToLowerInvariant(); var uri = statsify.Uri; if (uri != null && !string.IsNullOrWhiteSpace(uri.OriginalString)) { log.Trace("configuring StatsifyClient with uri: {0}, namespace: '{1}', collection interval: '{2}' ", statsify.Uri, @namespace, configuration.Metrics.CollectionInterval); var statsifyChannelFactory = new StatsifyChannelFactory(); var statsifyChannel = statsifyChannelFactory.CreateChannel(uri); statsifyClient = new StatsifyClient(@namespace, statsifyChannel); } // if else { log.Trace("configuring StatsifyClient with host: {0}, port: {1}, namespace: '{2}', collection interval: '{3}' ", configuration.Statsify.Host, configuration.Statsify.Port, @namespace, configuration.Metrics.CollectionInterval); statsifyClient = new UdpStatsifyClient(statsify.Host, statsify.Port, @namespace); } // else metricCollector = new MetricCollector(configuration.Metrics); metricPublisher = new MetricPublisher(metricCollector, statsifyClient, configuration.Metrics.CollectionInterval); metricPublisher.Start(); return(true); }