Observability
Laminar provides a complete observability stack for monitoring pipelines, jobs, and infrastructure.
Architecture
┌─────────────────┐ ┌─────────────────┐
│ Laminar Engine │───►│ │
│ (logs + metrics)│ │ │
├─────────────────┤ │ Vector │
│ Pod Logs │───►│ (DaemonSet) │
├─────────────────┤ │ │
│ kubelet/cAdvisor│───►│ │
├─────────────────┤ │ │
│ kube-state- │───►│ │
│ metrics │ └────────┬────────┘
└─────────────────┘ │
▼
┌───────────────────┐
│ GrepTimeDB │
│ - Logs (MySQL) │
│ - Metrics (Prom) │
└────────┬──────────┘
│
▼
┌───────────────────┐
│ Grafana │
└───────────────────┘
Stack Components
| Component | Purpose | Deployment |
|---|---|---|
| Vector | Log and metrics collection | DaemonSet (K8s) / Container (Desktop) |
| GrepTimeDB | Time-series database for logs and metrics | StatefulSet (K8s) / Container (Desktop) |
| Grafana | Visualization and dashboards | Deployment (K8s) / Container (Desktop) |
| kube-state-metrics | Kubernetes object metrics | Deployment (K8s only) |
GrepTimeDB
GrepTimeDB is a unified time-series database that stores both logs and metrics.
Databases:
| Database | Contents |
|---|---|
laminar_logs | Raw logs table |
laminar_log_views | Pre-defined log views |
laminar_metrics | Raw metrics tables |
laminar_metric_views | Pre-defined metric views |
Ports:
| Port | Protocol | Use |
|---|---|---|
| 4000 | HTTP | API, Prometheus remote write |
| 4001 | gRPC | Native ingestion |
| 4002 | MySQL | SQL queries (Grafana logs) |
| 4003 | PostgreSQL | SQL queries |
Grafana Datasources
| Name | Type | Endpoint | Purpose |
|---|---|---|---|
| Laminar-Metrics | Prometheus | laminar-engine:8004 | Laminar engine metrics |
| GrepTimeDB-Metrics | Prometheus | greptimedb:4000/v1/prometheus | Container/node/K8s metrics |
| GrepTimeDB-Logs | MySQL | greptimedb:4002 | Log queries |
Access
Desktop Mode
| Service | URL | Credentials |
|---|---|---|
| Grafana | http://localhost:3001 | laminar / laminar |
| GrepTimeDB | http://localhost:4000 | - |
Kubernetes
| Service | URL | Credentials |
|---|---|---|
| Grafana | grafana.{baseDomain} | laminar / laminar |
| GrepTimeDB | greptimedb.{baseDomain} | - |
Helm Chart
The observability stack is deployed via the laminar-monitoring Helm chart:
# Chart dependencies
- grafana (8.5.1)
- greptimedb-standalone (0.1.29)
- vector (0.40.0)
- kube-state-metrics (5.25.1)Deployed to namespace: laminar-monitoring