Add OpenObserve telemetry storage node to the hosting-provider group #1116

Merged
kiara merged 3 commits from kiara/fediversity:prometheus-otel into main 2026-06-21 18:34:48 +02:00
Owner

What

Adds a monitoring node to the hosting-provider group running OpenObserve as an all-signal telemetry store, and teaches the otel-collector (#1002) to additionally export traces, metrics, and logs to it.

The collector previously fanned every signal only to the debug exporter, so nothing was stored -- it landed in the journal and was lost. #1002 listed "storage back-end" as the open follow-up, and parent issue #184 requires tests covering collection and storage in a back-end.

OpenObserve ingests metrics, logs, and traces over OTLP from a single binary with no ClickHouse/Postgres/ZooKeeper (embedded sqlite meta + local disk in single-node mode), so it fits a small ~20-machine hosting provider. The original ask named "a prometheus node", but Prometheus stores metrics only and would drop the traces/logs that #184 cares most about; the decision (made with the maintainer) was to store all three signals in one backend.

Changes

  • monitoring.nix (new) -- OpenObserve systemd unit under services.fediversity-monitoring. No services.openobserve NixOS module exists, so the unit is hand-written. The root password is delivered via LoadCredential + an ExecStart wrapper that exports ZO_ROOT_USER_PASSWORD from the credential file, keeping the secret out of the unit/store (same spirit as the S3/openbao secret handling). Outbound usage telemetry and the GeoIP database download are disabled.
  • monitoring/default.nix (new) -- thin application declaration, modeled on otel-collector/default.nix; enables spiffe for consistency.
  • otel-collector.nix -- new nullable openobserve option that, when set, adds an otlphttp/openobserve exporter to all three pipelines while keeping debug. Default null keeps existing tests and standalone use unchanged.
  • hosts-common.nix -- wires the collector's openobserve.endpoint from the group's appHosts.monitoring, mirroring the spire serverAddress pattern. The collector reads its Authorization header from a file the deployment overlay provisions; that credential bootstrap is left deployment-side like the openbao/incus bootstraps.
  • Registration: groups/hosting-provider.nix (placeholder node), applications/hosting-provider/default.nix (imports), openbao/openbao.nix (consumerHosts), checks/default.nix (test-monitoring-storage).
  • monitoring-test.nix (new, test-monitoring-storage) -- co-locates the collector and OpenObserve on one node, posts a synthetic OTLP trace and metric to the collector's 4318, and asserts both are queryable back out of OpenObserve's search API. This proves the full receive -> process -> export -> store -> query path.

Testing

Run on fediversity-ci:

  • test-monitoring-storage -- green (primary E2E)
  • test-otel-collector-service, test-otel-wiring -- green (regression: the new collector option defaults to null)
  • treefmt -- green

nix-unit-resources-otel fails only on the pre-existing offline-FOD limitation (the systemd-openbao source cannot be fetched from git.lix.systems in the sandbox); src/resources/otel is untouched by this change.

Follow-ups (out of scope)

  • Grafana / dashboards on top of OpenObserve. (#1135)
  • OpenObserve persistent object-store backend + retention tuning, left deployment-side like OpenBao's storage.
  • Production openbao cross-node credential delivery (the test uses a static dev credential).

Disclaimer: I used a coding agent in the creation of this patch.

## What Adds a `monitoring` node to the hosting-provider group running **OpenObserve** as an all-signal telemetry store, and teaches the otel-collector (#1002) to additionally export traces, metrics, and logs to it. The collector previously fanned every signal only to the `debug` exporter, so nothing was stored -- it landed in the journal and was lost. #1002 listed "storage back-end" as the open follow-up, and parent issue #184 requires tests covering collection **and storage in a back-end**. OpenObserve ingests metrics, logs, and traces over OTLP from a single binary with no ClickHouse/Postgres/ZooKeeper (embedded sqlite meta + local disk in single-node mode), so it fits a small ~20-machine hosting provider. The original ask named "a prometheus node", but Prometheus stores metrics only and would drop the traces/logs that #184 cares most about; the decision (made with the maintainer) was to store all three signals in one backend. ## Changes - **`monitoring.nix`** (new) -- OpenObserve systemd unit under `services.fediversity-monitoring`. No `services.openobserve` NixOS module exists, so the unit is hand-written. The root password is delivered via `LoadCredential` + an `ExecStart` wrapper that exports `ZO_ROOT_USER_PASSWORD` from the credential file, keeping the secret out of the unit/store (same spirit as the S3/openbao secret handling). Outbound usage telemetry and the GeoIP database download are disabled. - **`monitoring/default.nix`** (new) -- thin application declaration, modeled on `otel-collector/default.nix`; enables spiffe for consistency. - **`otel-collector.nix`** -- new nullable `openobserve` option that, when set, adds an `otlphttp/openobserve` exporter to all three pipelines while keeping `debug`. Default null keeps existing tests and standalone use unchanged. - **`hosts-common.nix`** -- wires the collector's `openobserve.endpoint` from the group's `appHosts.monitoring`, mirroring the spire `serverAddress` pattern. The collector reads its `Authorization` header from a file the deployment overlay provisions; that credential bootstrap is left deployment-side like the openbao/incus bootstraps. - Registration: `groups/hosting-provider.nix` (placeholder node), `applications/hosting-provider/default.nix` (imports), `openbao/openbao.nix` (`consumerHosts`), `checks/default.nix` (`test-monitoring-storage`). - **`monitoring-test.nix`** (new, `test-monitoring-storage`) -- co-locates the collector and OpenObserve on one node, posts a synthetic OTLP trace and metric to the collector's `4318`, and asserts both are queryable back out of OpenObserve's search API. This proves the full receive -> process -> export -> store -> query path. ## Testing Run on `fediversity-ci`: - `test-monitoring-storage` -- green (primary E2E) - `test-otel-collector-service`, `test-otel-wiring` -- green (regression: the new collector option defaults to null) - `treefmt` -- green `nix-unit-resources-otel` fails only on the pre-existing offline-FOD limitation (the `systemd-openbao` source cannot be fetched from `git.lix.systems` in the sandbox); `src/resources/otel` is untouched by this change. ## Follow-ups (out of scope) - Grafana / dashboards on top of OpenObserve. (#1135) - OpenObserve persistent object-store backend + retention tuning, left deployment-side like OpenBao's storage. - Production openbao cross-node credential delivery (the test uses a static dev credential). Disclaimer: I used a coding agent in the creation of this patch.
feat(hosting-provider): add OpenObserve telemetry storage node
Some checks failed
checks-test-otel-collector-service / test-otel-collector-service (pull_request) Successful in 10s
checks-contracts-chaining / contracts-chaining (pull_request) Successful in 11s
nixosConfigurations-dev-forgejo-runner / dev-forgejo-runner (pull_request) Successful in 12s
devShells-default / default (pull_request) Successful in 15s
nix-unit-contracts-lib / contracts-lib (pull_request) Successful in 18s
nixosConfigurations-dev-forgejo / dev-forgejo (pull_request) Successful in 14s
nixosConfigurations-hosting-provider-api / hosting-provider-api (pull_request) Successful in 13s
nix-unit-effects-tf-common-conversion / effects-tf-common-conversion (pull_request) Successful in 10s
checks-deployment-nixos-hosts / deployment-nixos-hosts (pull_request) Successful in 28s
nixosConfigurations-hosting-provider-incus / hosting-provider-incus (pull_request) Successful in 12s
checks-contracts-cross-node / contracts-cross-node (pull_request) Successful in 14s
nix-unit-effects-common-lib / effects-common-lib (pull_request) Successful in 20s
nixosConfigurations-hosting-provider-netbox / hosting-provider-netbox (pull_request) Successful in 12s
nixosConfigurations-hosting-provider-openbao / hosting-provider-openbao (pull_request) Successful in 13s
nixosConfigurations-hosting-provider-otel-collector / hosting-provider-otel-collector (pull_request) Successful in 13s
nixosConfigurations-hosting-provider-panel / hosting-provider-panel (pull_request) Successful in 12s
nix-unit-lib-data-model / lib-data-model (pull_request) Successful in 22s
nixosConfigurations-hosting-provider-spire / hosting-provider-spire (pull_request) Successful in 13s
checks-contracts-filebackup-hardcoded-file-backup / contracts-filebackup-hardcoded-file-backup (pull_request) Successful in 14s
nix-unit-lib-function / lib-function (pull_request) Successful in 20s
nixosConfigurations-hosting-provider-terraform-backend / hosting-provider-terraform-backend (pull_request) Successful in 12s
nix-unit-lib-renames-for-source / lib-renames-for-source (pull_request) Successful in 9s
nix-unit-lib-lib / lib-lib (pull_request) Successful in 20s
nixosConfigurations-hosting-provider-windmill / hosting-provider-windmill (pull_request) Successful in 15s
nixosConfigurations-operator-authelia / operator-authelia (pull_request) Successful in 14s
nixosConfigurations-operator-combined / operator-combined (pull_request) Successful in 14s
Nix flake completeness check / _complete (pull_request) Failing after 57s
nixosConfigurations-operator-garage / operator-garage (pull_request) Successful in 14s
checks-contracts-filesecrets-hardcoded-secret / contracts-filesecrets-hardcoded-secret (pull_request) Successful in 12s
nixosConfigurations-operator-lldap / operator-lldap (pull_request) Successful in 12s
nixosConfigurations-operator-mastodon / operator-mastodon (pull_request) Successful in 15s
checks-contracts-generatefiles-vars-openbao / contracts-generatefiles-vars-openbao (pull_request) Successful in 14s
nixosConfigurations-operator-peertube / operator-peertube (pull_request) Successful in 15s
nix-unit-resources-generateFiles / resources-generateFiles (pull_request) Successful in 23s
nixosConfigurations-operator-pixelfed / operator-pixelfed (pull_request) Successful in 15s
checks-contracts-generatefiles-vars / contracts-generatefiles-vars (pull_request) Successful in 12s
nix-unit-resources-secrets / resources-secrets (pull_request) Successful in 19s
nixosConfigurations-operator-smtp / operator-smtp (pull_request) Successful in 15s
nix-unit-resources-otel / resources-otel (pull_request) Successful in 25s
checks-contracts-ldap-hardcoded / contracts-ldap-hardcoded (pull_request) Successful in 10s
checks-contracts-ldap-lldap / contracts-ldap-lldap (pull_request) Successful in 11s
checks-contracts-s3-hardcoded / contracts-s3-hardcoded (pull_request) Successful in 10s
checks-contracts-smtp-hardcoded / contracts-smtp-hardcoded (pull_request) Successful in 9s
checks-contracts-smtp-maddy / contracts-smtp-maddy (pull_request) Successful in 10s
checks-contracts-ssl-self-signed / contracts-ssl-self-signed (pull_request) Successful in 9s
checks-contracts-sso-hardcoded / contracts-sso-hardcoded (pull_request) Successful in 10s
checks-contracts-streamingbackup-hardcoded / contracts-streamingbackup-hardcoded (pull_request) Successful in 9s
checks-contracts-systemd-openbaod / contracts-systemd-openbaod (pull_request) Successful in 9s
checks-integrations-spire-openbao / integrations-spire-openbao (pull_request) Successful in 13s
checks-panel-docs / panel-docs (pull_request) Successful in 6s
checks-resources-secrets-agenix / resources-secrets-agenix (pull_request) Successful in 10s
checks-test-otel-wiring / test-otel-wiring (pull_request) Successful in 9s
flake-show / apps-ssh (pull_request) Successful in 2m42s
checks-treefmt / treefmt (pull_request) Successful in 11s
checks-core-docs / core-docs (pull_request) Successful in 4m46s
checks-deployment-tf-incus-hosts / deployment-tf-incus-hosts (pull_request) Successful in 5m39s
checks-deployment-tf-hosts / deployment-tf-hosts (pull_request) Successful in 7m51s
checks-apps-api / apps-api (pull_request) Has been cancelled
checks-apps-tf / apps-tf (pull_request) Has been cancelled
checks-apps-tf-incus / apps-tf-incus (pull_request) Has been cancelled
checks-deployment-ssh-hosts / deployment-ssh-hosts (pull_request) Has been cancelled
d92d2abe0a
The otel-collector (#1002) only fanned signals to the `debug` exporter, so
nothing was stored. #184 requires tests covering collection + storage in a
back-end. Add a `monitoring` node running OpenObserve -- a single-binary,
all-signal store (traces/metrics/logs over OTLP, local disk + embedded sqlite,
no ClickHouse/Postgres) that suits a small hosting provider -- and teach the
collector to additionally export to it.

- `monitoring.nix`: OpenObserve systemd unit (`services.fediversity-monitoring`),
  root password delivered via `LoadCredential` + an `ExecStart` wrapper so the
  secret stays out of the store; outbound telemetry/GeoIP download disabled.
- `monitoring/default.nix` + registration in the group, app imports, openbao
  `consumerHosts`, and `checks/default.nix`.
- `otel-collector.nix`: nullable `openobserve` option adding an `otlphttp`
  exporter to all three pipelines; default null keeps existing behaviour.
- `hosts-common.nix`: wire the collector's endpoint from `appHosts.monitoring`,
  mirroring the spire `serverAddress` pattern.
- `monitoring-test.nix` (`test-monitoring-storage`): posts an OTLP trace and
  metric to the collector and asserts both are queryable back out of
  OpenObserve.

Production cross-node credential delivery, Grafana dashboards, and OpenObserve
persistent-storage/retention tuning are left as follow-ups.

Assisted-by: Claude:claude-opus-4-8
add ci yamls
All checks were successful
checks-contracts-chaining / contracts-chaining (pull_request) Successful in 10s
checks-test-otel-collector-service / test-otel-collector-service (pull_request) Successful in 10s
nixosConfigurations-dev-forgejo-runner / dev-forgejo-runner (pull_request) Successful in 12s
devShells-default / default (pull_request) Successful in 17s
nix-unit-contracts-lib / contracts-lib (pull_request) Successful in 18s
checks-deployment-nixos-hosts / deployment-nixos-hosts (pull_request) Successful in 28s
checks-contracts-cross-node / contracts-cross-node (pull_request) Successful in 15s
nixosConfigurations-hosting-provider-api / hosting-provider-api (pull_request) Successful in 16s
nixosConfigurations-dev-forgejo / dev-forgejo (pull_request) Successful in 16s
nix-unit-effects-tf-common-conversion / effects-tf-common-conversion (pull_request) Successful in 10s
nixosConfigurations-hosting-provider-incus / hosting-provider-incus (pull_request) Successful in 16s
nixosConfigurations-hosting-provider-monitoring / hosting-provider-monitoring (pull_request) Successful in 15s
nix-unit-effects-common-lib / effects-common-lib (pull_request) Successful in 24s
nixosConfigurations-hosting-provider-netbox / hosting-provider-netbox (pull_request) Successful in 15s
nix-unit-lib-data-model / lib-data-model (pull_request) Successful in 21s
nixosConfigurations-hosting-provider-openbao / hosting-provider-openbao (pull_request) Successful in 13s
checks-contracts-filebackup-hardcoded-file-backup / contracts-filebackup-hardcoded-file-backup (pull_request) Successful in 16s
nixosConfigurations-hosting-provider-otel-collector / hosting-provider-otel-collector (pull_request) Successful in 14s
nixosConfigurations-hosting-provider-panel / hosting-provider-panel (pull_request) Successful in 13s
nixosConfigurations-hosting-provider-spire / hosting-provider-spire (pull_request) Successful in 13s
nix-unit-lib-function / lib-function (pull_request) Successful in 20s
nix-unit-lib-renames-for-source / lib-renames-for-source (pull_request) Successful in 8s
nixosConfigurations-hosting-provider-terraform-backend / hosting-provider-terraform-backend (pull_request) Successful in 13s
checks-contracts-filesecrets-hardcoded-secret / contracts-filesecrets-hardcoded-secret (pull_request) Successful in 12s
nix-unit-lib-lib / lib-lib (pull_request) Successful in 22s
nixosConfigurations-hosting-provider-windmill / hosting-provider-windmill (pull_request) Successful in 16s
nixosConfigurations-operator-authelia / operator-authelia (pull_request) Successful in 15s
nixosConfigurations-operator-garage / operator-garage (pull_request) Successful in 14s
nixosConfigurations-operator-combined / operator-combined (pull_request) Successful in 16s
nixosConfigurations-operator-lldap / operator-lldap (pull_request) Successful in 14s
nix-unit-resources-generateFiles / resources-generateFiles (pull_request) Successful in 20s
checks-contracts-generatefiles-vars-openbao / contracts-generatefiles-vars-openbao (pull_request) Successful in 13s
nixosConfigurations-operator-peertube / operator-peertube (pull_request) Successful in 13s
nixosConfigurations-operator-mastodon / operator-mastodon (pull_request) Successful in 14s
nixosConfigurations-operator-pixelfed / operator-pixelfed (pull_request) Successful in 13s
nix-unit-resources-secrets / resources-secrets (pull_request) Successful in 17s
nix-unit-resources-otel / resources-otel (pull_request) Successful in 25s
nixosConfigurations-operator-smtp / operator-smtp (pull_request) Successful in 12s
checks-contracts-generatefiles-vars / contracts-generatefiles-vars (pull_request) Successful in 10s
checks-contracts-ldap-hardcoded / contracts-ldap-hardcoded (pull_request) Successful in 9s
Nix flake completeness check / _complete (pull_request) Successful in 1m43s
checks-contracts-ldap-lldap / contracts-ldap-lldap (pull_request) Successful in 10s
checks-contracts-s3-hardcoded / contracts-s3-hardcoded (pull_request) Successful in 9s
checks-contracts-smtp-hardcoded / contracts-smtp-hardcoded (pull_request) Successful in 9s
checks-contracts-smtp-maddy / contracts-smtp-maddy (pull_request) Successful in 8s
checks-contracts-ssl-self-signed / contracts-ssl-self-signed (pull_request) Successful in 8s
checks-contracts-sso-hardcoded / contracts-sso-hardcoded (pull_request) Successful in 9s
checks-contracts-streamingbackup-hardcoded / contracts-streamingbackup-hardcoded (pull_request) Successful in 8s
checks-contracts-systemd-openbaod / contracts-systemd-openbaod (pull_request) Successful in 10s
checks-integrations-spire-openbao / integrations-spire-openbao (pull_request) Successful in 12s
checks-panel-docs / panel-docs (pull_request) Successful in 7s
checks-resources-secrets-agenix / resources-secrets-agenix (pull_request) Successful in 9s
flake-show / apps-ssh (pull_request) Successful in 2m46s
checks-test-monitoring-storage / test-monitoring-storage (pull_request) Successful in 9s
checks-test-otel-wiring / test-otel-wiring (pull_request) Successful in 9s
checks-treefmt / treefmt (pull_request) Successful in 9s
checks-core-docs / core-docs (pull_request) Successful in 4m44s
checks-deployment-tf-incus-hosts / deployment-tf-incus-hosts (pull_request) Successful in 5m37s
checks-deployment-tf-hosts / deployment-tf-hosts (pull_request) Successful in 7m48s
checks-deployment-ssh-hosts / deployment-ssh-hosts (pull_request) Successful in 12m43s
checks-apps-api / apps-api (pull_request) Successful in 41m49s
checks-apps-tf-incus / apps-tf-incus (pull_request) Successful in 43m48s
checks-apps-tf / apps-tf (pull_request) Successful in 52m27s
f8e3288f6f
Signed-off-by: Kiara Grouwstra <kiara@procolix.eu>
kiara changed title from WIP: Add OpenObserve telemetry storage node to the hosting-provider group to Add OpenObserve telemetry storage node to the hosting-provider group 2026-06-21 18:10:11 +02:00
test(monitoring): move storage test script into a .py file
All checks were successful
checks-panel-forms-island-dom / panel-forms-island-dom (pull_request) Successful in 5s
checks-panel-forms-island / panel-forms-island (pull_request) Successful in 5s
checks-contracts-chaining / contracts-chaining (pull_request) Successful in 10s
devShells-default / default (pull_request) Successful in 18s
checks-test-otel-collector-service / test-otel-collector-service (pull_request) Successful in 15s
nixosConfigurations-dev-forgejo-runner / dev-forgejo-runner (pull_request) Successful in 17s
checks-contracts-cross-node / contracts-cross-node (pull_request) Successful in 16s
nixosConfigurations-hosting-provider-api / hosting-provider-api (pull_request) Successful in 16s
nixosConfigurations-dev-forgejo / dev-forgejo (pull_request) Successful in 17s
checks-deployment-nixos-hosts / deployment-nixos-hosts (pull_request) Successful in 31s
nix-unit-contracts-lib / contracts-lib (pull_request) Successful in 30s
nix-unit-effects-common-lib / effects-common-lib (pull_request) Successful in 24s
nixosConfigurations-hosting-provider-incus / hosting-provider-incus (pull_request) Successful in 15s
nixosConfigurations-hosting-provider-monitoring / hosting-provider-monitoring (pull_request) Successful in 14s
nixosConfigurations-hosting-provider-netbox / hosting-provider-netbox (pull_request) Successful in 13s
nix-unit-effects-tf-common-conversion / effects-tf-common-conversion (pull_request) Successful in 22s
nixosConfigurations-hosting-provider-openbao / hosting-provider-openbao (pull_request) Successful in 12s
nixosConfigurations-hosting-provider-otel-collector / hosting-provider-otel-collector (pull_request) Successful in 13s
checks-contracts-filebackup-hardcoded-file-backup / contracts-filebackup-hardcoded-file-backup (pull_request) Successful in 15s
nixosConfigurations-hosting-provider-panel / hosting-provider-panel (pull_request) Successful in 15s
nixosConfigurations-hosting-provider-spire / hosting-provider-spire (pull_request) Successful in 15s
nixosConfigurations-hosting-provider-terraform-backend / hosting-provider-terraform-backend (pull_request) Successful in 15s
nix-unit-lib-function / lib-function (pull_request) Successful in 22s
nix-unit-lib-data-model / lib-data-model (pull_request) Successful in 22s
nixosConfigurations-hosting-provider-windmill / hosting-provider-windmill (pull_request) Successful in 15s
nixosConfigurations-operator-authelia / operator-authelia (pull_request) Successful in 15s
checks-contracts-filesecrets-hardcoded-secret / contracts-filesecrets-hardcoded-secret (pull_request) Successful in 14s
nix-unit-lib-lib / lib-lib (pull_request) Successful in 23s
nix-unit-lib-renames-for-source / lib-renames-for-source (pull_request) Successful in 8s
nixosConfigurations-operator-combined / operator-combined (pull_request) Successful in 14s
nixosConfigurations-operator-garage / operator-garage (pull_request) Successful in 16s
nixosConfigurations-operator-lldap / operator-lldap (pull_request) Successful in 15s
nixosConfigurations-operator-mastodon / operator-mastodon (pull_request) Successful in 14s
checks-contracts-generatefiles-vars-openbao / contracts-generatefiles-vars-openbao (pull_request) Successful in 13s
nixosConfigurations-operator-peertube / operator-peertube (pull_request) Successful in 14s
nix-unit-resources-generateFiles / resources-generateFiles (pull_request) Successful in 19s
nixosConfigurations-operator-pixelfed / operator-pixelfed (pull_request) Successful in 12s
nixosConfigurations-operator-smtp / operator-smtp (pull_request) Successful in 14s
checks-contracts-generatefiles-vars / contracts-generatefiles-vars (pull_request) Successful in 12s
nix-unit-resources-secrets / resources-secrets (pull_request) Successful in 16s
nix-unit-resources-otel / resources-otel (pull_request) Successful in 22s
checks-panel-basic / panel-basic (pull_request) Successful in 1m33s
checks-contracts-ldap-hardcoded / contracts-ldap-hardcoded (pull_request) Successful in 11s
Nix flake completeness check / _complete (pull_request) Successful in 1m46s
checks-contracts-ldap-lldap / contracts-ldap-lldap (pull_request) Successful in 10s
checks-contracts-s3-hardcoded / contracts-s3-hardcoded (pull_request) Successful in 9s
checks-contracts-smtp-hardcoded / contracts-smtp-hardcoded (pull_request) Successful in 9s
checks-contracts-smtp-maddy / contracts-smtp-maddy (pull_request) Successful in 8s
checks-contracts-ssl-self-signed / contracts-ssl-self-signed (pull_request) Successful in 8s
checks-contracts-sso-hardcoded / contracts-sso-hardcoded (pull_request) Successful in 9s
checks-contracts-streamingbackup-hardcoded / contracts-streamingbackup-hardcoded (pull_request) Successful in 8s
checks-contracts-systemd-openbaod / contracts-systemd-openbaod (pull_request) Successful in 8s
checks-panel-docs / panel-docs (pull_request) Successful in 6s
checks-integrations-spire-openbao / integrations-spire-openbao (pull_request) Successful in 12s
checks-resources-secrets-agenix / resources-secrets-agenix (pull_request) Successful in 9s
flake-show / apps-ssh (pull_request) Successful in 2m46s
checks-test-otel-wiring / test-otel-wiring (pull_request) Successful in 9s
checks-treefmt / treefmt (pull_request) Successful in 9s
checks-test-monitoring-storage / test-monitoring-storage (pull_request) Successful in 33s
checks-core-docs / core-docs (pull_request) Successful in 4m43s
checks-deployment-tf-incus-hosts / deployment-tf-incus-hosts (pull_request) Successful in 5m38s
checks-deployment-tf-hosts / deployment-tf-hosts (pull_request) Successful in 8m0s
checks-deployment-ssh-hosts / deployment-ssh-hosts (pull_request) Successful in 13m4s
checks-apps-api / apps-api (pull_request) Successful in 45m9s
checks-apps-tf-incus / apps-tf-incus (pull_request) Successful in 47m28s
checks-apps-panel / apps-panel (pull_request) Successful in 51m21s
checks-apps-tf / apps-tf (pull_request) Successful in 55m8s
7b9b61ec77
Keep the `test-monitoring-storage` driver script in
`monitoring-test.py` and `readFile` it from `monitoring-test.nix`, the
same way the operator app tests and `netbox-bootstrap-rest.py` keep their
Python in linted `.py` files. Scope-relax the `unresolved-reference` rule
for the new path in `ty.toml`, since the NixOS test driver injects
`monitoring`/`subtest`/`retry` as globals.

Assisted-by: Claude:claude-opus-4-8
kiara merged commit c8035caa28 into main 2026-06-21 18:34:48 +02:00
kiara deleted branch prometheus-otel 2026-06-21 18:34:48 +02:00
Sign in to join this conversation.
No reviewers
fediversity/developers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
fediversity/fediversity!1116
No description provided.