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)); } }
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); }
public PrometheusServer(MetricServer server, IGiveSensors collector, PrometheusCollection prometheusCollection) { _server = server; _collector = collector; _prometheusCollection = prometheusCollection; }