---
title: Core monitoring
slug: enterprise/core-monitoring
docTags: 
createdAt: 2026-10-15T14:23:36.202Z
---

Rancher and Grafana do not send infrastructure alerts out of the box. Ask your installation administrator how alerts reach the responsible operator.

[Open Rancher and Grafana](docId\:HmeMQxz5FaQzrEllyKjOh). Use the same Core server and time range in each view.

A Core review moves from the services in Rancher, through the server, GPU and processing readings in Grafana, to the results in the Portal.

```mermaid
flowchart LR
  subgraph RANCHER["In Rancher"]
    A["Services<br/>ready"]
  end
  subgraph GRAFANA["In Grafana"]
    B["CPU, memory<br/>and disk"]
    C["Each GPU"]
    D["Processing<br/>activity"]
  end
  subgraph PORTAL["In the Portal"]
    E["Events and media<br/>shown in Monitor"]
  end
  A --> B --> C --> D --> E
```

# Run the Core review

In Rancher, a **workload** manages the pods that run a service. A **pod** contains one or more containers. **Namespaces** group resources, such as `app` and `data`.

| Open this view                      | Inspect                                                | Next action                                                       |
| ----------------------------------- | ------------------------------------------------------ | ----------------------------------------------------------------- |
| **Rancher → Workloads**             | Ready pods, failed pods and increasing restart counts. | [Locate the service and read logs](docId\:uXVDT1CZkhWjKsE9g6vl6). |
| **Grafana → Node Exporter / Nodes** | Measured CPU use and available memory.                 | [Find the busy service](docId\:wqOLXuH2pfp9ig4HyjKG2).            |
| **Node Exporter / Nodes**           | Free space and growth on the physical filesystem.      | [Track storage growth](docId\:BxhH1ZaTSVqUYx7mQYT-S).             |
| **NVIDIA DCGM Exporter Dashboard**  | Utilization and used video memory for each GPU.        | [Read GPU use](docId\:wqOLXuH2pfp9ig4HyjKG2).                     |
| **Inference services**              | Request activity and processing duration.              | [Confirm processing and results](docId\:wqOLXuH2pfp9ig4HyjKG2).   |
| **IRIS+ Portal**                    | Camera health, events and media.                       | Confirm that a representative event and its media arrived.        |

A running pod can still be unready or return application errors.

On the Rancher **Cluster Dashboard**, **CPU Reserved** describes requested capacity. It does not measure actual CPU use.

![](https://api.archbee.com/api/optimize/JzHznijrWxPLJLDUaV5A1/YvmDXmEJ_FTVUxnAXlXsl_overview-core-cpu-1.png "Overview: Rancher Cluster Dashboard")

![](https://api.archbee.com/api/optimize/JzHznijrWxPLJLDUaV5A1/fvbmIp3_gTuZJUs3EKJrw_task-core-cpu-1.png "Details: measured CPU use and reserved capacity")

To read server load in Grafana:

1. Open **Grafana → Dashboards → Node Exporter / Nodes**.
2. Select the Core server.
3. Set a time range that includes typical peak activity.
4. Read CPU use, available memory and free disk space.

:::hint{type="info"}
**Load guidance**

Keep sustained CPU and **each GPU's utilization below 80%** during representative peaks. A brief spike alone does not show overload. This guidance leaves headroom but does not guarantee capacity.
:::

Check memory and disk space separately, and keep headroom in both. An average can hide one busy server or GPU.

## What the results mean

| Result                                                                                      | What to do                                                                                                          |
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| CPU and each GPU stay below 80% at peaks, memory and disk keep headroom, and results arrive | The Core has headroom. Keep your review schedule.                                                                   |
| CPU stays above 80% during peaks                                                            | Pause new load, then [find the busy service](docId\:wqOLXuH2pfp9ig4HyjKG2).                                         |
| A GPU stays above 80% during peaks                                                          | Pause new load. To see which service is busy, use [Confirm processing and results](docId\:wqOLXuH2pfp9ig4HyjKG2).   |
| A view shows **No data**                                                                    | No data is not zero load, so the review is incomplete. Follow [Missing measurements](docId\:uXVDT1CZkhWjKsE9g6vl6). |
| Resources look normal, but events or media are missing                                      | Start from [Choose the first check](docId\:uXVDT1CZkhWjKsE9g6vl6).                                                  |

# Read GPU use

**Inference services** shows average GPU use. **NVIDIA DCGM Exporter Dashboard** shows each GPU. Its readings come from NVIDIA Data Center GPU Manager, or DCGM.

## Average GPU use

![](https://api.archbee.com/api/optimize/JzHznijrWxPLJLDUaV5A1/YbV0qfPh_hHP26boGBYAk_overview-gpu-readings.png "Overview: Inference services with GPU and CPU history")

1. Open **Grafana → Dashboards → Inference services**.
2. Find **Triton GPU and CPU utilization %**.

![](https://api.archbee.com/api/optimize/JzHznijrWxPLJLDUaV5A1/xFf_bwcZl0NmykXmG4orl_task-gpu-readings.png "Details: the yellow GPU series and the green host CPU series over 24 hours")

Triton is the model server that runs models on the GPU. The yellow series averages GPU utilization. The green series shows host CPU use. An average can hide one busy GPU.

## Each GPU

1. Open **NVIDIA DCGM Exporter Dashboard**.
2. Select the server in **instance**.
3. Set the time range.
4. Scroll below **GPU SM Clocks**.
5. Read **GPU Utilization** for each GPU.
6. Read **GPU Framebuffer Mem Used** for each GPU.
7. Compare the readings during representative peaks.

![](https://api.archbee.com/api/optimize/JzHznijrWxPLJLDUaV5A1/nOSlw_67cmJPPDrZycK4v_task-gpu-per-card-2.png "Details: select the server, then read utilization for each GPU")

Framebuffer memory is the GPU's video memory.

Several services can share one GPU. The legend then repeats that GPU's number, such as **GPU 0**, once per service. Treat these rows as one physical GPU, not as extra GPUs. Each row gets only some of the readings, so its line can break into dots. Read the rows together.

Loaded models keep their video memory after GPU activity falls. Used memory can therefore stay high while utilization is low.

Investigate unexpected memory growth or memory-allocation errors.

If **instance** shows **None**, the dashboard has no GPU readings. Failed collection can also produce zero readings. Before you accept low GPU use, check these points:

- The dashboard lists each GPU installed in the server.
- **Inference services** shows low processing activity for the same period.

If per-GPU readings are unavailable, the Core capacity check remains incomplete. Follow [Missing measurements](docId\:uXVDT1CZkhWjKsE9g6vl6).

# Confirm processing and results

![](https://api.archbee.com/api/optimize/JzHznijrWxPLJLDUaV5A1/0w4U6rOC_lkVpQ3H75uEk_overview-inference-activity.png "Overview: Inference services, scrolled to the processing charts")

The dashboard has no service selector. Use these rows and panels:

| Row or panel                      | Shows                                                                                                                                             |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Inference service**             | `innovi-inference-service-2`, the general inference service.                                                                                      |
| **Inference service pai 1**       | `innovi-inference-service-2-pai-1`, an optional separate inference service. It shows activity only when your installation routes analytics to it. |
| **Triton image count per second** | Model activity on the shared Triton service.                                                                                                      |

Analytic names in the Portal can differ from dashboard legends. To learn which service and model an analytic uses, reach out to Irisity.

1. Open **Inference services**.
2. Expand the row for the service you are checking.
3. Read its requests per second panel, such as **innovi-inference-service-2 requests/second**.
4. Read its duration panel, such as **Inference service request duration ms**.
5. Compare both with the GPU readings for the same time range.

![](https://api.archbee.com/api/optimize/JzHznijrWxPLJLDUaV5A1/R6WL3vIaaohCaRZCGe_vg_task-inference-activity.png "Details: inference request activity and processing duration")

**Replica counts** shows replicas and average requests in progress. These are requests a service handles at the same time, not a queue. A replica is one running copy of a service, not a GPU.

Investigate when requests in progress stay high while duration or errors rise.

Duration panel legends do not reliably name models. Use the request-rate and image-count panels to identify active models.

Both inference services can use the shared Triton service. A separate row does not mean another GPU.

**Triton inference duration ms** does not show the duration of each request. Use **Inference service request duration ms** for request duration.

Then check **Portal → Monitor** for an expected event and its required image or clip. Messaging, storage or indexing can delay results after processing.

# Find the busy service

Use **Kubernetes / Compute Resources / Namespace (Workloads)** to compare CPU and memory for each service.

| What it does       | Services and jobs in Rancher    | Main demand                        | What raises it                                     |
| ------------------ | ------------------------------- | ---------------------------------- | -------------------------------------------------- |
| Edge connections   | Agent Proxy, Device Proxy       | CPU, memory and network.           | Connected Edges, camera-state updates and uploads. |
| Model processing   | Inference services, Triton      | CPU, memory, GPU and video memory. | Enabled analytics, models and processing requests. |
| Events and search  | Event worker, indexer           | CPU, memory, disk and network.     | Events, media handling and indexing.               |
| Data and messaging | Kafka, Elasticsearch, databases | Memory, disk and network.          | Stored data, messaging, searches and retention.    |
| Scheduled work     | Report, backup and cleanup jobs | CPU and disk activity.             | Scheduled runs and requested reports.              |

Event bursts add media, indexing and delivery work. Searches and reports can compete with camera processing.

Camera counts alone do not establish capacity. Stream properties, analytics combinations, scene activity and hardware affect demand.

Core dashboards do not show Edge resources. Use [Edge monitoring](docId\:nYIItacpKTFMoV4VmhEY2) for Edges.

# Add load in batches

1. Record the current load and delivered results.
2. Add a manageable batch of cameras or analytics.
3. Wait until startup and model loading settle.
4. Repeat the Core review during representative peak activity.
5. Check the expected events and media.

No universal batch size or settling time exists.

Pause additions if CPU or GPU use stays high, processing slows, errors increase or measurements are missing. Resolve the limiting stage first.

If processing cannot keep up, reduce the added load with the controls in the [application guide](docId\:JZi9elT2v0BrY50Z5LlFZ).

# When to review

Review daily during the first week of operation. Then review weekly or monthly, as activity and operating needs require. Repeat the review after changes and during expected peaks.

Agree who performs these reviews while no infrastructure alerts are set up.

Include [backup and cleanup checks](docId\:BxhH1ZaTSVqUYx7mQYT-S) in your maintenance routine.
