Getting started with ObserveKit
ObserveKit collects logs, metrics, and traces and lets you search, chart, alert on, and correlate them. How you send data depends on *what* you're observing. There are two setups — pick the one that matches, or use both together.
Which path do I need?
| You want to observe… | Use | What you get | Setup |
|---|---|---|---|
| A Kubernetes cluster or Docker host — pod/container logs, node & container metrics, cluster state, TLS certs | The ObserveKit agent | Logs + infrastructure metrics + node/pod health, no code changes | One kubectl apply (K8s) or docker run (Docker) command |
| An application — traces, custom metrics, app logs (any language, anywhere: cloud VM, Azure WebApp, serverless, or in k8s) | OpenTelemetry (OTLP) | Traces, service map, RED metrics, app logs | An API key + OTLP endpoint set in your app |
Both feed into a source. If you're not sure what a source, agent, or "service" is, read Core concepts first — it's a two-minute glossary that the rest of the docs assume.
Most teams run both: the agent for cluster infrastructure, OpenTelemetry for the app-level signals the agent can't see (request rates, span timings, business counters).
Path 1 — Install the agent (cluster or host)
You collect from the infrastructure, with no application changes.
- Go to Sources → + Add Source.
- Name it (e.g.
production-cluster) and pick Kubernetes or Docker. Click Create Source. - The wizard shows a copy-paste install command. Run it against your cluster/host.
- The source flips to CONNECTED once the agent heartbeats.
Full steps, what gets installed, RBAC, upgrade and uninstall:
- [Install on Kubernetes](/help/sources/install-kubernetes)
- [Install on Docker](/help/sources/install-docker)
Path 2 — Instrument an app with OpenTelemetry
You add the OpenTelemetry SDK to your app and point it at ObserveKit. No agent required — works anywhere with outbound HTTPS.
- Go to Sources → + Add Source → type: Service. Name it after the service (e.g.
checkout-api). Save. - Copy the API key the dialog shows.
- In your app, set the OTLP endpoint + API-key header and a service name.
Endpoints, auth, and per-language setup (Java/Micronaut, Node, Python, .NET, Go, …):
- [Sending data with OpenTelemetry](/help/ingestion/opentelemetry)
Once data is flowing
- [Overview](/help/overview/overview-page) — cluster health and log volume at a glance.
- [Log Explorer](/help/logs/searching-logs), [Traces](/help/traces/reading-a-trace), [Metrics](/help/metrics/metrics-modes) — investigate.
- [Alerts](/help/alerts/alerting-concepts) — get told when something breaks.
Nothing showing up?
Head to [Troubleshooting: I see no data](/help/getting-started/no-data) — it covers the agent path (source stuck DISCONNECTED) and the OTLP path (401/400 rejections, unknown_service) with concrete fixes.