blumeops/docs/zk/grafana.md
Erich Blume b8104d75ad Move zk cards to docs/zk/ for documentation restructuring (#84)
## Summary
- Move all existing zettelkasten cards from `docs/` to `docs/zk/` as a temporary holding area
- Update `zk-docs` mise task to look in the new location
- Add `docs/README.md` explaining the Diataxis-based restructuring plan and target audiences

## Context
This is phase 1 of a multi-phase documentation restructuring effort. The goal is to reorganize docs to follow the Diataxis framework while serving multiple audiences:
1. Erich (owner) - knowledge graph/zk
2. Claude/AI agents - memory and context enrichment
3. New external readers - high-level overview
4. Potential operators/contributors - onboarding
5. Replicators - people wanting to duplicate the approach

## Testing
- [x] Verified `mise run zk-docs` still works with the new path
- [x] Updated obsidian.nvim config (in ~/.config/nvim) to point to new path

## Note
The obsidian.nvim config change is outside this repo but was made as part of this work.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/84
2026-02-03 09:13:50 -08:00

1.9 KiB

id aliases tags
grafana
grafana
blumeops

Grafana Management Log

Grafana provides dashboards and observability for blumeops.

Service Details

Embedding Note

Grafana panel embedding via iframes was attempted for Homepage but didn't work well:

  • Homepage's iframe widget doesn't support width constraints (only height)
  • Grafana's "Public Dashboards" feature doesn't support template variables or PostgreSQL datasources
  • Anonymous auth would be required, which exposes all dashboards

Current config has allow_embedding: false. If revisiting this, see git history for the iframe attempt (2026-01-30).

Datasources

Name Type URL
Prometheus prometheus http://prometheus.monitoring.svc.cluster.local:9090
Loki loki http://loki.monitoring.svc.cluster.local:3100
TeslaMate postgres blumeops-pg-rw.databases.svc.cluster.local:5432

Dashboard Provisioning

Dashboards are provisioned via ConfigMaps with label grafana_dashboard: "1". The sidecar watches for these and loads them automatically.

To add a dashboard:

  1. Create ConfigMap in argocd/manifests/grafana-config/dashboards/
  2. Add label grafana_dashboard: "1"
  3. Optionally add annotation grafana_folder: "FolderName" for organization
  4. Sync the grafana-config ArgoCD app

Log

2026-01-30

  • Attempted Grafana iframe embeds for Homepage metrics panel
  • Issues: width constraints don't work, some panels fail to load
  • Reverted to authenticated-only access (no anonymous auth)

2026-01-19 (Phase 2)

  • Migrated from Homebrew/Ansible to Kubernetes
  • Helm chart mirrored to forge
  • Exposed via Tailscale Ingress