--- 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 namespace: vpp subsystem: runtime labelnames: - node_name - state - thread_name - thread_id - thread_lcore - name: vectors documentation: Number of vectors total namespace: vpp subsystem: runtime labelnames: - node_name - state - thread_name - thread_id - thread_lcore - name: suspends documentation: Number of suspends total namespace: vpp subsystem: runtime labelnames: - node_name - state - thread_name - thread_id - thread_lcore - name: clocks documentation: Number of clocks total namespace: vpp subsystem: runtime labelnames: - node_name - state - thread_name - thread_id - thread_lcore - name: vectors_calls documentation: Number of vectors per call namespace: vpp subsystem: runtime labelnames: - node_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: calls documentation: Instructions/packet, cycles/packet and IPC (calls) namespace: vpp subsystem: inst_and_clock labelnames: - node_name - thread_name - thread_id - name: packets documentation: Instructions/packet, cycles/packet and IPC (packets) namespace: vpp subsystem: inst_and_clock labelnames: - node_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: - node_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: - node_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: - node_name - thread_name - thread_id - name: ipc documentation: Instructions/packet, cycles/packet and IPC (clocks/packets) namespace: vpp subsystem: inst_and_clock labelnames: - node_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: - node_name - thread_name - thread_id - name: l1_miss documentation: Cache hits and misses (L1 miss) namespace: vpp subsystem: cache_hierarchy labelnames: - node_name - thread_name - thread_id - name: l2_hit documentation: Cache hits and misses (L2 hit) namespace: vpp subsystem: cache_hierarchy labelnames: - node_name - thread_name - thread_id - name: l2_miss documentation: Cache hits and misses (L2 miss) namespace: vpp subsystem: cache_hierarchy labelnames: - node_name - thread_name - thread_id - name: l3_hit documentation: Cache hits and misses (L3 hit) namespace: vpp subsystem: cache_hierarchy labelnames: - node_name - thread_name - thread_id - name: l3_miss documentation: Cache hits and misses (L3 miss) namespace: vpp subsystem: cache_hierarchy labelnames: - node_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