From b1f41076f2e7e98d2162963608de7817bfc5bde3 Mon Sep 17 00:00:00 2001 From: Samuel Laferriere Date: Tue, 18 Feb 2025 23:23:18 -0500 Subject: [PATCH 1/4] fix(grafana): launcher was using relative file path which doesn't mount doesn't accept --- src/observability/grafana/grafana_launcher.star | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/observability/grafana/grafana_launcher.star b/src/observability/grafana/grafana_launcher.star index 73f495b5..769641ec 100644 --- a/src/observability/grafana/grafana_launcher.star +++ b/src/observability/grafana/grafana_launcher.star @@ -107,7 +107,9 @@ def get_config( node_selectors=node_selectors, ) - +# The dashboards pointed by the dashboard_sources locators are uploaded +# as file artifacts, then mounted into a container and pushed to the Grafana +# instance using https://grafana.github.io/grizzly/. def provision_dashboards(plan, service_url, dashboard_sources): if len(dashboard_sources) == 0: return @@ -130,7 +132,7 @@ def provision_dashboards(plan, service_url, dashboard_sources): dashboard_name = "dashboards-{0}".format(index) dashboard_artifact_name = plan.upload_files(dashboard_src, name=dashboard_name) - files[dashboard_name] = dashboard_artifact_name + files["/" + dashboard_name] = dashboard_artifact_name grr_commands += grr_push_dashboards(dashboard_name) plan.run_sh( From addd7dd82009a95f67026fe3585311b6f9a38362 Mon Sep 17 00:00:00 2001 From: Samuel Laferriere Date: Tue, 18 Feb 2025 23:23:39 -0500 Subject: [PATCH 2/4] docs: added example for grafana's dashboard_sources field --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index cfc60d1c..446088b8 100644 --- a/README.md +++ b/README.md @@ -95,8 +95,12 @@ optimism_package: image: "prom/prometheus:latest" # Default grafana configuration grafana_params: - # A list of locators for grafana dashboards to be loaded be the grafana service - dashboard_sources: [] + # A list of locators for grafana dashboards to be loaded by the grafana service. + # Each locator should be a URL to a directory containing a /folders and a /dashboards directory. + # Those will be uploaded to the grafana service by using grizzly. + # See https://github.com/ethereum-optimism/grafana-dashboards-public for more info. + dashboard_sources: + - github.com/ethereum-optimism/grafana-dashboards-public/resources # Resource management for grafana container # CPU is milicores # RAM is in MB From e03a71d2f8ca3500c58105c5abb3f35b2ebebbc1 Mon Sep 17 00:00:00 2001 From: Samuel Laferriere Date: Tue, 18 Feb 2025 23:24:10 -0500 Subject: [PATCH 3/4] chore: added https://github.com/ethereum-optimism/grafana-dashboards-public as default provisioned dashboard_source in input_parser.star --- src/package_io/input_parser.star | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/package_io/input_parser.star b/src/package_io/input_parser.star index bfe459e6..9bec9cca 100644 --- a/src/package_io/input_parser.star +++ b/src/package_io/input_parser.star @@ -445,7 +445,7 @@ def default_prometheus_params(): def default_grafana_params(): return { "image": "grafana/grafana:latest", - "dashboard_sources": [], + "dashboard_sources": ["github.com/ethereum-optimism/grafana-dashboards-public/resources@ee47a8ec0545a06ef487ed5ec03ca692e258e5ec"], "min_cpu": 10, "max_cpu": 1000, "min_mem": 128, From d99e0f373faf981ec319e2b61d5342da6590d3bf Mon Sep 17 00:00:00 2001 From: Samuel Laferriere Date: Wed, 19 Feb 2025 12:24:31 -0500 Subject: [PATCH 4/4] style: lint --- src/observability/grafana/grafana_launcher.star | 1 + src/package_io/input_parser.star | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/observability/grafana/grafana_launcher.star b/src/observability/grafana/grafana_launcher.star index 769641ec..01023576 100644 --- a/src/observability/grafana/grafana_launcher.star +++ b/src/observability/grafana/grafana_launcher.star @@ -107,6 +107,7 @@ def get_config( node_selectors=node_selectors, ) + # The dashboards pointed by the dashboard_sources locators are uploaded # as file artifacts, then mounted into a container and pushed to the Grafana # instance using https://grafana.github.io/grizzly/. diff --git a/src/package_io/input_parser.star b/src/package_io/input_parser.star index 9bec9cca..725ff100 100644 --- a/src/package_io/input_parser.star +++ b/src/package_io/input_parser.star @@ -445,7 +445,9 @@ def default_prometheus_params(): def default_grafana_params(): return { "image": "grafana/grafana:latest", - "dashboard_sources": ["github.com/ethereum-optimism/grafana-dashboards-public/resources@ee47a8ec0545a06ef487ed5ec03ca692e258e5ec"], + "dashboard_sources": [ + "github.com/ethereum-optimism/grafana-dashboards-public/resources@ee47a8ec0545a06ef487ed5ec03ca692e258e5ec" + ], "min_cpu": 10, "max_cpu": 1000, "min_mem": 128,