From 25c7daece556f14983fe5ea167906f07afccb701 Mon Sep 17 00:00:00 2001 From: Christopher Bartz Date: Thu, 30 Apr 2026 09:33:30 +0200 Subject: [PATCH 1/6] docs: Add readme intro --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8ed78118..42eff1ab 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # GitHub runner operators -![WIP](https://img.shields.io/badge/status-WIP-yellow) +This repository contains applications, juju charms, Grafana dashboards and actions related to operating and using +self-hosted GitHub Actions runners. -A monorepo containing charms to operate Self-Hosted GitHub Action Runners. ## Repository layout @@ -18,6 +18,11 @@ runner_grafana_dashboards/ # Grafana dashboards for runner VM host metrics # (served via cos-configuration-k8s, path: runner_grafana_dashboards) ``` +## Further information + +Further information can be found in the `docs/` directory. + + ## Observability: Grafana dashboards Dashboards in this repo are delivered to Grafana through From 107e1db763265169603041d1ba0124a5662af073 Mon Sep 17 00:00:00 2001 From: Christopher Bartz Date: Thu, 30 Apr 2026 09:48:06 +0200 Subject: [PATCH 2/6] docs: update repository layout and remove observability section --- README.md | 36 +++++++++++------------------------- 1 file changed, 11 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 42eff1ab..bb58c9a3 100644 --- a/README.md +++ b/README.md @@ -7,40 +7,26 @@ self-hosted GitHub Actions runners. ## Repository layout ``` +actions/ + enable-log-forwarding/ # GitHub Action: enable log forwarding on runners + charms/ planner-operator/ # Juju charm: GitHub runner planner cos_custom/ grafana_dashboards/ # Grafana dashboards for the planner charm - # (served via cos-configuration-k8s, path: charms/planner-operator/cos_custom/grafana_dashboards) webhook-gateway-operator/ # Juju charm: GitHub webhook gateway +cmd/ + planner/ # Application entry point: planner + webhook-gateway/ # Application entry point: webhook gateway + +internal/ # Shared Go packages + +docs/ # Documentation + runner_grafana_dashboards/ # Grafana dashboards for runner VM host metrics - # (served via cos-configuration-k8s, path: runner_grafana_dashboards) ``` ## Further information Further information can be found in the `docs/` directory. - - -## Observability: Grafana dashboards - -Dashboards in this repo are delivered to Grafana through -[`cos-configuration-k8s`](https://charmhub.io/cos-configuration-k8s), which syncs -JSON files from this Git repository and provisions them via the `grafana-dashboard` -relation. Provisioned dashboards are **immutable** in Grafana regardless of user -role — they cannot be edited or deleted through the UI. - -### Conventions - -| Directory | Purpose | `grafana_dashboards_path` config value | -|---|---|---| -| `charms//cos_custom/grafana_dashboards/` | Dashboards for a specific charm's workload metrics | `charms//cos_custom/grafana_dashboards` | -| `runner_grafana_dashboards/` | Dashboards for runner VM host-level metrics (CPU, memory, disk, network) | `runner_grafana_dashboards` | - -Dashboard JSON files should use `__inputs` to declare the datasource (type `prometheus`). -Setting `"editable": false` is recommended for clarity, but is not strictly required: -dashboards delivered through `cos-configuration-k8s` are filesystem-provisioned and -therefore read-only in Grafana regardless of the JSON flag. Metric names follow the -[OpenTelemetry hostmetrics receiver](https://opentelemetry.io/docs/collector/components/#receiver) -Prometheus naming convention (e.g. `system_cpu_time_seconds_total`). From 5fdfb7704eaa2ade8c4795b7e41ad4bdec1a9d98 Mon Sep 17 00:00:00 2001 From: Christopher Bartz Date: Thu, 30 Apr 2026 09:55:59 +0200 Subject: [PATCH 3/6] docs: move Grafana dashboard reference to docs/reference --- docs/reference/grafana-dashboards.md | 15 +++++++++++++++ docs/reference/index.rst | 3 ++- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 docs/reference/grafana-dashboards.md diff --git a/docs/reference/grafana-dashboards.md b/docs/reference/grafana-dashboards.md new file mode 100644 index 00000000..67670a88 --- /dev/null +++ b/docs/reference/grafana-dashboards.md @@ -0,0 +1,15 @@ +# Grafana dashboards + +## Dashboard directories + +| Directory | Purpose | +|---|---| +| `charms//cos_custom/grafana_dashboards/` | Dashboards for a specific charm's workload metrics | +| `runner_grafana_dashboards/` | Dashboards for runner VM host-level metrics (CPU, memory, disk, network) | + +## Conventions + +Dashboard JSON files should use `__inputs` to declare the datasource (type `prometheus`). +Setting `"editable": false` is recommended for clarity. Metric names follow the +[OpenTelemetry hostmetrics receiver](https://opentelemetry.io/docs/collector/components/#receiver) +Prometheus naming convention (e.g. `system_cpu_time_seconds_total`). diff --git a/docs/reference/index.rst b/docs/reference/index.rst index 2385b2c3..6ce2ee09 100644 --- a/docs/reference/index.rst +++ b/docs/reference/index.rst @@ -10,4 +10,5 @@ Contents :maxdepth: 1 architecture - charms \ No newline at end of file + charms + grafana-dashboards \ No newline at end of file From 9daeb0938da9052e9cb82a0680e67bc7235de9b3 Mon Sep 17 00:00:00 2001 From: Christopher Bartz Date: Thu, 30 Apr 2026 11:17:57 +0200 Subject: [PATCH 4/6] docs: fix review comments - capitalize Juju and replace e.g. --- README.md | 2 +- docs/reference/grafana-dashboards.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bb58c9a3..1a0a02f2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # GitHub runner operators -This repository contains applications, juju charms, Grafana dashboards and actions related to operating and using +This repository contains applications, Juju charms, Grafana dashboards and actions related to operating and using self-hosted GitHub Actions runners. diff --git a/docs/reference/grafana-dashboards.md b/docs/reference/grafana-dashboards.md index 67670a88..00de798c 100644 --- a/docs/reference/grafana-dashboards.md +++ b/docs/reference/grafana-dashboards.md @@ -12,4 +12,4 @@ Dashboard JSON files should use `__inputs` to declare the datasource (type `prometheus`). Setting `"editable": false` is recommended for clarity. Metric names follow the [OpenTelemetry hostmetrics receiver](https://opentelemetry.io/docs/collector/components/#receiver) -Prometheus naming convention (e.g. `system_cpu_time_seconds_total`). +Prometheus naming convention (for example, `system_cpu_time_seconds_total`). From 31595c455cbad3fa3e93b45ccc3c614058f31923 Mon Sep 17 00:00:00 2001 From: Christopher Bartz Date: Thu, 30 Apr 2026 11:29:40 +0200 Subject: [PATCH 5/6] docs: fix spelling and broken link in grafana-dashboards reference --- docs/reference/grafana-dashboards.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/reference/grafana-dashboards.md b/docs/reference/grafana-dashboards.md index 00de798c..0f6d2a2e 100644 --- a/docs/reference/grafana-dashboards.md +++ b/docs/reference/grafana-dashboards.md @@ -9,7 +9,7 @@ ## Conventions -Dashboard JSON files should use `__inputs` to declare the datasource (type `prometheus`). +Dashboard JSON files should use `__inputs` to declare the data source (type `prometheus`). Setting `"editable": false` is recommended for clarity. Metric names follow the -[OpenTelemetry hostmetrics receiver](https://opentelemetry.io/docs/collector/components/#receiver) +[OpenTelemetry host metrics receiver](https://opentelemetry.io/docs/collector/components/receiver/) Prometheus naming convention (for example, `system_cpu_time_seconds_total`). From 8c5952b797143cab564606bd8477c729d5ad3ba6 Mon Sep 17 00:00:00 2001 From: Christopher Bartz Date: Thu, 30 Apr 2026 12:10:17 +0200 Subject: [PATCH 6/6] docs: fix host metrics receiver link to point to correct source --- docs/reference/grafana-dashboards.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference/grafana-dashboards.md b/docs/reference/grafana-dashboards.md index 0f6d2a2e..c44d0227 100644 --- a/docs/reference/grafana-dashboards.md +++ b/docs/reference/grafana-dashboards.md @@ -11,5 +11,5 @@ Dashboard JSON files should use `__inputs` to declare the data source (type `prometheus`). Setting `"editable": false` is recommended for clarity. Metric names follow the -[OpenTelemetry host metrics receiver](https://opentelemetry.io/docs/collector/components/receiver/) +[OpenTelemetry host metrics receiver](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/receiver/hostmetricsreceiver) Prometheus naming convention (for example, `system_cpu_time_seconds_total`).