KPIs

6WIND KPI monitoring provides the ability to monitor and export Virtual Service Router 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 such as licensing or network interface

  • enable and configure the Telegraf agent to export the specified KPIs to a remote InfluxDB database

To configure the KPIs daemon with everything it can collect, and the Telegraf agent to send data to the InfluxDB server located at http://1.1.1.1:8086, in the test database, do:

vsr running config# system kpi
vsr running kpi# / vrf main kpi telegraf
vsr running telegraf/# influxdb-output url http://1.1.1.1:8086 database test
vsr running telegraf/# commit

Note

To connect Telegraf to a secured InfluxDB instance (https URL) that is using a self-signed certificate, you must enable insecure-skip-verify.

By default, the network interfaces that are exported to the InfluxDB server are the fast path ports. This can be changed be specifying the list of interfaces:

vsr running config# / vrf main kpi interface vlan0
vsr running config# / vrf main kpi interface vlan1
vsr running config/# commit

Note

If a list of interfaces is specified, the default will not apply anymore and the fast path ports will have to be added manually to the kpi interface list to be exported.

To display the state:

vsr running config# show state vrf main kpi
kpi
    interface vlan0
    interface vlan1
    telegraf
        interval 10
        enabled true
        influxdb-output url http://1.1.1.1:8086 database test
        ..
    ..

The same configuration can be made using this NETCONF XML configuration:

vsr running config# show config xml absolute
<config xmlns="urn:6wind:vrouter">
  <system xmlns="urn:6wind:vrouter/system>
    <kpi xmlns="urn:6wind:vrouter/kpi">
      <enabled>true</enabled>
      <service>fp-bridge-stats</service>
      <service>fp-context-switch-stats</service>
      <service>fp-cp-protect-stats</service>
      <service>fp-cpu-usage</service>
      <service>fp-dpvi-stats</service>
      <service>fp-ebtables-stats</service>
      <service>fp-exception-queue-stats</service>
      <service>fp-exceptions-stats</service>
      <service>fp-filling</service>
      <service>fp-filling-cg-nat</service>
      <service>fp-global-stats</service>
      <service>fp-gre-stats</service>
      <service>fp-gro-stats</service>
      <service>fp-ip-stats</service>
      <service>fp-ip6-stats</service>
      <service>fp-ipsec-stats</service>
      <service>fp-ipsec6-stats</service>
      <service>fp-cg-nat-stats</service>
      <service>fp-ports-stats</service>
      <service>fp-status</service>
      <service>fp-vlan-stats</service>
      <service>fp-vxlan-stats</service>
      <service>network-nic-eth-stats</service>
      <service>network-nic-hw-info</service>
      <service>network-nic-traffic-stats</service>
      <service>product-license</service>
      <service>product-version</service>
      <service>system-cpu-times</service>
      <service>system-cpu-usage</service>
      <service>system-disk-usage</service>
      <service>system-memory</service>
      <service>system-numa-stats</service>
      <service>system-processes</service>
      <service>system-soft-interrupts-stats</service>
      <service>system-uptime</service>
      <service>system-user-count</service>
      <service>system-users</service>
  </system>
  <vrf>
    <name>main</name>
    <kpi xmlns="urn:6wind:vrouter/kpi">
      <interface>vlan0</interface>
      <interface>vlan1</interface>
      <telegraf xmlns="urn:6wind:vrouter/kpi/telegraf">
        <enabled>true</enabled>
        <interval>10</interval>
        <influxdb-output>
          <url>http://1.1.1.1:8086</url>
          <database>test</database>
        </influxdb-output>
      </telegraf>
      <interface xmlns="urn:6wind:vrouter/interface"/>
    </kpi>
  </vrf>
</config>