|
|
|
@ -398,4 +398,54 @@ 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) { |
|
|
|
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}"} ${new Date(client.latestHandshakeAt).getTime() / 1000}\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; |
|
|
|
} |
|
|
|
|
|
|
|
}; |
|
|
|
|