Quellcode durchsuchen

docs: heatmap/joongraafik tühi valueExpression -> min/max süntaksiviga; parandatud nõks (arvuline veerg, mitte count())

Ardo vor 4 Wochen
Ursprung
Commit
f44ce4f743
1 geänderte Dateien mit 25 neuen und 19 gelöschten Zeilen
  1. 25 19
      dev/LOEMIND_observability.md

+ 25 - 19
dev/LOEMIND_observability.md

@@ -123,25 +123,31 @@ Alert **ei toeta `table`-paneeli** (`Unsupported alert source: tile`). Kasuta
 **taaskäivita `clickstack`** (vahemälu).
 
 ### Chart Explorer: `Syntax error ... toString()` (tühi valueExpression + count)
-Vaikimisi Chart Explorer'i seeria on `{aggFn:"count", valueExpression:""}`. HyperDX 2.37
-genereerib y-telje min/max päringu kujul `toFloat64OrDefault(toString())` (tühi argument) →
-`Code: 62 SYNTAX_ERROR ... failed at position 58 (>=)`. **Lahendus:** pane seeria
-**Value** väljale `1` (või mõni veerg) → `count()` + `toString(1)` on korrektne:
-```sql
-SELECT count() FROM default.otel_logs; -- seeria ise töötab
-SELECT quantileIf(0.01)(toFloat64OrDefault(toString(1)), 1>=0 AND ...) AS "min",
-       MAX(toFloat64OrDefault(toString(1))) AS "max" FROM default.otel_logs; -- OK
-```
-UI-s: Chart Explorer → seeria → **Value** = `1`; alternatiivselt kasuta `table`-kuva
-(min/max päringut ei tehta). See on upstream HyperDX nõks, mitte andmeviga.
-
-### Heatmap: „Value expression is required for heatmap charts"
-Chart Explorer → Heatmap nõuab, et seeria **Value expression** oleks täidetud
-(HyperDX valideerib `series[0].valueExpression`). See on UI-konfiguratsioon, mitte andmeviga.
-- **Metrics** source: vali metrika (nt `node_load1`) ja sisesta **Value** väljale `Value`
-  (või `avg(Value)`), lisa filtrisse `MetricName`.
-- **Logs** source: Value väljale `count()`; "Group by" nt `ServiceName` või `SeverityText`.
-- Kui metrika valimine ei täida Value välja automaatselt, trüki see käsitsi.
+Sama juur kui heatmap'il allpool: min/max päring kasutab tühja `valueExpression`-i.
+Vaikimisi seeria `{aggFn:"count", valueExpression:""}` → `toFloat64OrDefault(toString())` →
+`Code: 62 SYNTAX_ERROR ... position 58 (>=)`. **Lahendus:** kas anna **Value**-le arvuline
+veerg (nt `SeverityNumber`) või vaheta kuva **`table`**-ks (min/max päringut ei tehta).
+`Value = 1` väldib küll vea, aga annab skaala 1..1 (ei sobi graafikule). Upstream viga.
+
+### Heatmap + y-telg: tühi `valueExpression` → `Syntax error ... toString()`
+HyperDX 2.37 arvutab heatmap'i/joongraafiku min/max **tooresest** `select[0].valueExpression`-ist
+(app-chunk `4719-*`, funktsioon `A`): `quantileIf(0.01)(toFloat64OrDefault(toString(<expr>)), <expr> >= 0 ...)`.
+Kui `expr` on tühi (vaikimisi count-seeria), tekib `toString())` + ` >= 0` → **Code: 62 SYNTAX_ERROR**.
+Sama kehtib heatmap'i „Low/High" legendile. See on **upstream viga**, mitte andmeviga.
+
+**Kontrollitud lahendused (Logs `otel_logs`):**
+| Value expression | Tulemus |
+|---|---|
+| `""` (vaikimisi) | ❌ süntaksiviga |
+| `1` | ✅ töötab, aga skaala 1..1 (flat — ei sobi) |
+| `SeverityNumber` / `TraceFlags` | ✅ töötab, sisuline skaala |
+| `count()` | ❌ agregaadi pesastamine (`quantileIf(count())`) — keelatud |
+
+**Soovitus:** heatmap (ja y-telg) vajab **arvulist veergu**, mitte count'i:
+- **Logs** source: Value = `SeverityNumber` (või `TraceFlags`), „Group by" nt `ServiceName`.
+- **Metrics** source: Value = `Value` (või `avg(Value)`), filter `MetricName`.
+- Puhta count-heatmap'i jaoks kasuta mõnda muud kuva (nt `table`) kuni upstream-paranduseni.
+- Kui metrika valimine ei täida Value välja automaatselt, trüki käsitsi.
 
 ### Metrics source peab sisaldama `metricTables.exponentialHistogram`
 Vaikimisi bootstrap võib selle puudumisel metrikate valija katki teha. Kontroll: