aboutsummaryrefslogtreecommitdiffstats
path: root/resources/templates/telemetry
diff options
context:
space:
mode:
authorJay Wang <jay.wang2@arm.com>2024-12-18 16:07:31 +0000
committerJay Wang <jay.wang2@arm.com>2025-01-05 10:59:15 +0000
commit40c1735233e4346abb6802d990d3d99f313d8954 (patch)
tree3f56f22dfc61d229571dfdad3d479a68e113ca14 /resources/templates/telemetry
parent6a7b3bab2ca79b728f11d0e82cbcea621d45c8d0 (diff)
fix(telemetry): fix perfmon issues on Arm
To enable perfmon plugin on AArch64, users have to set kernel/perf_user_access to 1 to allow userspace applications to directly access PMU counters. Additionally, replace bundle cache-hierarchy with bundle cache-data as it is the correct bundle name on AArch64. Signed-off-by: Jay Wang <jay.wang2@arm.com> Change-Id: I67b86e255c8e62d3672a8f52db88eed3daf6ff59
Diffstat (limited to 'resources/templates/telemetry')
-rw-r--r--resources/templates/telemetry/vppctl_runtime_arm.yaml209
1 files changed, 209 insertions, 0 deletions
diff --git a/resources/templates/telemetry/vppctl_runtime_arm.yaml b/resources/templates/telemetry/vppctl_runtime_arm.yaml
new file mode 100644
index 0000000000..620439c440
--- /dev/null
+++ b/resources/templates/telemetry/vppctl_runtime_arm.yaml
@@ -0,0 +1,209 @@
+---
+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: l1d_access
+ documentation: L1D data cache accesses
+ namespace: vpp
+ subsystem: cache_data
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: l1d_refill
+ documentation: L1D data cache refills
+ namespace: vpp
+ subsystem: cache_data
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: l2d_access
+ documentation: L2D data cache accesses
+ namespace: vpp
+ subsystem: cache_data
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: l2d_refill
+ documentation: L2D data cache refills
+ namespace: vpp
+ subsystem: cache_data
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: l3d_access
+ documentation: L3D data cache accesses
+ namespace: vpp
+ subsystem: cache_data
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ - name: l3d_refill
+ documentation: L3D data cache refills
+ namespace: vpp
+ subsystem: cache_data
+ labelnames:
+ - node_name
+ - thread_name
+ - thread_id
+ code: |
+ vppctl -s {socket} perfmon reset
+ vppctl -s {socket} perfmon start bundle cache-data
+ sleep {duration}
+ vppctl -s {socket} perfmon stop
+ vppctl -s {socket} show perfmon statistics