Ejemplo n.º 1
0
        private static IManage CreateManager(MetricConfig config, SensorCollector collector)
        {
            double seconds = config.Interval.TotalSeconds;

            if (config.Graphite != null)
            {
                Logger.Info(
                    $"Graphite host: {config.Graphite.Host} port: {config.Graphite.Port} interval: {seconds} tags: {config.Graphite.Tags}");
                var writer = new GraphiteWriter(config.Graphite.Host,
                                                config.Graphite.Port,
                                                Environment.MachineName,
                                                config.Graphite.Tags);
                return(new MetricTimer(config.Interval, collector, writer));
            }
            else if (config.Prometheus != null)
            {
                Logger.Info($"Prometheus port: {config.Prometheus.Port}");
                var prometheusCollection = new PrometheusCollection(collector, Environment.MachineName);
                var server = new MetricServer(config.Prometheus.Host, config.Prometheus.Port);
                return(new PrometheusServer(server, collector, prometheusCollection));
            }
            else if (config.Timescale != null)
            {
                var writer = new TimescaleWriter(config.Timescale.Connection, config.Timescale.SetupTable, Environment.MachineName);
                return(new MetricTimer(config.Interval, collector, writer));
            }
            else
            {
                Logger.Info($"Influxdb address: {config.Influx.Address} db: {config.Influx.Db}");
                var writer = new InfluxWriter(config.Influx, Environment.MachineName);
                return(new MetricTimer(config.Interval, collector, writer));
            }
        }
Ejemplo n.º 2
0
        private static IManage CreateManager(MetricConfig config, SensorCollector collector)
        {
            var    hostname = config.LookupName();
            double seconds  = config.Interval.TotalSeconds;

            if (config.Graphite != null)
            {
                Logger.Info(
                    $"Graphite host: {config.Graphite.Host} port: {config.Graphite.Port} interval: {seconds} tags: {config.Graphite.Tags}");
                var writer = new GraphiteWriter(config.Graphite.Host,
                                                config.Graphite.Port,
                                                hostname,
                                                config.Graphite.Tags);
                return(new MetricTimer(config.Interval, collector, writer));
            }
            else if (config.Prometheus != null)
            {
                Logger.Info($"Prometheus port: {config.Prometheus.Port}");
                var registry = PrometheusCollection.SetupDefault(collector);
                var server   = new MetricServer(config.Prometheus.Host, config.Prometheus.Port, registry: registry);
                return(new PrometheusServer(server, collector));
            }
            else if (config.Timescale != null)
            {
                var writer = new TimescaleWriter(config.Timescale.Connection, config.Timescale.SetupTable, hostname);
                return(new MetricTimer(config.Interval, collector, writer));
            }
            else
            {
                Logger.Info($"Influxdb address: {config.Influx.Address} db: {config.Influx.Db}");
                var writer = new InfluxWriter(config.Influx, hostname);
                return(new MetricTimer(config.Interval, collector, writer));
            }
        }
        public static CollectorRegistry SetupDefault(IGiveSensors collector)
        {
            var registry             = Metrics.DefaultRegistry;
            var metrics              = Metrics.WithCustomRegistry(registry);
            var prometheusCollection = new PrometheusCollection(collector, metrics);

            registry.AddBeforeCollectCallback(() => prometheusCollection.UpdateMetrics());
            return(registry);
        }
Ejemplo n.º 4
0
 public PrometheusServer(MetricServer server, IGiveSensors collector, PrometheusCollection prometheusCollection)
 {
     _server               = server;
     _collector            = collector;
     _prometheusCollection = prometheusCollection;
 }