public void init(JObject config, CancellationTokenSource cts) { _config = config.ToObject <opcPromConfigWrapper>().prometheus; server = new KestrelMetricServer(_config.port); variablesMap = new Dictionary <string, Gauge>(); var db_nodes = _serv.db.getDbNodes(); try{ selector = new NodesSelector(_config.variableFilter); } catch (Exception e) { logger.Error("HTTP server initialization failed: " + e.Message); cts.Cancel(); } if (!cts.IsCancellationRequested) { foreach (var node in db_nodes) { if (selector.selectNode(node.name)) { variablesMap.Add(node.name, createMetric(node.name)); } } variablesMap.Add("opc_server_up", createMetric("opc_server_up", "Describe the status of connection with the opc-server, 0 means TCP connection down.")); setTimer(); try { server.Start(); logger.Info("Prometheus metrics exposed at http://localhost:" + _config.port + "/metrics"); } catch (Exception e) { logger.Error("HTTP server initialization failed: " + e.Message); cts.Cancel(); } } }
public opcPromConfigWrapper() { prometheus = new opcPromConfig(); }