1
0

PrometheusServer.cs 892 B

12345678910111213141516171819202122232425262728293031323334353637
  1. using NLog;
  2. using Prometheus;
  3. namespace OhmGraphite
  4. {
  5. public class PrometheusServer : IManage
  6. {
  7. private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
  8. private readonly MetricServer _server;
  9. private readonly IGiveSensors _collector;
  10. public PrometheusServer(MetricServer server, IGiveSensors collector)
  11. {
  12. _server = server;
  13. _collector = collector;
  14. }
  15. public void Start()
  16. {
  17. Logger.LogAction("starting prometheus server", () =>
  18. {
  19. _collector.Start();
  20. _server.Start();
  21. });
  22. }
  23. public void Dispose()
  24. {
  25. Logger.LogAction("stopping prometheus server", () =>
  26. {
  27. _collector?.Dispose();
  28. _server.Stop();
  29. });
  30. }
  31. }
  32. }