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

39 lines
886 B
C++

//
// Created by Мустафаев Селим Мустафаевич on 01.01.2024.
//
#include "DnsmasqSource.h"
#include <exception>
#include <sstream>
#include <iostream>
DnsmasqSource::DnsmasqSource() {
_leases.open("/var/lib/misc/dnsmasq.leases");
if(_leases.fail()) {
throw std::runtime_error("failed to open leases file");
}
}
std::vector<prometheus::Labels> DnsmasqSource::readLeases() {
_leases.clear();
_leases.seekg(0);
std::string line, time, mac, ip, host, id;
std::stringstream ss;
std::vector<prometheus::Labels> result;
while(std::getline(_leases, line)) {
ss << line;
ss >> time >> mac >> ip >> host >> id;
result.push_back({
{"time", time},
{"mac", mac},
{"ip", ip},
{"host", host},
{"id", id}
});
}
return result;
}