Before you start, you need two values.
- Your base endpoint — shown on Get Started in the dashboard. These
pages write it as
$OIQ_ENDPOINT. - A license key — created in Settings → API keys, starting
oiq_. Requires the Admin role. See Create a license key. These pages write it as$OIQ_LICENSE_KEY.
Hosts
Thehostmetrics receiver scrapes the machine it runs on. Enable these scrapers:
What each panel needs
This is a useful debugging table: an empty CPU chart with a populated memory chart
means the
cpu scraper is off, not that ingest is broken.
Containers
Thedocker_stats receiver reads the Docker daemon and reports per-container
resource use.
See Docker and
Docker Compose for complete deployments.
Kubernetes
Kubernetes needs two collectors doing different jobs, and running only one is the most common reason a cluster looks half-monitored:1
A DaemonSet — one per node
Runs
kubeletstats for per-pod and per-container resource use, and
hostmetrics for the node itself. This is where the numbers come from.2
A Deployment — one per cluster
Runs
k8s_cluster for cluster-level state — node and pod counts, phases,
conditions — and k8sattributes to enrich every record with pod, namespace,
deployment and node names.k8sattributes is what makes telemetry from a pod filterable by namespace,
deployment and node — including logs and traces, not only metrics. It needs
RBAC to read pods; the Kubernetes page has
the manifests and the role binding.Verify
1
Check the collector is exporting
The Collector’s own logs report exporter failures plainly. A repeated 401 is a
key problem; a repeated connection error is an endpoint or egress problem.
2
Check the host appears
Open Infrastructure → Hosts. A host appears once metrics carrying its
host.name have been written inside the current time range.3
Check a specific panel
If the host is listed but one chart is empty, use the tables above to find
which scraper produces that metric, and confirm it is enabled.
Cardinality
Host and container metrics are low-cardinality by nature and stay cheap. The way this setup becomes expensive is attributes added by hand — a per-request id or a full URL path attached to an infrastructure metric multiplies its series count by the number of distinct values. Keep resource attributes to things that describe where the metric came from, not what happened.Infrastructure is account-scoped
Unlike APM, the Infrastructure and Kubernetes pages are not filtered by project. A host is shared by whatever runs on it, so it belongs to the account rather than to one project. There is noprojectId to pass.
Troubleshooting
Hosts page is empty but metrics are arriving
Hosts page is empty but metrics are arriving
host.name is missing from the resource. Add the resourcedetection
processor with the system detector, and confirm it is listed in the pipeline
processors — a processor defined but not wired into the pipeline does
nothing.One chart is empty and the rest are fine
One chart is empty and the rest are fine
A scraper is not enabled. Match the empty panel to its metric in the tables
above, then check the
scrapers: block.Containers show no network figures
Containers show no network figures
container.network.io.usage.rx_bytes and tx_bytes come from the Docker
daemon. If the collector cannot read the socket, CPU and memory may still work
through another path while network stays empty — check the socket mount and
its permissions.Kubernetes pods are listed without namespaces or deployments
Kubernetes pods are listed without namespaces or deployments
The
k8sattributes processor is missing, or lacks RBAC to read pods. It
fails soft: records still arrive, just unenriched.Next
Set up Monitoring
Metrics and application traces.
Set up Logs
Application and system logs.