Prerequisites
- A Kubernetes cluster (EKS or GKE recommended)
- Helm 3.x
- An S3-compatible bucket for ClickHouse and Quickwit storage (AWS S3, or GCS with HMAC credentials)
- AWS: the AWS Load Balancer Controller and EBS CSI Driver
- GCP: the built-in GCE Ingress controller and GCE Persistent Disk CSI Driver
Install
Add the Helm repository, then clone the chart repo to get thelaminar.yaml values file you’ll edit:
laminar.yaml and replace every placeholder value (<region>, <bucket-name>, and so on) with your real cloud provider, credentials, buckets, and availability zones. At minimum, set:
global.cloudProvidertoawsorgcp.- Cloud credentials and the S3 bucket for ClickHouse storage.
AEAD_SECRET_KEY, generated withopenssl rand -hex 32. This encrypts project API keys and model API keys.NEXTAUTH_SECRET, any random string.LLM_API_KEYif you want AI features (chat-with-trace, SQL-with-AI, Signals) active out of the box.- ClickHouse and Quickwit S3 bucket endpoints and regions.
- Availability zones (required for AWS EBS volumes).
LoadBalancer Service instead of an Ingress: read the address with kubectl get svc laminar-frontend-service -o jsonpath='{.status.loadBalancer.ingress[0].ip}'.
Verify the install
Check that every pod is running:app-server, app-server-consumer, clickhouse, frontend, postgres, the five quickwit-* pods, rabbitmq, and redis all Running. If a pod is stuck in Init, it is waiting on a dependency: inspect with kubectl logs <pod> -c wait-for-postgres (or -c wait-for-redis).
Point the SDK to your cluster
Get the app server’s load balancer address and use it as the SDK base URL:443 and gRPC on 8443. Both default in the SDK, so you only pass baseUrl / base_url:
- TypeScript
- Python
SDK clients running inside the same cluster can skip the load balancer and talk to the app server directly at
http://laminar-app-server-service:8000.Upgrade
The standard upgrade rolls Deployments over and restarts StatefulSet pods one at a time:<= 0.1.11 to >= 0.1.12 requires deleting the RabbitMQ and Quickwit StatefulSets with --cascade=orphan first). Check the chart’s upgrade notes before upgrading across minor versions.
More detail
The chart repo holds the canonical step-by-step references:- QUICKSTART: install walkthrough and troubleshooting.
- CONFIGURATION: every value, including secrets management, OAuth, storage, and upgrades.
- NETWORKING: how the frontend and app server are exposed, TLS, and DNS.
What’s next
Configuration reference
AI features, Signals, Slack, OAuth, storage, TLS, and PII redaction.
Start tracing
Point the SDK at your cluster and send traces.
Signals
Define outcome and failure detectors over your traces.
View traces
Read the transcript view instead of a tree of span names.
