Work in Progress: This page is under development. Use the feedback button on the bottom right to help us improve it.

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

ComponentPurposeDeployment
VectorLog and metrics collectionDaemonSet (K8s) / Container (Desktop)
GrepTimeDBTime-series database for logs and metricsStatefulSet (K8s) / Container (Desktop)
GrafanaVisualization and dashboardsDeployment (K8s) / Container (Desktop)
kube-state-metricsKubernetes object metricsDeployment (K8s only)

GrepTimeDB

GrepTimeDB is a unified time-series database that stores both logs and metrics.

Databases:

DatabaseContents
laminar_logsRaw logs table
laminar_log_viewsPre-defined log views
laminar_metricsRaw metrics tables
laminar_metric_viewsPre-defined metric views

Ports:

PortProtocolUse
4000HTTPAPI, Prometheus remote write
4001gRPCNative ingestion
4002MySQLSQL queries (Grafana logs)
4003PostgreSQLSQL queries

Grafana Datasources

NameTypeEndpointPurpose
Laminar-MetricsPrometheuslaminar-engine:8004Laminar engine metrics
GrepTimeDB-MetricsPrometheusgreptimedb:4000/v1/prometheusContainer/node/K8s metrics
GrepTimeDB-LogsMySQLgreptimedb:4002Log queries

Access

Desktop Mode

ServiceURLCredentials
Grafanahttp://localhost:3001laminar / laminar
GrepTimeDBhttp://localhost:4000-

Kubernetes

ServiceURLCredentials
Grafanagrafana.{baseDomain}laminar / laminar
GrepTimeDBgreptimedb.{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