From b33b1461fe815b1a09267118644538a5b9351c60 Mon Sep 17 00:00:00 2001 From: Peter Mikus Date: Fri, 24 Jun 2022 10:32:28 +0000 Subject: feat(telemetry): Rework Signed-off-by: Peter Mikus Change-Id: I0a84ce88b318c488ba2d519b20237c88b9f9f1e6 --- .../templates/telemetry/vppctl_clear_stats.yaml | 218 ++++++++++ resources/templates/telemetry/vppctl_runtime.yaml | 481 +++++++++++++++++++++ .../templates/telemetry/vppctl_show_stats.yaml | 201 +++++++++ .../templates/telemetry/vppctl_test_teardown.yaml | 201 +++++++++ 4 files changed, 1101 insertions(+) create mode 100644 resources/templates/telemetry/vppctl_clear_stats.yaml create mode 100644 resources/templates/telemetry/vppctl_runtime.yaml create mode 100644 resources/templates/telemetry/vppctl_show_stats.yaml create mode 100644 resources/templates/telemetry/vppctl_test_teardown.yaml (limited to 'resources/templates') diff --git a/resources/templates/telemetry/vppctl_clear_stats.yaml b/resources/templates/telemetry/vppctl_clear_stats.yaml new file mode 100644 index 0000000000..7c5124eb03 --- /dev/null +++ b/resources/templates/telemetry/vppctl_clear_stats.yaml @@ -0,0 +1,218 @@ +--- +logging: + version: 1 + formatters: + console_stdout: + format: '%(asctime)s - %(name)s - %(message)s' + console_stderr: + format: '%(message)s' + prom: + format: '%(message)s' + handlers: + console_stdout: + class: logging.StreamHandler + level: INFO + formatter: console_stdout + stream: ext://sys.stdout + console_stderr: + class: logging.StreamHandler + level: ERROR + formatter: console_stderr + stream: ext://sys.stderr + prom: + class: logging.handlers.RotatingFileHandler + level: INFO + formatter: prom + filename: /tmp/metric.prom + mode: w + loggers: + prom: + handlers: [prom] + level: INFO + propagate: False + root: + level: INFO + handlers: [console_stdout, console_stderr] +scheduler: + duration: 1 +programs: + - name: bundle_vppctl + metrics: + gauge: + - name: calls + documentation: Number of calls total + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + - name: vectors + documentation: Number of vectors total + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + - name: suspends + documentation: Number of suspends total + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + - name: clocks + documentation: Number of clocks total + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + - name: vectors_calls + documentation: Number of vectors per call + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + code: | + vppctl -s {socket} clear runtime + - name: bundle_vppctl + metrics: + gauge: + - name: rx_packets + documentation: Number of received packets for interface + labelnames: + - name + - index + - name: rx_bytes + documentation: Number of received bytes for interface + labelnames: + - name + - index + - name: rx_error + documentation: Number of errors on interface + labelnames: + - name + - index + - name: tx_packets + documentation: Number of transitted packets for interface + labelnames: + - name + - index + - name: tx_bytes + documentation: Number of transitted bytes for interface + labelnames: + - name + - index + - name: tx_error + documentation: Number of errors on interface + labelnames: + - name + - index + - name: drops + documentation: Number of dropped packets for interface + labelnames: + - name + - index + - name: punt + documentation: Number of punted packets for interface + labelnames: + - name + - index + - name: ip4 + documentation: Number of IPv4 packets for interface + labelnames: + - name + - index + - name: ip6 + documentation: Number of IPv6 packets for interface + labelnames: + - name + - index + - name: mpls + documentation: Number of MPLS packets for interface + labelnames: + - name + - index + - name: rx_no_buf + documentation: Number of out of buffer RX packets on interface + labelnames: + - name + - index + - name: rx_miss + documentation: Number of missed RX packets on interface + labelnames: + - name + - index + code: | + vppctl -s {socket} clear interfaces + - name: bundle_vppctl + metrics: + gauge: + - name: rx_frames + documentation: Number of RX frames for interface + labelnames: + - name + - index + - name: rx_bytes + documentation: Number of RX bytes for interface + labelnames: + - name + - index + - name: tx_frames + documentation: Number of TX frames for interface + labelnames: + - name + - index + - name: tx_bytes + documentation: Number of TX bytes for interface + labelnames: + - name + - index + - name: rx_missed + documentation: Number of missed RX packets on interface + labelnames: + - name + - index + - name: tx_missed + documentation: Number of missed TX packets on interface + labelnames: + - name + - index + code: | + vppctl -s {socket} clear hardware + - name: bundle_vppctl + metrics: + gauge: + - name: node_counter + documentation: Node counter + labelnames: + - name + - reason + - severity + - thread_name + - thread_id + code: | + vppctl -s {socket} clear node counters + - name: bundle_vppctl + metrics: + gauge: + - name: calls + documentation: Load operations + labelnames: + - name + - thread_name + - thread_id + - name: packets + documentation: Load operations + labelnames: + - name + - thread_name + - thread_id + code: | + vppctl -s {socket} perfmon reset diff --git a/resources/templates/telemetry/vppctl_runtime.yaml b/resources/templates/telemetry/vppctl_runtime.yaml new file mode 100644 index 0000000000..d8ff734e84 --- /dev/null +++ b/resources/templates/telemetry/vppctl_runtime.yaml @@ -0,0 +1,481 @@ +--- +logging: + version: 1 + formatters: + console_stdout: + format: '%(asctime)s - %(name)s - %(message)s' + console_stderr: + format: '%(message)s' + prom: + format: '%(message)s' + handlers: + console_stdout: + class: logging.StreamHandler + level: INFO + formatter: console_stdout + stream: ext://sys.stdout + console_stderr: + class: logging.StreamHandler + level: ERROR + formatter: console_stderr + stream: ext://sys.stderr + prom: + class: logging.handlers.RotatingFileHandler + level: INFO + formatter: prom + filename: /tmp/metric.prom + mode: w + loggers: + prom: + handlers: [prom] + level: INFO + propagate: False + root: + level: INFO + handlers: [console_stdout, console_stderr] +scheduler: + duration: 1 +programs: + - name: bundle_vppctl + metrics: + info: + - name: version + documentation: VPP version + namespace: vpp + subsystem: version + labelnames: + - version + code: | + vppctl -s {socket} show version + - name: bundle_vppctl + metrics: + gauge: + - name: calls + documentation: Number of calls total + namespace: vpp + subsystem: runtime + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + - name: vectors + documentation: Number of vectors total + namespace: vpp + subsystem: runtime + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + - name: suspends + documentation: Number of suspends total + namespace: vpp + subsystem: runtime + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + - name: clocks + documentation: Number of clocks total + namespace: vpp + subsystem: runtime + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + - name: vectors_calls + documentation: Number of vectors per call + namespace: vpp + subsystem: runtime + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + code: | + vppctl -s {socket} clear runtime + sleep {duration} + vppctl -s {socket} show runtime + - name: bundle_vppctl + metrics: + gauge: + - name: rx_packets + documentation: Number of received packets for interface + namespace: vpp + subsystem: interface + labelnames: + - name + - index + - name: rx_bytes + documentation: Number of received bytes for interface + namespace: vpp + subsystem: interface + labelnames: + - name + - index + - name: rx_error + documentation: Number of errors on interface + namespace: vpp + subsystem: interface + labelnames: + - name + - index + - name: tx_packets + documentation: Number of transitted packets for interface + namespace: vpp + subsystem: interface + labelnames: + - name + - index + - name: tx_bytes + documentation: Number of transitted bytes for interface + namespace: vpp + subsystem: interface + labelnames: + - name + - index + - name: tx_error + documentation: Number of errors on interface + namespace: vpp + subsystem: interface + labelnames: + - name + - index + - name: drops + documentation: Number of dropped packets for interface + namespace: vpp + subsystem: interface + labelnames: + - name + - index + - name: punt + documentation: Number of punted packets for interface + namespace: vpp + subsystem: interface + labelnames: + - name + - index + - name: ip4 + documentation: Number of IPv4 packets for interface + namespace: vpp + subsystem: interface + labelnames: + - name + - index + - name: ip6 + documentation: Number of IPv6 packets for interface + namespace: vpp + subsystem: interface + labelnames: + - name + - index + - name: mpls + documentation: Number of MPLS packets for interface + namespace: vpp + subsystem: interface + labelnames: + - name + - index + - name: rx_no_buf + documentation: Number of out of buffer RX packets on interface + namespace: vpp + subsystem: interface + labelnames: + - name + - index + - name: rx_miss + documentation: Number of missed RX packets on interface + namespace: vpp + subsystem: interface + labelnames: + - name + - index + code: | + vppctl -s {socket} clear interfaces + sleep {duration} + vppctl -s {socket} show interface + - name: bundle_vppctl + metrics: + gauge: + - name: node_counter + documentation: Node counter + namespace: vpp + subsystem: counters + labelnames: + - name + - reason + - severity + - thread_name + - thread_id + code: | + vppctl -s {socket} clear node counters + sleep {duration} + vppctl -s {socket} show node counters verbose + - name: bundle_vppctl + metrics: + gauge: + - name: context_switches + documentation: Per-thread context switches + namespace: vpp + subsystem: context_switches + labelnames: + - name + - id + code: | + vppctl -s {socket} perfmon reset + vppctl -s {socket} perfmon start bundle context-switches + sleep {duration} + vppctl -s {socket} perfmon stop + vppctl -s {socket} show perfmon statistics + - name: bundle_vppctl + metrics: + gauge: + - name: minor_page_faults + documentation: Per-thread page faults (minor) + namespace: vpp + subsystem: page_faults + labelnames: + - name + - id + - name: major_page_faults + documentation: Per-thread page faults (major) + namespace: vpp + subsystem: page_faults + labelnames: + - name + - id + code: | + vppctl -s {socket} perfmon reset + vppctl -s {socket} perfmon start bundle page-faults + sleep {duration} + vppctl -s {socket} perfmon stop + vppctl -s {socket} show perfmon statistics + - name: bundle_vppctl + metrics: + gauge: + - name: calls + documentation: Instructions/packet, cycles/packet and IPC (calls) + namespace: vpp + subsystem: inst_and_clock + labelnames: + - name + - thread_name + - thread_id + - name: packets + documentation: Instructions/packet, cycles/packet and IPC (packets) + namespace: vpp + subsystem: inst_and_clock + labelnames: + - name + - thread_name + - thread_id + - name: packets_per_call + documentation: Instructions/packet, cycles/packet and IPC (packets/call) + namespace: vpp + subsystem: inst_and_clock + labelnames: + - name + - thread_name + - thread_id + - name: clocks_per_packets + documentation: Instructions/packet, cycles/packet and IPC (clocks/packets) + namespace: vpp + subsystem: inst_and_clock + labelnames: + - name + - thread_name + - thread_id + - name: instructions_per_packets + documentation: Instructions/packet, cycles/packet and IPC (clocks/packets) + namespace: vpp + subsystem: inst_and_clock + labelnames: + - name + - thread_name + - thread_id + - name: ipc + documentation: Instructions/packet, cycles/packet and IPC (clocks/packets) + namespace: vpp + subsystem: inst_and_clock + labelnames: + - name + - thread_name + - thread_id + code: | + vppctl -s {socket} perfmon reset + vppctl -s {socket} perfmon start bundle inst-and-clock + sleep {duration} + vppctl -s {socket} perfmon stop + vppctl -s {socket} show perfmon statistics + - name: bundle_vppctl + metrics: + gauge: + - name: l1_hit + documentation: Cache hits and misses (L1 hit) + namespace: vpp + subsystem: cache_hierarchy + labelnames: + - name + - thread_name + - thread_id + - name: l1_miss + documentation: Cache hits and misses (L1 miss) + namespace: vpp + subsystem: cache_hierarchy + labelnames: + - name + - thread_name + - thread_id + - name: l2_hit + documentation: Cache hits and misses (L2 hit) + namespace: vpp + subsystem: cache_hierarchy + labelnames: + - name + - thread_name + - thread_id + - name: l2_miss + documentation: Cache hits and misses (L2 miss) + namespace: vpp + subsystem: cache_hierarchy + labelnames: + - name + - thread_name + - thread_id + - name: l3_hit + documentation: Cache hits and misses (L3 hit) + namespace: vpp + subsystem: cache_hierarchy + labelnames: + - name + - thread_name + - thread_id + - name: l3_miss + documentation: Cache hits and misses (L3 miss) + namespace: vpp + subsystem: cache_hierarchy + labelnames: + - name + - thread_name + - thread_id + code: | + vppctl -s {socket} perfmon reset + vppctl -s {socket} perfmon start bundle cache-hierarchy + sleep {duration} + vppctl -s {socket} perfmon stop + vppctl -s {socket} show perfmon statistics + - name: bundle_vppctl + metrics: + gauge: + - name: calls + documentation: Load operations (calls) + namespace: vpp + subsystem: load_blocks + labelnames: + - name + - thread_name + - thread_id + - name: packets + documentation: Load operations (packets) + namespace: vpp + subsystem: load_blocks + labelnames: + - name + - thread_name + - thread_id + code: | + vppctl -s {socket} perfmon reset + vppctl -s {socket} perfmon start bundle load-blocks + sleep {duration} + vppctl -s {socket} perfmon stop + vppctl -s {socket} show perfmon statistics + - name: bundle_vppctl + metrics: + gauge: + - name: branches_per_call + documentation: Branches/call + namespace: vpp + subsystem: branch_mispred + labelnames: + - name + - thread_name + - thread_id + - name: branches_per_packet + documentation: Branches/packet + namespace: vpp + subsystem: branch_mispred + labelnames: + - name + - thread_name + - thread_id + - name: taken_per_call + documentation: Taken/call + namespace: vpp + subsystem: branch_mispred + labelnames: + - name + - thread_name + - thread_id + - name: taken_per_packet + documentation: Taken/packet + namespace: vpp + subsystem: branch_mispred + labelnames: + - name + - thread_name + - thread_id + - name: mis_predictions + documentation: Mis-predictions + namespace: vpp + subsystem: branch_mispred + labelnames: + - name + - thread_name + - thread_id + code: | + vppctl -s {socket} perfmon reset + vppctl -s {socket} perfmon start bundle branch-mispred + sleep {duration} + vppctl -s {socket} perfmon stop + vppctl -s {socket} show perfmon statistics + - name: bundle_vppctl + metrics: + gauge: + - name: runtime + documentation: RunTime + namespace: vpp + subsystem: memory_bandwidth + labelnames: + - name + - name: reads_mbs + documentation: Reads (MB/s) + namespace: vpp + subsystem: memory_bandwidth + labelnames: + - name + - name: writes_mbs + documentation: Writes (MB/s) + namespace: vpp + subsystem: memory_bandwidth + labelnames: + - name + - name: total_mbs + documentation: Total (MB/s) + namespace: vpp + subsystem: memory_bandwidth + labelnames: + - name + code: | + vppctl -s {socket} perfmon reset + vppctl -s {socket} perfmon start bundle memory-bandwidth + sleep {duration} + vppctl -s {socket} perfmon stop + vppctl -s {socket} show perfmon statistics diff --git a/resources/templates/telemetry/vppctl_show_stats.yaml b/resources/templates/telemetry/vppctl_show_stats.yaml new file mode 100644 index 0000000000..83bb746773 --- /dev/null +++ b/resources/templates/telemetry/vppctl_show_stats.yaml @@ -0,0 +1,201 @@ +--- +logging: + version: 1 + formatters: + console_stdout: + format: '%(asctime)s - %(name)s - %(message)s' + console_stderr: + format: '%(message)s' + prom: + format: '%(message)s' + handlers: + console_stdout: + class: logging.StreamHandler + level: INFO + formatter: console_stdout + stream: ext://sys.stdout + console_stderr: + class: logging.StreamHandler + level: ERROR + formatter: console_stderr + stream: ext://sys.stderr + prom: + class: logging.handlers.RotatingFileHandler + level: INFO + formatter: prom + filename: /tmp/metric.prom + mode: w + loggers: + prom: + handlers: [prom] + level: INFO + propagate: False + root: + level: INFO + handlers: [console_stdout, console_stderr] +scheduler: + duration: 1 +programs: + - name: bundle_vppctl + metrics: + counter: + - name: calls + documentation: Number of calls total + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + - name: vectors + documentation: Number of vectors total + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + - name: suspends + documentation: Number of suspends total + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + - name: clocks + documentation: Number of clocks total + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + - name: vectors_calls + documentation: Number of vectors per call + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + code: | + vppctl -s {socket} show runtime + - name: bundle_vppctl + metrics: + counter: + - name: rx_packets + documentation: Number of received packets for interface + labelnames: + - name + - index + - name: rx_bytes + documentation: Number of received bytes for interface + labelnames: + - name + - index + - name: rx_error + documentation: Number of errors on interface + labelnames: + - name + - index + - name: tx_packets + documentation: Number of transitted packets for interface + labelnames: + - name + - index + - name: tx_bytes + documentation: Number of transitted bytes for interface + labelnames: + - name + - index + - name: tx_error + documentation: Number of errors on interface + labelnames: + - name + - index + - name: drops + documentation: Number of dropped packets for interface + labelnames: + - name + - index + - name: punt + documentation: Number of punted packets for interface + labelnames: + - name + - index + - name: ip4 + documentation: Number of IPv4 packets for interface + labelnames: + - name + - index + - name: ip6 + documentation: Number of IPv6 packets for interface + labelnames: + - name + - index + - name: mpls + documentation: Number of MPLS packets for interface + labelnames: + - name + - index + - name: rx_no_buf + documentation: Number of out of buffer RX packets on interface + labelnames: + - name + - index + - name: rx_miss + documentation: Number of missed RX packets on interface + labelnames: + - name + - index + code: | + vppctl -s {socket} show interface + - name: bundle_vppctl + metrics: + gauge: + - name: rx_frames + documentation: Number of RX frames for interface + labelnames: + - name + - index + - name: rx_bytes + documentation: Number of RX bytes for interface + labelnames: + - name + - index + - name: tx_frames + documentation: Number of TX frames for interface + labelnames: + - name + - index + - name: tx_bytes + documentation: Number of TX bytes for interface + labelnames: + - name + - index + - name: rx_missed + documentation: Number of missed RX packets on interface + labelnames: + - name + - index + - name: tx_missed + documentation: Number of missed TX packets on interface + labelnames: + - name + - index + code: | + vppctl -s {socket} show hardware verbose + - name: bundle_vppctl + metrics: + counter: + - name: node_counter + documentation: Node counter + labelnames: + - name + - reason + - severity + - thread_name + - thread_id + code: | + vppctl -s {socket} show node counters verbose diff --git a/resources/templates/telemetry/vppctl_test_teardown.yaml b/resources/templates/telemetry/vppctl_test_teardown.yaml new file mode 100644 index 0000000000..10f2077137 --- /dev/null +++ b/resources/templates/telemetry/vppctl_test_teardown.yaml @@ -0,0 +1,201 @@ +--- +logging: + version: 1 + formatters: + console_stdout: + format: '%(asctime)s - %(name)s - %(message)s' + console_stderr: + format: '%(message)s' + prom: + format: '%(message)s' + handlers: + console_stdout: + class: logging.StreamHandler + level: INFO + formatter: console_stdout + stream: ext://sys.stdout + console_stderr: + class: logging.StreamHandler + level: ERROR + formatter: console_stderr + stream: ext://sys.stderr + prom: + class: logging.handlers.RotatingFileHandler + level: INFO + formatter: prom + filename: /tmp/metric.prom + mode: w + loggers: + prom: + handlers: [prom] + level: INFO + propagate: False + root: + level: INFO + handlers: [console_stdout, console_stderr] +scheduler: + duration: 0 +programs: + - name: bundle_vppctl + metrics: + counter: + - name: calls + documentation: Number of calls total + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + - name: vectors + documentation: Number of vectors total + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + - name: suspends + documentation: Number of suspends total + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + - name: clocks + documentation: Number of clocks total + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + - name: vectors_calls + documentation: Number of vectors per call + labelnames: + - name + - state + - thread_name + - thread_id + - thread_lcore + code: | + vppctl -s {socket} show runtime + - name: bundle_vppctl + metrics: + counter: + - name: rx_packets + documentation: Number of received packets for interface + labelnames: + - name + - index + - name: rx_bytes + documentation: Number of received bytes for interface + labelnames: + - name + - index + - name: rx_error + documentation: Number of errors on interface + labelnames: + - name + - index + - name: tx_packets + documentation: Number of transitted packets for interface + labelnames: + - name + - index + - name: tx_bytes + documentation: Number of transitted bytes for interface + labelnames: + - name + - index + - name: tx_error + documentation: Number of errors on interface + labelnames: + - name + - index + - name: drops + documentation: Number of dropped packets for interface + labelnames: + - name + - index + - name: punt + documentation: Number of punted packets for interface + labelnames: + - name + - index + - name: ip4 + documentation: Number of IPv4 packets for interface + labelnames: + - name + - index + - name: ip6 + documentation: Number of IPv6 packets for interface + labelnames: + - name + - index + - name: mpls + documentation: Number of MPLS packets for interface + labelnames: + - name + - index + - name: rx_no_buf + documentation: Number of out of buffer RX packets on interface + labelnames: + - name + - index + - name: rx_miss + documentation: Number of missed RX packets on interface + labelnames: + - name + - index + code: | + vppctl -s {socket} show interface + - name: bundle_vppctl + metrics: + gauge: + - name: rx_frames + documentation: Number of RX frames for interface + labelnames: + - name + - index + - name: rx_bytes + documentation: Number of RX bytes for interface + labelnames: + - name + - index + - name: tx_frames + documentation: Number of TX frames for interface + labelnames: + - name + - index + - name: tx_bytes + documentation: Number of TX bytes for interface + labelnames: + - name + - index + - name: rx_missed + documentation: Number of missed RX packets on interface + labelnames: + - name + - index + - name: tx_missed + documentation: Number of missed TX packets on interface + labelnames: + - name + - index + code: | + vppctl -s {socket} show hardware verbose + - name: bundle_vppctl + metrics: + counter: + - name: node_counter + documentation: Node counter + labelnames: + - name + - reason + - severity + - thread_name + - thread_id + code: | + vppctl -s {socket} show node counters verbose -- cgit 1.2.3-korg