Know why the pod
keeps restarting.
Install one Helm chart and Monocle shows your pods, workloads, jobs, and nodes next to the traces and logs of the services they run. When something breaks, it tells you what happened in plain words.
A node agent and a cluster agent
Metrics, state, and events
Crash loops, OOM kills, pull errors
Each span knows its pod
The state of your cluster, in one page
The overview answers the first questions: is there room left, is everything running, and what needs a look. Switch to This environment to keep only the namespaces your services run in.
- CPU and memory used, and reserved by requests, against the capacity of your nodes
- Pods and nodes ready, and the workloads that need attention first
- The warnings and rollouts of the last hour, from Kubernetes events
Problems explained, not just listed
A pod in CrashLoopBackOff tells you little. Monocle reads the restarts, exit codes, and events, and writes down what happened, with the last log lines before the crash.
- Crash loops, OOM kills, images that cannot be pulled, and pods that cannot be scheduled
- Failed jobs, missing replicas, and nodes low on memory or disk
- Each diagnosis says how often it happened, like "Keeps crashing: restarted 11 times in the last hour"
Every resource, one click away
Pods, containers, workloads, jobs, nodes, namespaces, volumes, and clusters each get their own list, with stat cards on top. Open any of them in a side panel without losing your place.
- Search, sort, and group by namespace, node, workload, or status
- Side panels with Overview, Metrics, Logs, Traces, and Events tabs
- CPU, memory, network, filesystem, and volume metrics from the kubelet
One command to install
The chart runs an agent on each node for kubelet metrics and container logs, and one cluster agent for the state of your resources and the Kubernetes events. Metrics and logs need no change in your apps.
- Container logs are read from each node and linked to their pod
- Pods, workloads, jobs, CronJobs, and nodes are reported every 60 seconds
- Built on the OpenTelemetry Collector, configured through the chart values
helm install monocle-agent oci://ghcr.io/monocle-sh/charts/k8s-agent \
-n monocle --create-namespace \
--set monocle.apiKey=<ingestion key> \
--set monocle.environment=production \
--set monocle.clusterName=prod-euTraces that know their pod
Point the OTLP exporter of your services at the agent on their node. It adds the pod, workload, namespace, and node to every span, then forwards it with your service’s own API key.
- The panel of a pod or workload lists its traces and links to the services it runs
- This environment keeps only the namespaces your services run in
- Works with the AdonisJS agent and any OpenTelemetry SDK
env:
- name: HOST_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: http://$(HOST_IP):4318Plugs into your stack
Helm
oci://ghcr.io/monocle-sh/charts/k8s-agent
Kubernetes
Kubelet metrics, cluster state, and events
OpenTelemetry Collector
The agents run the upstream collector
Container logs
Read on each node, linked to their pod
AdonisJS
Traces tagged with their pod
Any OpenTelemetry SDK
Send OTLP to the agent on the node
See what your apps
are really doing.
Traces, logs, errors and metrics for every app you ship. Bring it all into focus.
