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 | |
| A Linux server or VM — no Kubernetes, no Docker. Host metrics, log files, journald, syslog | The ObserveKit agent, under systemd | Host metrics + the log files you point it at, no code changes | One `curl … \ | sudo bash` command |
| An application — traces, custom metrics, app logs (any language, anywhere: 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, container host, or server)
You collect from the infrastructure, with no application changes.
- Go to Sources → + Add Source.
- Name it (e.g.
production-cluster) and pick the type that matches the machine. Click Create Source. - The wizard shows a copy-paste install command. Run it against your cluster, host, or server.
- 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)
- [Install on a Linux server or VM](/help/sources/install-linux-host)
One difference to know before you start. On Kubernetes and Docker the agent discovers your workloads and ships their logs immediately. On a Linux server there is nothing to discover, so it ships host metrics and collects no application logs until you tell it which files to tail. A quiet Linux source is usually correct and simply unconfigured.
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.