28 lines
748 B
C++
28 lines
748 B
C++
//
|
|
// Created by Мустафаев Селим Мустафаевич on 01.01.2024.
|
|
//
|
|
|
|
#include "DnsmasqSource.h"
|
|
#include <sstream>
|
|
#include <ranges>
|
|
|
|
DnsmasqSource::DnsmasqSource() {
|
|
}
|
|
|
|
std::vector<prometheus::Labels> DnsmasqSource::readLeases() {
|
|
std::ifstream leases("/var/lib/misc/dnsmasq.leases");
|
|
std::string line;
|
|
std::vector<prometheus::Labels> result;
|
|
auto labels = std::array{ "time", "mac", "ip", "host", "id" };
|
|
|
|
while(std::getline(leases, line)) {
|
|
prometheus::Labels lineMap;
|
|
for(const auto [index, item]: std::views::split(line, ' ') | std::views::enumerate) {
|
|
lineMap[labels[index]] = std::string_view(item);
|
|
}
|
|
result.push_back(lineMap);
|
|
}
|
|
|
|
return result;
|
|
}
|