Skip to content

Commit 5acb18c

Browse files
committed
Update metrics documetanion
1 parent bc95654 commit 5acb18c

4 files changed

Lines changed: 54 additions & 4 deletions

File tree

docs/en/gui.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ Logs are read from the DataFlow processor pod (container `processor`), using lab
5959

6060
## Backend API
6161

62-
All endpoints return JSON except logs (plain text or SSE).
62+
All endpoints return JSON except logs (plain text or SSE) and metrics (Prometheus text format when operator URL is configured).
6363

6464
| Method | Path | Description |
6565
|--------|------|-------------|
@@ -71,7 +71,7 @@ All endpoints return JSON except logs (plain text or SSE).
7171
| DELETE | `/api/dataflows/<name>?namespace=<ns>` | Delete DataFlow |
7272
| GET | `/api/logs?namespace=&name=&tailLines=&follow=true\|false` | Processor pod logs (text or SSE when `follow=true`) |
7373
| GET | `/api/status?namespace=&name=` | DataFlow status (phase, message, processedCount, errorCount, lastProcessedTime) |
74-
| GET | `/api/metrics?namespace=&name=` | Metrics for DataFlow (reserved for future use) |
74+
| GET | `/api/metrics?namespace=&name=` | Prometheus metrics for DataFlow (proxied from operator when `OPERATOR_METRICS_URL` is set; otherwise returns empty stub). In Helm, `OPERATOR_METRICS_URL` is set automatically; override via `gui.extraEnv` if operator is in a different namespace. |
7575

7676
CORS headers (`Access-Control-Allow-Origin: *`, etc.) are set so the API can be used from a different port during local development.
7777

docs/en/metrics.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,31 @@ DataFlow Operator экспортирует метрики Prometheus для мо
9292
- Метки: `namespace`, `name`, `stage`, `error_type`
9393
- Возможные значения `error_type`: см. [Error types](errors.md#error-types)
9494

95+
### 6.2 Labels
96+
97+
Metrics use `namespace` and `name` labels to bind to DataFlow, which is convenient for filtering and aggregation in Prometheus/Grafana. All metrics include at least these two labels; additional labels (`source_type`, `sink_type`, `connector_type`, `stage`, etc.) allow for more detailed queries.
98+
99+
Examples:
100+
- Filter by specific DataFlow: `dataflow_messages_received_total{namespace="default", name="my-dataflow"}`
101+
- Aggregate by namespace: `sum(rate(dataflow_messages_received_total[5m])) by (namespace, name)`
102+
103+
### 6.3 Histograms
104+
105+
Histograms use exponential buckets suitable for latency and message sizes:
106+
107+
| Metric | Buckets | Range |
108+
|--------|---------|-------|
109+
| `dataflow_processing_duration_seconds` | ExponentialBuckets(0.001, 2, 10) | 1 ms — ~1 s |
110+
| `dataflow_transformer_duration_seconds` | ExponentialBuckets(0.0001, 2, 12) | 0.1 ms — ~400 ms |
111+
| `dataflow_task_stage_duration_seconds` | ExponentialBuckets(0.0001, 2, 14) | 0.1 ms — ~1.6 s |
112+
| `dataflow_task_message_size_bytes` | ExponentialBuckets(64, 2, 16) | 64 bytes — ~4 MB |
113+
| `dataflow_task_stage_latency_seconds` | ExponentialBuckets(0.0001, 2, 12) | 0.1 ms — ~400 ms |
114+
| `dataflow_task_end_to_end_latency_seconds` | ExponentialBuckets(0.001, 2, 12) | 1 ms — ~2 s |
115+
| `dataflow_task_queue_wait_time_seconds` | ExponentialBuckets(0.0001, 2, 12) | 0.1 ms — ~400 ms |
116+
117+
- **Latency** (time in seconds): start from 0.1 ms or 1 ms, multiplier 2.
118+
- **Message sizes** (bytes): start from 64 bytes, multiplier 2.
119+
95120
## Настройка мониторинга
96121

97122
### Prometheus ServiceMonitor

docs/ru/gui.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ GUI состоит из двух частей:
5959

6060
## API backend
6161

62-
Все эндпоинты отдаются в JSON (кроме логов — текст или SSE).
62+
Все эндпоинты отдаются в JSON (кроме логов — текст или SSE, и метрик — Prometheus text format при настроенном URL оператора).
6363

6464
| Метод | Путь | Описание |
6565
|-------|------|----------|
@@ -71,7 +71,7 @@ GUI состоит из двух частей:
7171
| DELETE | `/api/dataflows/<name>?namespace=<ns>` | Удалить DataFlow |
7272
| GET | `/api/logs?namespace=&name=&tailLines=&follow=true\|false` | Логи пода процессора (текст или SSE при `follow=true`) |
7373
| GET | `/api/status?namespace=&name=` | Статус DataFlow (phase, message, processedCount, errorCount, lastProcessedTime) |
74-
| GET | `/api/metrics?namespace=&name=` | Метрики по DataFlow (зарезервировано для расширения) |
74+
| GET | `/api/metrics?namespace=&name=` | Prometheus-метрики по DataFlow (проксируются с оператора при заданном `OPERATOR_METRICS_URL`; иначе — пустая заглушка) |
7575

7676
Для CORS заданы заголовки `Access-Control-Allow-Origin: *`, `Access-Control-Allow-Methods`, `Access-Control-Allow-Headers`, чтобы к API можно было обращаться с другого порта при локальной разработке.
7777

docs/ru/metrics.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,31 @@ DataFlow Operator экспортирует метрики Prometheus для мо
9292
- Метки: `namespace`, `name`, `stage`, `error_type`
9393
- Возможные значения `error_type`: см. [Типы ошибок](errors.md#типы-ошибок)
9494

95+
### 6.2 Метки
96+
97+
Метрики используют метки `namespace` и `name` для привязки к DataFlow, что удобно для фильтрации и агрегации в Prometheus/Grafana. Все метрики содержат как минимум эти две метки; дополнительные метки (`source_type`, `sink_type`, `connector_type`, `stage` и др.) позволяют детализировать запросы.
98+
99+
Примеры:
100+
- Фильтрация по конкретному DataFlow: `dataflow_messages_received_total{namespace="default", name="my-dataflow"}`
101+
- Агрегация по namespace: `sum(rate(dataflow_messages_received_total[5m])) by (namespace, name)`
102+
103+
### 6.3 Гистограммы
104+
105+
Для гистограмм используются экспоненциальные buckets, подходящие для латентности и размеров сообщений:
106+
107+
| Метрика | Buckets | Диапазон |
108+
|---------|---------|----------|
109+
| `dataflow_processing_duration_seconds` | ExponentialBuckets(0.001, 2, 10) | 1 мс — ~1 с |
110+
| `dataflow_transformer_duration_seconds` | ExponentialBuckets(0.0001, 2, 12) | 0.1 мс — ~400 мс |
111+
| `dataflow_task_stage_duration_seconds` | ExponentialBuckets(0.0001, 2, 14) | 0.1 мс — ~1.6 с |
112+
| `dataflow_task_message_size_bytes` | ExponentialBuckets(64, 2, 16) | 64 байт — ~4 МБ |
113+
| `dataflow_task_stage_latency_seconds` | ExponentialBuckets(0.0001, 2, 12) | 0.1 мс — ~400 мс |
114+
| `dataflow_task_end_to_end_latency_seconds` | ExponentialBuckets(0.001, 2, 12) | 1 мс — ~2 с |
115+
| `dataflow_task_queue_wait_time_seconds` | ExponentialBuckets(0.0001, 2, 12) | 0.1 мс — ~400 мс |
116+
117+
- **Латентность** (время в секундах): начальное значение от 0.1 мс или 1 мс, множитель 2.
118+
- **Размер сообщений** (байты): начальное значение 64 байт, множитель 2.
119+
95120
## Настройка мониторинга
96121

97122
### Prometheus ServiceMonitor

0 commit comments

Comments
 (0)