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…UseWhat you getSetup
A Kubernetes cluster or Docker host — pod/container logs, node & container metrics, cluster state, TLS certsThe ObserveKit agentLogs + infrastructure metrics + node/pod health, no code changesOne 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 logsAn 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.

  1. Go to Sources → + Add Source.
  2. Name it (e.g. production-cluster) and pick Kubernetes or Docker. Click Create Source.
  3. The wizard shows a copy-paste install command. Run it against your cluster/host.
  4. 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.

  1. Go to Sources → + Add Source → type: Service. Name it after the service (e.g. checkout-api). Save.
  2. Copy the API key the dialog shows.
  3. 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.