stats: counters data model 96/29296/4
authorOle Troan <ot@cisco.com>
Wed, 7 Oct 2020 16:05:37 +0000 (18:05 +0200)
committerNeale Ranns <nranns@cisco.com>
Tue, 13 Oct 2020 11:42:58 +0000 (11:42 +0000)
commit148c7b768721231325a349fa82db693190513b53
tree94e0a9768eda3bc4923b1b3cc727dc637d877381
parente7c8396982607634b4c747870499671ffa53868e
stats: counters data model

This adds a new data model for counters.
Specifying the errors severity and unit.
A later patch will update vpp_get_stats to take advantage of this.
Only the map plugin is updates as an example.

New .api language:
A new "counters" keyword to define counter sets.

counters map {
  none {
    severity info;
    type counter64;
    units "packets";
    description "valid MAP packets";
  };
  bad_protocol {
    severity error;
    type counter64;
    units "packets";
    description "bad protocol";
  };
};

Each counter has 4 keywords. severity, which is one of error, info or warn.
A type, which is one of counter64 or gauge64.
units, which is a text field using units from YANG.

paths {
  "/err/ip4-map" "map";
  "/err/ip6-map" "map";
  "/err/ip4-t-map" "map";
  "/err/ip6-t-map" "map";
};

A new paths keyword that maps the counter-set to a path in the stats segment KV store.

Updated VPP CLI to include severity so user can see error counter severity.
DBGvpp# show errors
   Count               Node                    Reason        Severity
        13        ethernet-input              no error         error

Type: feature
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: Ib2177543f49d4c3aef4d7fa72476cff2068f7771
Signed-off-by: Ole Troan <ot@cisco.com>
17 files changed:
src/plugins/cdp/test/test_cdp.py
src/plugins/map/ip4_map.c
src/plugins/map/ip4_map_t.c
src/plugins/map/ip6_map.c
src/plugins/map/ip6_map_t.c
src/plugins/map/map.api
src/plugins/map/map.h
src/tools/vppapigen/vppapigen.py
src/tools/vppapigen/vppapigen_c.py
src/tools/vppapigen/vppapigen_json.py
src/vlib/drop.c
src/vlib/error.c
src/vlib/error.h
src/vlib/node.c
src/vlib/node.h
src/vnet/interface.c
src/vnet/interface_output.c