Hosts
Send host CPU, memory, disk, network and load metrics to Maple with the OpenTelemetry Collector hostmetrics receiver, and read them on the Hosts page.
The Hosts page (Infrastructure → Hosts) lists every machine that sends OpenTelemetry host metrics to Maple, with its CPU, memory, disk and load. Each host has a detail page with charts over time and its platform metadata.
Hosts appear from the OpenTelemetry hostmetrics receiver. There are two ways to run it:
- Kubernetes. The
maple-k8s-infraHelm chart runs it on every node. Follow Kubernetes infrastructure and your nodes appear here with no extra setup. - Any other Linux, macOS or Windows host. Run the OpenTelemetry Collector with the
hostmetricsreceiver, as below.
The Docker agent collects per-container metrics, not host metrics. Its containers appear under Infrastructure → Containers.
Prerequisites
- The OpenTelemetry Collector Contrib distribution (
otelcol-contrib) on the host. It includes thehostmetricsreceiver and theresourcedetectionprocessor. - A private ingest key (
maple_sk_…) from Settings → Ingestion.
Configure the Collector
Save this as config.yaml:
receivers:
hostmetrics:
collection_interval: 30s
scrapers:
cpu:
metrics:
system.cpu.utilization:
enabled: true
load: {}
memory:
metrics:
system.memory.utilization:
enabled: true
filesystem:
metrics:
system.filesystem.utilization:
enabled: true
network: {}
processors:
resourcedetection:
detectors: [env, system]
batch: {}
exporters:
otlphttp/maple:
endpoint: https://ingest.maple.dev
compression: gzip
headers:
x-maple-ingest-key: ${env:MAPLE_INGEST_KEY}
service:
pipelines:
metrics:
receivers: [hostmetrics]
processors: [resourcedetection, batch]
exporters: [otlphttp/maple]
Then start the Collector with your key in the environment:
MAPLE_INGEST_KEY=YOUR_INGEST_KEY otelcol-contrib --config config.yaml
Notes on the config:
- The three
*.utilizationmetrics must be enabled. Thehostmetricsreceiver leaves them off by default, and the Hosts page reads them for CPU, memory and disk. resourcedetectionsetshost.name. Maple keys each host onhost.name. Thesystemdetector also setsos.typeandhost.arch, which the detail page shows. Add a cloud detector (ec2,gcporazure) to fill incloud.providerandcloud.region.- EU organizations use
https://ingest.eu.maple.devas the endpoint.
If you already run a Collector on the host for application telemetry, add the hostmetrics receiver and a metrics pipeline to it instead of running a second one.
What the Hosts page shows
| Metric | Where it appears |
|---|---|
system.cpu.utilization | CPU in Usage, the fleet band, CPU chart |
system.memory.utilization | MEM in Usage, the fleet band, Memory chart |
system.filesystem.utilization | DSK in Usage, the fleet band, Filesystem chart (per mountpoint) |
system.cpu.load_average.15m | Load 15m column and chart |
system.network.io | Network chart (per device, in and out) |
The list shows each host’s Usage (CPU, MEM and DSK), Load 15m and Last seen. Search by name with Search hosts…. The band above the list splits the fleet by each host’s busiest of CPU, memory and disk, and filters the list:
| Filter | Meaning |
|---|---|
| Saturated | CPU, memory or disk at 90% or more. |
| Elevated | CPU, memory or disk at 60% or more. |
| Stopped reporting | No report for more than 5 minutes. |
Click a host to open its detail page: CPU, Memory, Filesystem, Network and Load 15m charts, and the host’s host.name, os.type, host.arch, cloud.provider, cloud.region, and first and last seen times.
Verify
- Start the Collector and open Infrastructure → Hosts.
- The host appears within about a minute. CPU and memory fill in Usage on the first report.
- Open the host. Its charts need a few reports to draw a line.
Troubleshooting
- The host does not appear. Check the Collector’s output for exporter errors. A
401means the ingest key is wrong or was rotated. Confirmresourcedetectionis in the pipeline: withouthost.name, Maple cannot list the host. - The host appears but CPU, memory or disk read 0. The matching
*.utilizationmetric is not enabled in the receiver config. - The host is under Stopped reporting. The Collector stopped or cannot reach Maple. The host leaves that filter on its next report.
- Two rows for one machine.
host.namechanged, for example after a hostname change or a container restart. Each distincthost.nameis its own host.
Next steps
- Kubernetes infrastructure: nodes, pods and workloads.
- Docker infrastructure: per-container metrics and logs.
- Metrics: query any metric, including the
system.*metrics above.