mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-04-20 14:06:54 +02:00
Record incoming packet metrics via Peer::recordIncomingPacket
This commit is contained in:
parent
f56dcf4836
commit
678104df8a
4 changed files with 74 additions and 0 deletions
|
@ -86,6 +86,7 @@ bool IncomingPacket::tryDecode(const RuntimeEnvironment *RR,void *tPtr,int32_t f
|
|||
switch(v) {
|
||||
//case Packet::VERB_NOP:
|
||||
default: // ignore unknown verbs, but if they pass auth check they are "received"
|
||||
Metrics::pkt_nop_in++;
|
||||
peer->received(tPtr,_path,hops(),packetId(),payloadLength(),v,0,Packet::VERB_NOP,false,0,ZT_QOS_NO_FLOW);
|
||||
break;
|
||||
case Packet::VERB_HELLO: r = _doHELLO(RR,tPtr,true); break;
|
||||
|
|
|
@ -27,6 +27,8 @@ namespace ZeroTier {
|
|||
{ "zt_packet_incoming", "incoming packet type counts"};
|
||||
|
||||
// Incoming packets
|
||||
prometheus::simpleapi::counter_metric_t pkt_nop_in
|
||||
{ packets.Add({{"packet_type", "nop"}, {"direction", "rx"}}) };
|
||||
prometheus::simpleapi::counter_metric_t pkt_error_in
|
||||
{ packets.Add({{"packet_type", "error"}, {"direction", "rx"}}) };
|
||||
prometheus::simpleapi::counter_metric_t pkt_ack_in
|
||||
|
@ -69,6 +71,8 @@ namespace ZeroTier {
|
|||
{ packets.Add({{"packet_type", "path_negotiation_request"}, {"direction", "rx"}}) };
|
||||
|
||||
// Outgoing packets
|
||||
prometheus::simpleapi::counter_metric_t pkt_nop_out
|
||||
{ packets.Add({{"packet_type", "nop"}, {"direction", "tx"}}) };
|
||||
prometheus::simpleapi::counter_metric_t pkt_error_out
|
||||
{ packets.Add({{"packet_type", "error"}, {"direction", "tx"}}) };
|
||||
prometheus::simpleapi::counter_metric_t pkt_ack_out
|
||||
|
|
|
@ -26,6 +26,7 @@ namespace ZeroTier {
|
|||
extern prometheus::simpleapi::counter_family_t packets;
|
||||
|
||||
// incoming packets
|
||||
extern prometheus::simpleapi::counter_metric_t pkt_nop_in;
|
||||
extern prometheus::simpleapi::counter_metric_t pkt_error_in;
|
||||
extern prometheus::simpleapi::counter_metric_t pkt_ack_in;
|
||||
extern prometheus::simpleapi::counter_metric_t pkt_qos_in;
|
||||
|
@ -48,6 +49,7 @@ namespace ZeroTier {
|
|||
extern prometheus::simpleapi::counter_metric_t pkt_path_negotiation_request_in;
|
||||
|
||||
// outgoing packets
|
||||
extern prometheus::simpleapi::counter_metric_t pkt_nop_out;
|
||||
extern prometheus::simpleapi::counter_metric_t pkt_error_out;
|
||||
extern prometheus::simpleapi::counter_metric_t pkt_ack_out;
|
||||
extern prometheus::simpleapi::counter_metric_t pkt_qos_out;
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "InetAddress.hpp"
|
||||
#include "RingBuffer.hpp"
|
||||
#include "Utils.hpp"
|
||||
#include "Metrics.hpp"
|
||||
|
||||
namespace ZeroTier {
|
||||
|
||||
|
@ -622,6 +623,72 @@ void Peer::recordOutgoingPacket(const SharedPtr<Path> &path, const uint64_t pack
|
|||
if (_localMultipathSupported && _bond) {
|
||||
_bond->recordOutgoingPacket(path, packetId, payloadLength, verb, flowId, now);
|
||||
}
|
||||
|
||||
switch (verb) {
|
||||
case Packet::VERB_NOP:
|
||||
Metrics::pkt_nop_out++;
|
||||
break;
|
||||
case Packet::VERB_HELLO:
|
||||
Metrics::pkt_hello_out++;
|
||||
break;
|
||||
case Packet::VERB_ERROR:
|
||||
Metrics::pkt_error_out++;
|
||||
break;
|
||||
case Packet::VERB_OK:
|
||||
Metrics::pkt_ok_out++;
|
||||
break;
|
||||
case Packet::VERB_WHOIS:
|
||||
Metrics::pkt_whois_out++;
|
||||
break;
|
||||
case Packet::VERB_RENDEZVOUS:
|
||||
Metrics::pkt_rendezvous_out++;
|
||||
break;
|
||||
case Packet::VERB_FRAME:
|
||||
Metrics::pkt_frame_out++;
|
||||
break;
|
||||
case Packet::VERB_EXT_FRAME:
|
||||
Metrics::pkt_ext_frame_out++;
|
||||
break;
|
||||
case Packet::VERB_ECHO:
|
||||
Metrics::pkt_echo_out++;
|
||||
break;
|
||||
case Packet::VERB_MULTICAST_LIKE:
|
||||
Metrics::pkt_multicast_like_out++;
|
||||
break;
|
||||
case Packet::VERB_NETWORK_CREDENTIALS:
|
||||
Metrics::pkt_network_credentials_out++;
|
||||
break;
|
||||
case Packet::VERB_NETWORK_CONFIG_REQUEST:
|
||||
Metrics::pkt_network_config_request_out++;
|
||||
break;
|
||||
case Packet::VERB_NETWORK_CONFIG:
|
||||
Metrics::pkt_network_config_out++;
|
||||
break;
|
||||
case Packet::VERB_MULTICAST_GATHER:
|
||||
Metrics::pkt_multicast_gather_out++;
|
||||
break;
|
||||
case Packet::VERB_MULTICAST_FRAME:
|
||||
Metrics::pkt_multicast_frame_out++;
|
||||
break;
|
||||
case Packet::VERB_PUSH_DIRECT_PATHS:
|
||||
Metrics::pkt_push_direct_paths_out++;
|
||||
break;
|
||||
case Packet::VERB_ACK:
|
||||
Metrics::pkt_ack_out++;
|
||||
break;
|
||||
case Packet::VERB_QOS_MEASUREMENT:
|
||||
Metrics::pkt_qos_out++;
|
||||
break;
|
||||
case Packet::VERB_USER_MESSAGE:
|
||||
Metrics::pkt_user_message_out++;
|
||||
break;
|
||||
case Packet::VERB_REMOTE_TRACE:
|
||||
Metrics::pkt_remote_trace_out++;
|
||||
break;
|
||||
case Packet::VERB_PATH_NEGOTIATION_REQUEST:
|
||||
Metrics::pkt_path_negotiation_request_out++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void Peer::recordIncomingInvalidPacket(const SharedPtr<Path>& path)
|
||||
|
|
Loading…
Add table
Reference in a new issue