Round 345: Elasticsearch ext, Kibana ext, Fluentd ext, Logstash ext, Beats ext (20 commands)

ober

b4a35ba146c92d02584ba3da403458ad5a28fae9

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 5c683b9..f8b0926 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 345 — Elasticsearch ext, Kibana ext, Fluentd ext, Logstash ext, Beats ext
+
+| Feature | Status | Notes |
+|---|---|---|
+| elasticsearch-search | :orange_circle: | Elasticsearch: search query |
+| elasticsearch-mapping | :orange_circle: | Elasticsearch: show index mapping |
+| elasticsearch-cluster | :orange_circle: | Elasticsearch: cluster health |
+| elasticsearch-nodes | :orange_circle: | Elasticsearch: list nodes |
+| kibana-spaces | :orange_circle: | Kibana: list spaces |
+| kibana-saved-objects | :orange_circle: | Kibana: list saved objects |
+| kibana-rules | :orange_circle: | Kibana: list alert rules |
+| kibana-discover | :orange_circle: | Kibana: open discover view |
+| fluentd-status | :orange_circle: | Fluentd: show status |
+| fluentd-plugins | :orange_circle: | Fluentd: list plugins |
+| fluentd-config | :orange_circle: | Fluentd: show configuration |
+| fluentd-buffers | :orange_circle: | Fluentd: show buffer status |
+| logstash-pipelines | :orange_circle: | Logstash: list pipelines |
+| logstash-stats | :orange_circle: | Logstash: show statistics |
+| logstash-plugins | :orange_circle: | Logstash: list plugins |
+| logstash-reload | :orange_circle: | Logstash: reload configuration |
+| beats-status | :orange_circle: | Beats: show status |
+| beats-modules | :orange_circle: | Beats: list modules |
+| beats-setup | :orange_circle: | Beats: run setup |
+| beats-keystore | :orange_circle: | Beats: manage keystore |
+
 ### Round 344 — Jaeger ext, Zipkin ext, OpenTelemetry ext, Datadog ext, NewRelic ext
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 71b8a1e..85d526c 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -25293,3 +25293,45 @@
 (def (cmd-newrelic-synthetics app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "NewRelic: listing synthetic monitors")))
+
+;;; Round 345 — Fluentd ext, Logstash ext, Beats ext (batch 2)
+
+(def (cmd-fluentd-config app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Fluentd: showing configuration")))
+
+(def (cmd-fluentd-buffers app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Fluentd: showing buffer status")))
+
+(def (cmd-logstash-pipelines app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Logstash: listing pipelines")))
+
+(def (cmd-logstash-stats app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Logstash: showing statistics")))
+
+(def (cmd-logstash-plugins app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Logstash: listing installed plugins")))
+
+(def (cmd-logstash-reload app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Logstash: reloading configuration")))
+
+(def (cmd-beats-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Beats: showing status")))
+
+(def (cmd-beats-modules app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Beats: listing modules")))
+
+(def (cmd-beats-setup app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Beats: running setup")))
+
+(def (cmd-beats-keystore app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Beats: managing keystore")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 2ce26a2..1e5dffd 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -25998,3 +25998,49 @@
 (def (cmd-otel-config app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "OpenTelemetry: showing collector config")))
+
+;;; Round 345 — Elasticsearch ext, Kibana ext, Fluentd ext, Logstash ext, Beats ext (batch 1)
+
+(def (cmd-elasticsearch-search app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Elasticsearch query: "
+      (lambda (q)
+        (echo-message! echo (str "Elasticsearch: searching " q))))))
+
+(def (cmd-elasticsearch-mapping app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Elasticsearch index for mapping: "
+      (lambda (idx)
+        (echo-message! echo (str "Elasticsearch: showing mapping for " idx))))))
+
+(def (cmd-elasticsearch-cluster app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Elasticsearch: showing cluster health")))
+
+(def (cmd-elasticsearch-nodes app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Elasticsearch: listing nodes")))
+
+(def (cmd-kibana-spaces app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Kibana: listing spaces")))
+
+(def (cmd-kibana-saved-objects app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Kibana: listing saved objects")))
+
+(def (cmd-kibana-rules app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Kibana: listing alert rules")))
+
+(def (cmd-kibana-discover app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Kibana: opening discover view")))
+
+(def (cmd-fluentd-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Fluentd: showing status")))
+
+(def (cmd-fluentd-plugins app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Fluentd: listing plugins")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 2e0590e..f26673c 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -8672,4 +8672,26 @@
   (register-command! 'newrelic-alerts cmd-newrelic-alerts)
   (register-command! 'newrelic-dashboards cmd-newrelic-dashboards)
   (register-command! 'newrelic-synthetics cmd-newrelic-synthetics)
+
+  ;; Round 345 — Elasticsearch ext, Kibana ext, Fluentd ext, Logstash ext, Beats ext
+  (register-command! 'elasticsearch-search cmd-elasticsearch-search)
+  (register-command! 'elasticsearch-mapping cmd-elasticsearch-mapping)
+  (register-command! 'elasticsearch-cluster cmd-elasticsearch-cluster)
+  (register-command! 'elasticsearch-nodes cmd-elasticsearch-nodes)
+  (register-command! 'kibana-spaces cmd-kibana-spaces)
+  (register-command! 'kibana-saved-objects cmd-kibana-saved-objects)
+  (register-command! 'kibana-rules cmd-kibana-rules)
+  (register-command! 'kibana-discover cmd-kibana-discover)
+  (register-command! 'fluentd-status cmd-fluentd-status)
+  (register-command! 'fluentd-plugins cmd-fluentd-plugins)
+  (register-command! 'fluentd-config cmd-fluentd-config)
+  (register-command! 'fluentd-buffers cmd-fluentd-buffers)
+  (register-command! 'logstash-pipelines cmd-logstash-pipelines)
+  (register-command! 'logstash-stats cmd-logstash-stats)
+  (register-command! 'logstash-plugins cmd-logstash-plugins)
+  (register-command! 'logstash-reload cmd-logstash-reload)
+  (register-command! 'beats-status cmd-beats-status)
+  (register-command! 'beats-modules cmd-beats-modules)
+  (register-command! 'beats-setup cmd-beats-setup)
+  (register-command! 'beats-keystore cmd-beats-keystore)
 )