Round 343: Thanos ext, Grafana ext, Alertmanager ext, Loki ext, Tempo ext (20 commands)

ober

4b5b286e852205da47a2784c5f2e8e9fa607c2ce

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 53888c7..41da2b2 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 343 — Thanos ext, Grafana ext, Alertmanager ext, Loki ext, Tempo ext
+
+| Feature | Status | Notes |
+|---|---|---|
+| thanos-query | :orange_circle: | Thanos: PromQL query |
+| thanos-store | :orange_circle: | Thanos: store gateway status |
+| thanos-compact | :orange_circle: | Thanos: compactor status |
+| thanos-rule | :orange_circle: | Thanos: ruler rules |
+| grafana-dashboards | :orange_circle: | Grafana: list dashboards |
+| grafana-datasources | :orange_circle: | Grafana: list data sources |
+| grafana-annotations | :orange_circle: | Grafana: list annotations |
+| grafana-alerts | :orange_circle: | Grafana: list alert rules |
+| alertmanager-status | :orange_circle: | Alertmanager: show status |
+| alertmanager-alerts | :orange_circle: | Alertmanager: active alerts |
+| alertmanager-silence | :orange_circle: | Alertmanager: create silence |
+| alertmanager-receivers | :orange_circle: | Alertmanager: list receivers |
+| loki-query | :orange_circle: | Loki: LogQL query |
+| loki-labels | :orange_circle: | Loki: list labels |
+| loki-series | :orange_circle: | Loki: query series |
+| loki-tail | :orange_circle: | Loki: tail logs |
+| tempo-search | :orange_circle: | Tempo: search traces |
+| tempo-trace | :orange_circle: | Tempo: fetch trace by ID |
+| tempo-tags | :orange_circle: | Tempo: list tag names |
+| tempo-metrics | :orange_circle: | Tempo: metrics summary |
+
 ### Round 342 — Ansible ext, Salt ext, Chef ext, Puppet ext, CFEngine ext
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index ea63cf2..4e3e16f 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -25195,3 +25195,57 @@
 (def (cmd-cfengine-hub app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "CFEngine: hub status")))
+
+;;; Round 343 — Alertmanager ext, Loki ext, Tempo ext (batch 2)
+
+(def (cmd-alertmanager-silence app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Alertmanager silence matcher: "
+      (lambda (matcher)
+        (echo-message! echo (str "Alertmanager: creating silence for " matcher))))))
+
+(def (cmd-alertmanager-receivers app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Alertmanager: listing receivers")))
+
+(def (cmd-loki-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Loki LogQL query: "
+      (lambda (q)
+        (echo-message! echo (str "Loki: querying " q))))))
+
+(def (cmd-loki-labels app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Loki: listing labels")))
+
+(def (cmd-loki-series app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Loki series matcher: "
+      (lambda (m)
+        (echo-message! echo (str "Loki: querying series " m))))))
+
+(def (cmd-loki-tail app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Loki tail query: "
+      (lambda (q)
+        (echo-message! echo (str "Loki: tailing " q))))))
+
+(def (cmd-tempo-search app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Tempo search tags: "
+      (lambda (tags)
+        (echo-message! echo (str "Tempo: searching traces " tags))))))
+
+(def (cmd-tempo-trace app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Tempo trace ID: "
+      (lambda (id)
+        (echo-message! echo (str "Tempo: fetching trace " id))))))
+
+(def (cmd-tempo-tags app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Tempo: listing tag names")))
+
+(def (cmd-tempo-metrics app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Tempo: showing metrics summary")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 67d4e82..e2a2535 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -25904,3 +25904,47 @@
     (echo-read-string echo "Chef generate type (cookbook/recipe): "
       (lambda (type)
         (echo-message! echo (str "Chef: generating " type))))))
+
+;;; Round 343 — Thanos ext, Grafana ext, Alertmanager ext, Loki ext, Tempo ext (batch 1)
+
+(def (cmd-thanos-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Thanos PromQL query: "
+      (lambda (q)
+        (echo-message! echo (str "Thanos: querying " q))))))
+
+(def (cmd-thanos-store app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Thanos: showing store gateway status")))
+
+(def (cmd-thanos-compact app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Thanos: showing compactor status")))
+
+(def (cmd-thanos-rule app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Thanos: listing ruler rules")))
+
+(def (cmd-grafana-dashboards app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Grafana: listing dashboards")))
+
+(def (cmd-grafana-datasources app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Grafana: listing data sources")))
+
+(def (cmd-grafana-annotations app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Grafana: listing annotations")))
+
+(def (cmd-grafana-alerts app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Grafana: listing alert rules")))
+
+(def (cmd-alertmanager-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Alertmanager: showing status")))
+
+(def (cmd-alertmanager-alerts app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Alertmanager: listing active alerts")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index de894ca..4d5f19b 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -8628,4 +8628,26 @@
   (register-command! 'cfengine-promises cmd-cfengine-promises)
   (register-command! 'cfengine-report cmd-cfengine-report)
   (register-command! 'cfengine-hub cmd-cfengine-hub)
+
+  ;; Round 343 — Thanos ext, Grafana ext, Alertmanager ext, Loki ext, Tempo ext
+  (register-command! 'thanos-query cmd-thanos-query)
+  (register-command! 'thanos-store cmd-thanos-store)
+  (register-command! 'thanos-compact cmd-thanos-compact)
+  (register-command! 'thanos-rule cmd-thanos-rule)
+  (register-command! 'grafana-dashboards cmd-grafana-dashboards)
+  (register-command! 'grafana-datasources cmd-grafana-datasources)
+  (register-command! 'grafana-annotations cmd-grafana-annotations)
+  (register-command! 'grafana-alerts cmd-grafana-alerts)
+  (register-command! 'alertmanager-status cmd-alertmanager-status)
+  (register-command! 'alertmanager-alerts cmd-alertmanager-alerts)
+  (register-command! 'alertmanager-silence cmd-alertmanager-silence)
+  (register-command! 'alertmanager-receivers cmd-alertmanager-receivers)
+  (register-command! 'loki-query cmd-loki-query)
+  (register-command! 'loki-labels cmd-loki-labels)
+  (register-command! 'loki-series cmd-loki-series)
+  (register-command! 'loki-tail cmd-loki-tail)
+  (register-command! 'tempo-search cmd-tempo-search)
+  (register-command! 'tempo-trace cmd-tempo-trace)
+  (register-command! 'tempo-tags cmd-tempo-tags)
+  (register-command! 'tempo-metrics cmd-tempo-metrics)
 )