Skip to main content
Infrastructure monitoring is the one setup where the pages read specific metric names. An SDK cannot produce them; they come from the OpenTelemetry Collector’s host and container scrapers. If you run the Collector with the right scrapers enabled, the pages fill in. If a page is empty, it is almost always because the scraper that produces its metric is not running.
Before you start, you need two values.
  1. Your base endpoint — shown on Get Started in the dashboard. These pages write it as $OIQ_ENDPOINT.
  2. 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.
Export both before running anything below:

Hosts

The hostmetrics receiver scrapes the machine it runs on. Enable these scrapers:
resourcedetection is not optional here. The Hosts pages key on the host.name and host.id resource attributes. Without the processor the metrics still arrive, but they belong to no host and the inventory stays empty.

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

The docker_stats receiver reads the Docker daemon and reports per-container resource use.
The collector needs read access to the Docker socket — mount it, and prefer read-only. 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 no projectId to pass.

Troubleshooting

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.
A scraper is not enabled. Match the empty panel to its metric in the tables above, then check the scrapers: block.
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.
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.