package
0.9.1
Repository: https://github.com/edgecast/vflow.git
Documentation: pkg.go.dev

# README

vFlow Monitoring

vFlow monitoring collects all statistical and diagnostic information about the vFlow itself.

MetricTypeAPI KeyProtocolDescription
udp.queueGaugeUDPQueueIPFIXUDP packets in queue
udp.rateGaugeUDPCountIPFIXUDP packets per second
decode.rateGaugeDecodedCountIPFIXDecoded packets per second
udp.mirror.queueGaugeUDPMirrorQueueIPFIXUDP packets in mirror's queue
mq.queueGaugeMessageQueueIPFIXDecoded message in mq's queue
mq.error.rateGaugeMQErrorCountIPFIXMessage queue errors per second
udp.queueGaugeUDPQueueNetflowV9UDP packets in queue
udp.rateGaugeUDPCountNetflowV9UDP packets per second
decode.rateGaugeDecodedCountNetflowV9Decoded packets per second
udp.mirror.queueGaugeUDPMirrorQueueNetflowV9UDP packets in mirror's queue
mq.queueGaugeMessageQueueNetflowV9Decoded message in mq's queue
mq.error.rateGaugeMQErrorCountNetflowV9Message queue errors per second
udp.queueGaugeUDPQueueSFLOWUDP packets in queue
udp.rateGaugeUDPCountSFLOWUDP packets per second
decode.rateGaugeDecodedCountSFLOWDecoded packets per second
mq.queueGaugeMessageQueueSFLOWDecoded message in mq's queue
mq.error.rateGaugeMQErrorCountSFLOWMessage queue errors per second
mem.heap.allocGaugeMemHeapAllocSYSTEMHeapAlloc is bytes of allocated heap objects
mem.allocGaugeMemAllocSYSTEMBytes allocated and not yet freed
mcache.inuseGaugeMCacheInuseSYSTEMBytes used by mcache structures
mem.total.allocCounterMemTotalAllocSYSTEMBytes allocated
mem.heap.sysGaugeMemHeapSysSYSTEMBytes obtained from system
num.goroutineGaugeNumGoRoutineSYSTEMThe number of goroutines that currently exist

Grafana sample dashboard

Alt text

vFlow API

The default format is prometheus: http://localhost:8081/metrics

# HELP vflow_ipfix_decoded_packets 
# TYPE vflow_ipfix_decoded_packets counter
vflow_ipfix_decoded_packets 0
# HELP vflow_ipfix_message_queue 
# TYPE vflow_ipfix_message_queue gauge
vflow_ipfix_message_queue 0
# HELP vflow_ipfix_mq_error 
# TYPE vflow_ipfix_mq_error counter
vflow_ipfix_mq_error 0
# HELP vflow_ipfix_udp_mirror_queue 
# TYPE vflow_ipfix_udp_mirror_queue gauge
vflow_ipfix_udp_mirror_queue 0
# HELP vflow_ipfix_udp_packets 
# TYPE vflow_ipfix_udp_packets counter
vflow_ipfix_udp_packets 0
# HELP vflow_ipfix_udp_queue 
# TYPE vflow_ipfix_udp_queue gauge
vflow_ipfix_udp_queue 0
# HELP vflow_ipfix_workers 
# TYPE vflow_ipfix_workers gauge
vflow_ipfix_workers 200
# HELP vflow_netflowv5_decoded_packets 
# TYPE vflow_netflowv5_decoded_packets counter
vflow_netflowv5_decoded_packets 0
# HELP vflow_netflowv5_message_queue 
# TYPE vflow_netflowv5_message_queue counter
vflow_netflowv5_message_queue 0
# HELP vflow_netflowv5_mq_error 
# TYPE vflow_netflowv5_mq_error counter
vflow_netflowv5_mq_error 0
# HELP vflow_netflowv5_udp_packets 
# TYPE vflow_netflowv5_udp_packets counter
vflow_netflowv5_udp_packets 0
# HELP vflow_netflowv5_udp_queue 
# TYPE vflow_netflowv5_udp_queue counter
vflow_netflowv5_udp_queue 0
# HELP vflow_netflowv5_workers 
# TYPE vflow_netflowv5_workers counter
vflow_netflowv5_workers 200
# HELP vflow_netflowv9_decoded_packets 
# TYPE vflow_netflowv9_decoded_packets counter
vflow_netflowv9_decoded_packets 0
# HELP vflow_netflowv9_message_queue 
# TYPE vflow_netflowv9_message_queue counter
vflow_netflowv9_message_queue 0
# HELP vflow_netflowv9_mq_error 
# TYPE vflow_netflowv9_mq_error counter
vflow_netflowv9_mq_error 0
# HELP vflow_netflowv9_udp_packets 
# TYPE vflow_netflowv9_udp_packets counter
vflow_netflowv9_udp_packets 0
# HELP vflow_netflowv9_udp_queue 
# TYPE vflow_netflowv9_udp_queue counter
vflow_netflowv9_udp_queue 0
# HELP vflow_netflowv9_workers 
# TYPE vflow_netflowv9_workers counter
vflow_netflowv9_workers 200
# HELP vflow_sflow_decoded_packets 
# TYPE vflow_sflow_decoded_packets counter
vflow_sflow_decoded_packets 0
# HELP vflow_sflow_message_queue 
# TYPE vflow_sflow_message_queue counter
vflow_sflow_message_queue 0
# HELP vflow_sflow_mq_error 
# TYPE vflow_sflow_mq_error counter
vflow_sflow_mq_error 0
# HELP vflow_sflow_udp_packets 
# TYPE vflow_sflow_udp_packets counter
vflow_sflow_udp_packets 0
# HELP vflow_sflow_udp_queue 
# TYPE vflow_sflow_udp_queue counter
vflow_sflow_udp_queue 0
# HELP vflow_sflow_workers 
# TYPE vflow_sflow_workers counter
vflow_sflow_workers 200

If you configured the stats-format to restful then the metrics will be available at http://localhost:8081/flow for flow and system at http://localhost:8081/sys

{
   "IPFIX" : {
      "MessageQueue" : 0,
      "DecodedCount" : 733,
      "MQErrorCount" : 0,
      "UDPCount" : 733,
      "UDPMirrorQueue" : 0,
      "UDPQueue" : 0,
      "Workers" : 100
   },
   "NetflowV5" : {
      "MessageQueue" : 0,
      "DecodedCount" : 322,
      "MQErrorCount" : 0,
      "UDPCount" : 322,
      "UDPMirrorQueue" : 0,
      "UDPQueue" : 0,
      "Workers" : 50
   },
   "NetflowV9" : {
      "MessageQueue" : 0,
      "DecodedCount" : 562,
      "MQErrorCount" : 0,
      "UDPCount" : 562,
      "UDPMirrorQueue" : 0,
      "UDPQueue" : 0,
      "Workers" : 80
   },   
   "SFlow" : {
      "MessageQueue" : 0,
      "UDPCount" : 268,
      "MQErrorCount" : 0,
      "DecodedCount" : 253,
      "UDPQueue" : 0,
      "Workers" : 100
   },
   "StartTime" : 1490134512
}

System API

{
   "GCSys" : 450560,
   "MemTotalAlloc" : 11435376,
   "MCacheInuse" : 4800,
   "GCNext" : 5053510,
   "MemHeapReleased" : 0,
   "NumGoroutine" : 237,
   "GoVersion" : "go1.7.4",
   "NumLogicalCPU" : 4,
   "MaxProcs" : 4, 
   "GCLast" : "2017-03-21 22:17:50.923246779 +0000 UTC",
   "MemHeapAlloc" : 4151416,
   "MemAlloc" : 4151416,
   "StartTime" : 1490134512,
   "MemHeapSys" : 5734400
}

Configuration Keys - Command line

The monitor command line configuration contains the following keys

KeyDefault
db-typeinfluxdb
vflow-hostlocalhost:8081
influxdb-api-addrlocalhost:8086
influxdb-db-namevflow
tsdb-api-addrlocalhost:4242
hostnamesystem hostname

crontab every 1 minute example:

* * * * * monitor -vflow-host 192.168.0.7 -influxdb-api-addr 192.168.0.15

# Packages

Package store ingest monitoring time series data points to different back-ends.