|
|
|
@@ -158,6 +158,7 @@ ${client.preSharedKey ? `PresharedKey = ${client.preSharedKey}\n` : ''
|
|
|
|
|
latestHandshakeAt: null,
|
|
|
|
|
transferRx: null,
|
|
|
|
|
transferTx: null,
|
|
|
|
|
endpoint: null,
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
// Loop WireGuard status
|
|
|
|
@@ -186,6 +187,7 @@ ${client.preSharedKey ? `PresharedKey = ${client.preSharedKey}\n` : ''
|
|
|
|
|
client.latestHandshakeAt = latestHandshakeAt === '0'
|
|
|
|
|
? null
|
|
|
|
|
: new Date(Number(`${latestHandshakeAt}000`));
|
|
|
|
|
client.endpoint = endpoint === '(none)' ? null : endpoint;
|
|
|
|
|
client.transferRx = Number(transferRx);
|
|
|
|
|
client.transferTx = Number(transferTx);
|
|
|
|
|
client.persistentKeepalive = persistentKeepalive;
|
|
|
|
@@ -398,4 +400,75 @@ Endpoint = ${WG_HOST}:${WG_CONFIG_PORT}`;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async getMetrics() {
|
|
|
|
|
const clients = await this.getClients();
|
|
|
|
|
let wireguardPeerCount = 0;
|
|
|
|
|
let wireguardEnabledPeersCount = 0;
|
|
|
|
|
let wireguardConnectedPeersCount = 0;
|
|
|
|
|
let wireguardSentBytes = '';
|
|
|
|
|
let wireguardReceivedBytes = '';
|
|
|
|
|
let wireguardLatestHandshakeSeconds = '';
|
|
|
|
|
for (const client of Object.values(clients)) {
|
|
|
|
|
wireguardPeerCount++;
|
|
|
|
|
if (client.enabled === true) {
|
|
|
|
|
wireguardEnabledPeersCount++;
|
|
|
|
|
}
|
|
|
|
|
if (client.endpoint !== null) {
|
|
|
|
|
wireguardConnectedPeersCount++;
|
|
|
|
|
}
|
|
|
|
|
wireguardSentBytes += `wireguard_sent_bytes{interface="wg0",enabled="${client.enabled}",address="${client.address}",name="${client.name}"} ${Number(client.transferTx)}\n`;
|
|
|
|
|
wireguardReceivedBytes += `wireguard_received_bytes{interface="wg0",enabled="${client.enabled}",address="${client.address}",name="${client.name}"} ${Number(client.transferRx)}\n`;
|
|
|
|
|
wireguardLatestHandshakeSeconds += `wireguard_latest_handshake_seconds{interface="wg0",enabled="${client.enabled}",address="${client.address}",name="${client.name}"} ${client.latestHandshakeAt ? (new Date().getTime() - new Date(client.latestHandshakeAt).getTime()) / 1000 : 0}\n`;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let returnText = '# HELP wg-easy and wireguard metrics\n';
|
|
|
|
|
|
|
|
|
|
returnText += '\n# HELP wireguard_configured_peers\n';
|
|
|
|
|
returnText += '# TYPE wireguard_configured_peers gauge\n';
|
|
|
|
|
returnText += `wireguard_configured_peers{interface="wg0"} ${Number(wireguardPeerCount)}\n`;
|
|
|
|
|
|
|
|
|
|
returnText += '\n# HELP wireguard_enabled_peers\n';
|
|
|
|
|
returnText += '# TYPE wireguard_enabled_peers gauge\n';
|
|
|
|
|
returnText += `wireguard_enabled_peers{interface="wg0"} ${Number(wireguardEnabledPeersCount)}\n`;
|
|
|
|
|
|
|
|
|
|
returnText += '\n# HELP wireguard_connected_peers\n';
|
|
|
|
|
returnText += '# TYPE wireguard_connected_peers gauge\n';
|
|
|
|
|
returnText += `wireguard_connected_peers{interface="wg0"} ${Number(wireguardConnectedPeersCount)}\n`;
|
|
|
|
|
|
|
|
|
|
returnText += '\n# HELP wireguard_sent_bytes Bytes sent to the peer\n';
|
|
|
|
|
returnText += '# TYPE wireguard_sent_bytes counter\n';
|
|
|
|
|
returnText += `${wireguardSentBytes}`;
|
|
|
|
|
|
|
|
|
|
returnText += '\n# HELP wireguard_received_bytes Bytes received from the peer\n';
|
|
|
|
|
returnText += '# TYPE wireguard_received_bytes counter\n';
|
|
|
|
|
returnText += `${wireguardReceivedBytes}`;
|
|
|
|
|
|
|
|
|
|
returnText += '\n# HELP wireguard_latest_handshake_seconds UNIX timestamp seconds of the last handshake\n';
|
|
|
|
|
returnText += '# TYPE wireguard_latest_handshake_seconds gauge\n';
|
|
|
|
|
returnText += `${wireguardLatestHandshakeSeconds}`;
|
|
|
|
|
|
|
|
|
|
return returnText;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
async getMetricsJSON() {
|
|
|
|
|
const clients = await this.getClients();
|
|
|
|
|
let wireguardPeerCount = 0;
|
|
|
|
|
let wireguardEnabledPeersCount = 0;
|
|
|
|
|
let wireguardConnectedPeersCount = 0;
|
|
|
|
|
for (const client of Object.values(clients)) {
|
|
|
|
|
wireguardPeerCount++;
|
|
|
|
|
if (client.enabled === true) {
|
|
|
|
|
wireguardEnabledPeersCount++;
|
|
|
|
|
}
|
|
|
|
|
if (client.endpoint !== null) {
|
|
|
|
|
wireguardConnectedPeersCount++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return {
|
|
|
|
|
wireguard_configured_peers: Number(wireguardPeerCount),
|
|
|
|
|
wireguard_enabled_peers: Number(wireguardEnabledPeersCount),
|
|
|
|
|
wireguard_connected_peers: Number(wireguardConnectedPeersCount),
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|