From d2560c930495f92f04339c78ed41d88aca4bc00a Mon Sep 17 00:00:00 2001 From: Simon Date: Wed, 2 Sep 2026 11:34:45 +0200 Subject: [PATCH] add option to expose metrics via nextcloud-exporter --- .env.sample | 4 ++++ README.md | 11 +++++++++++ abra.sh | 4 ++++ compose.metrics.yml | 22 ++++++++++++++++++++++ 4 files changed, 41 insertions(+) create mode 100644 compose.metrics.yml diff --git a/.env.sample b/.env.sample index 3e84dc5..3180442 100644 --- a/.env.sample +++ b/.env.sample @@ -107,3 +107,7 @@ DEFAULT_QUOTA="10 GB" #HSTS_ENABLED=1 # Uncomment this line to add the `preload` part #HSTS_PRELOAD=1 + +# Metrics +# COMPOSE_FILE="$COMPOSE_FILE:compose.metrics.yml" +# SECRET_METRICS_TOKEN_VERSION=v1 # length=32 charset=hex \ No newline at end of file diff --git a/README.md b/README.md index b317d3e..03cd758 100644 --- a/README.md +++ b/README.md @@ -128,6 +128,17 @@ To disable dashboard app (since it is so corporate): - Configure a `defaultapp` in your `config.php` or use [apporder](https://apps.nextcloud.com/apps/apporder) +## Metrics + +There is a [metrics exporter](https://github.com/xperimental/nextcloud-exporter) that can be run as sidecar container, also part of the nextcloud helm charts. Its configured via alloys label-based auto-discovery provided by the updated [monitoring-stack](https://git.coopcloud.tech/coop-cloud/monitoring-ng) +To enable, uncomment +``` +COMPOSE_FILE="$COMPOSE_FILE:compose.metrics.yml" +SECRET_METRICS_TOKEN_VERSION=v1 # length=32 charset=hex +``` +then generate the secret with abra and run +`abra app cmd app set_metrics_token` + ## Upgrading Nextcloud Upgrading Nextcloud can be a hair raising experiance. They [don't support downgrading](https://docs.nextcloud.com/server/latest/admin_manual/maintenance/upgrade.html) even for minor versions. diff --git a/abra.sh b/abra.sh index af39f71..1ab8570 100644 --- a/abra.sh +++ b/abra.sh @@ -193,3 +193,7 @@ set_windowsfriendly_filenames() { upgrade_mariadb() { mariadb-upgrade -p`cat /run/secrets/db_root_password` } + +set_metrics_token() { + run_occ "config:app:set serverinfo token --value '$(cat /run/secrets/metrics_token)'" +} \ No newline at end of file diff --git a/compose.metrics.yml b/compose.metrics.yml new file mode 100644 index 0000000..b0befdf --- /dev/null +++ b/compose.metrics.yml @@ -0,0 +1,22 @@ +version: "3.8" +services: + app: + secrets: + - metrics_token + metrics: + image: xperimental/nextcloud-exporter:0.9.0 + environment: + - NEXTCLOUD_SERVER=https://$DOMAIN + - NEXTCLOUD_AUTH_TOKEN=@/run/secrets/metrics_token + secrets: + - metrics_token + networks: + - proxy + deploy: + labels: + - "prometheus.io/scrape=true" + - "prometheus.io/port=9205" +secrets: + metrics_token: + external: true + name: ${STACK_NAME}_metrics_token_${SECRET_METRICS_TOKEN_VERSION} \ No newline at end of file