aliencat-exporter/main.cpp
2024-01-02 01:21:28 +03:00

32 lines
776 B
C++

#include "DataSources/DnsmasqSource.h"
#include <iostream>
#include <chrono>
#include <thread>
#include <prometheus/exposer.h>
#include <prometheus/registry.h>
#include <prometheus/counter.h>
int main() {
prometheus::Exposer exposer{"0.0.0.0:9000"};
auto registry = std::make_shared<prometheus::Registry>();
DnsmasqSource dnsmasq;
auto& gouge = prometheus::BuildGauge()
.Name("aliencat_dnsmasq_leases")
.Help("Dnsmasq leases detail info")
.Register(*registry);
exposer.RegisterCollectable(registry);
for (;;) {
std::this_thread::sleep_for(std::chrono::seconds(1));
for(const auto& leaseLabels: dnsmasq.readLeases()) {
gouge.Add(leaseLabels).Set(1);
}
}
return 0;
}