From c3ebd87ef96d01a8fe6bb9c8639a699462790f6c Mon Sep 17 00:00:00 2001 From: "Corentin M." Date: Wed, 2 Apr 2025 15:17:55 -0400 Subject: [PATCH] Grafazos: customize dashboards uid --- grafazos/Makefile | 2 ++ grafazos/doc/index.rst | 7 +++++++ grafazos/src/dal/dal-basic.jsonnet | 10 +++++++--- grafazos/src/octez-basic.jsonnet | 7 ++++++- grafazos/src/octez-compact.jsonnet | 7 ++++++- grafazos/src/octez-full.jsonnet | 6 +++++- grafazos/src/octez-profiling.jsonnet | 7 ++++++- grafazos/src/octez-with-logs.jsonnet | 7 ++++++- grafazos/src/tezt_cloud-layer1.jsonnet | 7 ++++++- 9 files changed, 51 insertions(+), 9 deletions(-) diff --git a/grafazos/Makefile b/grafazos/Makefile index 878277c0c5f3..6e80325e7d78 100644 --- a/grafazos/Makefile +++ b/grafazos/Makefile @@ -2,6 +2,7 @@ all: basic logs full compact dal-basic profiling tezt_cloud-layer1 NODE_INSTANCE_LABEL ?= instance STORAGE_MODE ?= default +UID ?= default %.jsonnet: jsonnet \ @@ -12,6 +13,7 @@ STORAGE_MODE ?= default --ext-str logsrc="$(LOGSRC)" \ --ext-str gcp_project="$(GCP_PROJECT_ID)" \ --ext-str gcp_datasource_uid="$(GCP_DATASOURCE_UID)" \ + --ext-str uid_ext="$(UID)" \ src/$@ \ > output/$*.json diff --git a/grafazos/doc/index.rst b/grafazos/doc/index.rst index 6b948685d9d4..b848b266483f 100644 --- a/grafazos/doc/index.rst +++ b/grafazos/doc/index.rst @@ -95,3 +95,10 @@ By default, the logs are fetched from Loki. If you want to use GCP logs, you can LOGSRC="gcp" GCP_PROJECT_ID="project_id" GCP_DATASOURCE_UID="datasource_uid" + +By default, dashboards are created without uid, resulting in a random one assigned by grafana. +You can set a specific uid with the ``UID`` variable, which will be concatenated to a default uid set in each dasboard's definition. +If ``UID`` is set to an empty string, then the uid is set to the default uid value set for each dashboard. +.. code-block:: shell + + UID="some_string" diff --git a/grafazos/src/dal/dal-basic.jsonnet b/grafazos/src/dal/dal-basic.jsonnet index f49c2f5273fe..a8e2973e00e2 100644 --- a/grafazos/src/dal/dal-basic.jsonnet +++ b/grafazos/src/dal/dal-basic.jsonnet @@ -23,20 +23,24 @@ local grafonnet = import 'github.com/grafana/grafonnet/gen/grafonnet-latest/main.libsonnet'; local dashboard = grafonnet.dashboard; local panel = grafonnet.panel; - local base = import '../base.jsonnet'; + // We reuse Octez-p2p for p2p pannels local p2p = import '../p2p.jsonnet'; local gossipsub = import './gossipsub.jsonnet'; local dalNode = import './dal-node.jsonnet'; +// External variables +local uid_ext = std.extVar('uid_ext'); +local uid = uid_ext == 'default'; + //Position variables local node_y = 1; local gossipsub_y = node_y + 16; local p2p_y = gossipsub_y + 24; - -dashboard.new('Octez DAL Node Dashboard') +dashboard.new('Octez DAL Node Dashboard' + if !uid && uid_ext != '' then ' (' + std.strReplace(uid_ext, '-', '') + ')' else '') ++ (if !uid then dashboard.withUid('dal-basic' + uid_ext) else {}) + dashboard.withDescription('A dashboard for Octez DAL node') + dashboard.withTags(['tezos', 'octez', 'dal']) + dashboard.time.withFrom('now-3h') diff --git a/grafazos/src/octez-basic.jsonnet b/grafazos/src/octez-basic.jsonnet index 558de2a43d6f..478c1be37be1 100644 --- a/grafazos/src/octez-basic.jsonnet +++ b/grafazos/src/octez-basic.jsonnet @@ -30,6 +30,10 @@ local p2p = import './p2p.jsonnet'; local workers = import './workers.jsonnet'; local rpc = import './rpc.jsonnet'; +// External variables +local uid_ext = std.extVar('uid_ext'); +local uid = uid_ext == 'default'; + //Position variables local p2p_y = 39; local worker_y = 72; @@ -39,7 +43,8 @@ local misc_y = 114; //### // Grafana main stuffs //## -dashboard.new('Octez basic dashboard') +dashboard.new('Octez basic dashboard' + if !uid then ' (' + std.strReplace(uid_ext, '-', '') + ')' else '') ++ (if !uid then dashboard.withUid('octez-basic' + uid_ext) else {}) + dashboard.withDescription('A basic dashboard for Octez') + dashboard.withTags(['tezos', 'octez']) + dashboard.time.withFrom('now-3h') diff --git a/grafazos/src/octez-compact.jsonnet b/grafazos/src/octez-compact.jsonnet index 64ffbbff9109..2dda2a928d90 100644 --- a/grafazos/src/octez-compact.jsonnet +++ b/grafazos/src/octez-compact.jsonnet @@ -27,7 +27,12 @@ local node = import './node.jsonnet'; local p2p = import './p2p.jsonnet'; local workers = import './workers.jsonnet'; -dashboard.new('Octez compact dashboard') +// External variables +local uid_ext = std.extVar('uid_ext'); +local uid = uid_ext == 'default'; + +dashboard.new('Octez compact dashboard' + if !uid && uid_ext != '' then ' (' + std.strReplace(uid_ext, '-', '') + ')' else '') ++ (if !uid then dashboard.withUid('octez-compact' + uid_ext) else {}) + dashboard.withDescription('A compact dashboard for Octez') + dashboard.withTags(['tezos', 'octez']) + dashboard.time.withFrom('now-3h') diff --git a/grafazos/src/octez-full.jsonnet b/grafazos/src/octez-full.jsonnet index c58b041a6790..3203d8686306 100644 --- a/grafazos/src/octez-full.jsonnet +++ b/grafazos/src/octez-full.jsonnet @@ -34,6 +34,9 @@ local delegateHardware = import './delegate_hardware.jsonnet'; local logsrc = std.extVar('logsrc'); local logs = if logsrc == 'gcp' then import './logs-gcp.jsonnet' else import './logs-loki.jsonnet'; +// External variables +local uid_ext = std.extVar('uid_ext'); +local uid = uid_ext == 'default'; //Position variables local node_hardware_y = 47; @@ -47,7 +50,8 @@ local logs_y = 165; //### // Grafana main stuffs //## -dashboard.new('Octez full dashboard') +dashboard.new('Octez full dashboard' + if !uid && uid_ext != '' then ' (' + std.strReplace(uid_ext, '-', '') + ')' else '') ++ (if !uid then dashboard.withUid('octez-full' + uid_ext) else {}) + dashboard.withDescription('A full dashboard for Octez') + dashboard.withTags(['tezos', 'octez', 'hardware', 'logs']) + dashboard.time.withFrom('now-3h') diff --git a/grafazos/src/octez-profiling.jsonnet b/grafazos/src/octez-profiling.jsonnet index 5a9af6b38f1e..87d8e30309f3 100644 --- a/grafazos/src/octez-profiling.jsonnet +++ b/grafazos/src/octez-profiling.jsonnet @@ -9,6 +9,10 @@ local panel = grafonnet.panel; local base = import './base.jsonnet'; local profiling = import './profiling.jsonnet'; +// External variables +local uid_ext = std.extVar('uid_ext'); +local uid = uid_ext == 'default'; + // Constants local panelWidth = 10; local panelHeight = 10; @@ -19,7 +23,8 @@ local peer_validator_y = 121; local block_validator_y = 161; // Create the dashboard -dashboard.new('Octez Profiling Dashboard') +dashboard.new('Octez Profiling Dashboard' + if !uid && uid_ext != '' then ' (' + std.strReplace(uid_ext, '-', '') + ')' else '') ++ (if !uid then dashboard.withUid('octez-profiling' + uid_ext) else {}) + dashboard.withDescription('In-depth profiling for Octez function performance, showing average execution times.') + dashboard.withTags(['tezos', 'octez', 'profiling']) + dashboard.time.withFrom('now-8h') diff --git a/grafazos/src/octez-with-logs.jsonnet b/grafazos/src/octez-with-logs.jsonnet index f7789b0ea5cb..b127fd6a62cb 100644 --- a/grafazos/src/octez-with-logs.jsonnet +++ b/grafazos/src/octez-with-logs.jsonnet @@ -33,6 +33,10 @@ local rpc = import './rpc.jsonnet'; local logsrc = std.extVar('logsrc'); local logs = if logsrc == 'gcp' then import './logs-gcp.jsonnet' else import './logs-loki.jsonnet'; +// External variables +local uid_ext = std.extVar('uid_ext'); +local uid = uid_ext == 'default'; + //Position variables local p2p_y = 47; local worker_y = 80; @@ -43,7 +47,8 @@ local logs_y = 131; //### // Grafana main stuffs //## -dashboard.new('Octez with logs dashboard') +dashboard.new('Octez with logs dashboard' + if !uid then ' (' + std.strReplace(uid_ext, '-', '') + ')' else '') ++ (if !uid then dashboard.withUid('octez-with-logs' + uid_ext) else {}) + dashboard.withDescription('A dashboard for Octez including logs') + dashboard.withTags(['tezos', 'octez', 'logs']) + dashboard.time.withFrom('now-3h') diff --git a/grafazos/src/tezt_cloud-layer1.jsonnet b/grafazos/src/tezt_cloud-layer1.jsonnet index ef491602c603..4cd7ca8ee9ef 100644 --- a/grafazos/src/tezt_cloud-layer1.jsonnet +++ b/grafazos/src/tezt_cloud-layer1.jsonnet @@ -20,10 +20,15 @@ local hardware_h = panel_height * 4 + 1; local misc_y = hardware_y + hardware_h + 1; +// External variables +local uid_ext = std.extVar('uid_ext'); +local uid = uid_ext == 'default'; + //### // Grafana main stuffs //## -dashboard.new('Tezt Cloud - Layer 1 dashboard') +dashboard.new('Tezt Cloud - Layer 1 dashboard' + if !uid && uid_ext != '' then ' (' + std.strReplace(uid_ext, '-', '') + ')' else '') ++ (if !uid then dashboard.withUid('tezt-cloud-layer1' + uid_ext) else {}) + dashboard.withDescription('A dashboard for Layer 1 related experiments with tezt cloud') + dashboard.time.withFrom('now-3h') + dashboard.withRefresh('20s') -- GitLab