1 Commits
Author SHA1 Message Date
eSlider bcd956d11a fix: wire live mode and Grafana to the generated data stream
CI & Release / Verify simulator (push) Successful in 11s
CI & Release / Trivy scan (push) Successful in 9s
CI & Release / Semantic Release (push) Successful in 5s
Use the real hive column name (`drone`) in the prototype's live query
and pin the Grafana datasource uid to `swarm-prom` so provisioned
dashboards resolve their Prometheus source in k3d.
2026-07-08 20:34:37 +01:00
2 changed files with 11 additions and 7 deletions
+4
View File
@@ -298,8 +298,12 @@ resource "kubernetes_config_map" "grafana_provisioning" {
data = {
"datasource.yml" = <<-EOT
apiVersion: 1
deleteDatasources:
- name: Prometheus
orgId: 1
datasources:
- name: Prometheus
uid: swarm-prom
type: prometheus
access: proxy
url: http://prometheus:9090
+7 -7
View File
@@ -20,24 +20,24 @@ export interface LivePose {
// latest battery reading from telemetry. arg_max keeps it a single scan.
const LIVE_SQL = `
WITH pose AS (
SELECT drone_id,
SELECT drone,
arg_max(pos_x, ts_ns) AS x,
arg_max(pos_y, ts_ns) AS y,
arg_max(yaw, ts_ns) AS yaw,
max(ts_ns) AS ts_ns
FROM state
WHERE direction = 'sent'
GROUP BY drone_id
GROUP BY drone
),
batt AS (
SELECT drone_id, arg_max(level_pct, ts_ns) AS battery
SELECT drone, arg_max(level_pct, ts_ns) AS battery
FROM telemetry
WHERE sensor = 'battery'
GROUP BY drone_id
GROUP BY drone
)
SELECT p.drone_id, p.x, p.y, p.yaw, p.ts_ns, b.battery
FROM pose p LEFT JOIN batt b USING (drone_id)
ORDER BY p.drone_id`;
SELECT p.drone, p.x, p.y, p.yaw, p.ts_ns, b.battery
FROM pose p LEFT JOIN batt b USING (drone)
ORDER BY p.drone`;
interface QueryResponse {
columns?: string[];