KPIs

Overview

6WIND KPI monitoring provides the ability to monitor and export Turbo IPsec KPIs to an InfluxDB time-series database, which can then be integrated with an analytics frontend, such as Grafana. An example of InfluxDB/Grafana setup is described on 6WIND’s github.

Configuring KPIs requires to:

  • enable and configure the KPIs daemon to specify which KPIs to collect
  • enable and configure the Telegraf agent to export the specified KPIs to a remote InfluxDB database

6WIND KPI monitoring is configured in the kpi configuration context:

router{conf:myconf}kpi
router{conf:myconf-kpi}display
kpi enable
service fp-exceptions-stats cache_max_age 5
service system-uptime cache_max_age 1
service system-soft-interrupts-stats cache_max_age 10
service system-memory cache_max_age 1
service fp-ip6-stats cache_max_age 5
service system-users cache_max_age 1
service fp-ports-stats cache_max_age 10
service system-disk-usage cache_max_age 60
service fp-gro-stats cache_max_age 10
service fp-cp-protect-stats cache_max_age 10
service network-nic-eth-stats cache_max_age 1
service fp-ip-stats cache_max_age 5
service product-version cache_max_age 36000
service fp-ipsec6-stats cache_max_age 5
service system-processes cache_max_age 1
service fp-cpu-usage cache_max_age 1
service fp-ipsec-stats cache_max_age 5
service fp-drop-stats cache_max_age 5
service product-license cache_max_age 60
service fp-exception-queue-stats cache_max_age 1
service fp-l2-stats cache_max_age 5
service fp-dpvi-stats cache_max_age 10
service fp-context-switch-stats cache_max_age 10
service network-nic-traffic-stats cache_max_age 1
service system-user-count cache_max_age 1
service system-numa-stats cache_max_age 10
service system-cpu-usage cache_max_age 1 ignored_cpus cpu2,cpu3
service network-nic-hw-info cache_max_age 60 interface_list eth1,eth2
telegraf
    telegraf enable
    influxdb
        url http://localhost:8086
        database telegraf
        username foo
        password bar
        insecure_skip_verify disable
router{conf:myconf-kpi}

Configuring the KPI daemon

  • To start/stop the KPIs daemon:
router{conf:myconf}kpi
router{conf:myconf-kpi}kpi enable|disable
  • To reset the KPI configuration, leave the kpi context then type delete kpi:
router{conf:myconf-kpi}exit
router{conf:myconf}delete kpi

Configuring KPI services

The kpi daemon is composed of several services, each monitoring its own statistics.

Each service can be enabled/disabled using the CLI. Depending on the service, configuration options can also be changed.

All services are enabled by default.

  • To disable a service:
dut-vm{myconf-kpi}delete service SERVICE (OPT VAL|default){0,*}
SERVICE
Service name. Use the CLI completion to list available services.
  • To enable and configure a service:
dut-vm{myconf-kpi}service SERVICE (OPT VAL|default){0,*}
SERVICE
Service name. Use the CLI completion to list available services.
OPT

KPI service option name. Use the CLI completion and help to list options available for this service and their format. Options not specified are set to their default value.

Depending on the service, some of these options may be available:

  • cache_max_age: cache refresh value in seconds.
  • interface_list: comma-separated list of interfaces to monitor. If left empty, the interfaces taken by the fast path ports are automatically selected.
  • ignored_cpus: Comma-separated list of CPUs to ignore (cpuNUM[,cpuNUM…]).
VAL
KPI service option value.
default
KPI service option default value. Setting an option to default is equivalent to not specifying the option at all.

Configuring Telegraf

Telegraf is an agent that collects and reports metrics. Coupled with 6WIND KPI tools, it can report all the available statistics to a remote location (typically InfluxDB).

Enter the telegraf context:

router{conf:myconf-kpi}telegraf

To start/stop the Telegraf collector:

router{conf:myconf-kpi-telegraf}telegraf enable|disable

To change the Telegraf data collection interval, in seconds (default 10):

router{conf:myconf-kpi-telegraf}interval SECONDS

Configuring InfluxDB output

Enter the influxdb context:

router{conf:myconf-kpi-telegraf}influxdb

You must specify an HTTP or UDP URL for your InfluxDB instance:

router{conf:myconf-kpi-telegraf-influxdb}url URL

To change the target database name (default “telegraf”):

router{conf:myconf-kpi-telegraf-influxdb}database DATABASE

To configure an InfluxDB user/password:

router{conf:running-kpi-telegraf-influxdb}username USERNAME
router{conf:running-kpi-telegraf-influxdb}password PASSWORD

To connect Telegraf to a secured InfluxDB instance (https URL) that is using a self-signed certificate, you must enable insecure_skip_verify:

router{conf:running-kpi-telegraf-influxdb}insecure_skip_verify enable|disable