Skip to main content

NVIDIA Jetson

NVIDIA Jetson

Plugin: go.d.plugin Module: jetson

Maintained by Netdata

Overview​

Monitor GPU and memory controller activity, power consumption, and SoC temperatures on NVIDIA Jetson devices.

You get:

  • GPU utilization.
  • GPU clock frequency, as one value or, on devices that report it, one value per graphics processing cluster (GPC).
  • External memory controller (EMC) bandwidth utilization and clock frequency. The CPU and GPU share this memory, so high EMC utilization can reveal memory-bandwidth-bound workloads.
  • Current power consumption for each reported power rail, in watts.
  • SoC temperatures for cpu, gpu, soc0, soc1, soc2, and tj, in degrees Celsius when reported as single values.

CPU, memory, and swap usage come from Netdata's standard Linux system monitoring; this collector adds Jetson GPU, EMC, power rail, and SoC temperature readings. Power and temperature readings help correlate workload activity with power consumption and heating. Existing generic sensor monitoring remains available.

The collector runs NVIDIA's tegrastats --interval 1000 on the local host and reads the line of readings it prints every second. One tegrastats process runs for as long as the job runs. By default, Netdata's restricted ndsudo helper runs /usr/bin/tegrastats as root to recover readings that may be unavailable to the Netdata service account, including GPU clocks and EMC activity.

If privileged execution is unavailable before the first producer starts, the collector logs a warning and uses tegrastats from Netdata's PATH under its service account (usually netdata). Set allow_privileged: false to use only this unprivileged mode. The selected mode remains in use until the job is recreated.

It stops only the tegrastats process it started; other instances on the host, such as one you run in a terminal, are not affected.

This collector is only supported on the following platforms:

  • Linux

This collector only supports collecting metrics from a single instance of this integration.

Privileged collection requires Netdata's installed ndsudo helper and NVIDIA's native executable at /usr/bin/tegrastats. For this route, the executable and its parent directories must be root-owned, must not be writable by other users, and must not be symlinks. The helper accepts no custom command path or arguments.

Unprivileged collection requires the Netdata service account to be able to run tegrastats from its PATH. Readings that your Jetson Linux release shows only to root are then unavailable.

Default Behavior​

Auto-Detection​

The stock configuration runs one job named localhost, which looks for tegrastats in Netdata's PATH or, when allow_privileged is enabled, at /usr/bin/tegrastats. Detection does not execute the utility; collection starts after detection succeeds. If tegrastats is missing when Netdata starts, the job does not start; restart Netdata after making it available.

Limits​

  • The readings depend on the Jetson module, the Jetson Linux release, and permissions. For example, tegrastats on Jetson Thor can report GPU clocks without GPU utilization. A reading that tegrastats does not report leaves a gap; it is never charted as zero.
  • Rail names and coverage vary by device. Rails can overlap, so adding their values does not give total device power. On Thor, the total-system VIN rail may also appear in Netdata's sensors charts.
  • Power charts use the current reading from supported current/average pairs. Averages and unfamiliar three-value forms are not collected.
  • Temperature charts retain the six supported source names and fractional values. Once observed, these sensor charts are retained when readings are unavailable, including the documented -256C sentinel. Missing readings leave gaps. Other names and multi-value temperature forms are not collected.
  • If tegrastats stops printing readings, the charts show a gap after three seconds instead of repeating the last values.

Performance Impact​

Each job keeps one tegrastats --interval 1000 process running, plus a supervising helper in privileged mode. Netdata parses one line of its output per second. CPU and memory overhead have not been measured on Jetson hardware. A longer update_every reduces how often Netdata stores readings, not how often tegrastats samples.

Setup​

You can configure the jetson collector in two ways:

MethodBest forHow to
UIFast setup without editing filesGo to Nodes → Configure this node → Collectors → Jobs, search for jetson, then click + to add a job.
FileIf you prefer configuring via file, or need to automate deployments (e.g., with Ansible)Edit go.d/jetson.conf and add a job.
important

UI configuration requires paid Netdata Cloud plan.

Prerequisites​

Make tegrastats available to Netdata​

The collector needs Netdata installed natively on the Jetson device and the tegrastats utility that NVIDIA Jetson Linux (installed with JetPack) provides. Netdata running in a container is not supported.

To inspect the readings available with the default privileged mode, run:

sudo /usr/bin/tegrastats --interval 1000

Each line should contain a GR3D_FREQ (GPU), EMC_FREQ (memory controller), a power rail reading such as VDD_GPU 10687mW/9815mW, or a supported temperature such as cpu@39.218C; stop the command with Ctrl+C. Readings missing from this output cannot be collected by this integration. This manual command checks the vendor utility; it does not verify Netdata's packaged helper.

For unprivileged mode or fallback, compare the output of sudo -u netdata tegrastats --interval 1000. GPU clocks and EMC readings may be absent in that output.

If the command is not found, restore tegrastats with NVIDIA's tegrastats deployment instructions. Netdata searches its own PATH, which adds /sbin, /usr/sbin, /usr/local/bin, and /usr/local/sbin to the PATH it starts with. Privileged execution always uses /usr/bin/tegrastats; changing PATH affects only unprivileged execution. If tegrastats is in another directory, set PATH in the [environment variables] section of netdata.conf to a list that includes it, then restart Netdata.

Configuration​

Options​

The options can be set globally or per job. One job covers the whole Jetson device.

Config options
OptionDescriptionDefaultRequired
update_everyData collection interval, in seconds. tegrastats samples once per second regardless; a longer interval charts the latest reading, not an average.1no
allow_privilegedAllow restricted privileged execution of tegrastats to collect readings that require root, such as GPU clocks and EMC activity.yesno
allow_privileged​

Enabled by default. If the helper or fixed vendor executable is unavailable before the first producer starts, the collector warns once and uses unprivileged collection for the lifetime of that job. Recreate the job or restart Netdata to retry privileged collection after repairing the installation.

Unsafe executable permissions, helper protocol/setup errors, and failures after privileged startup do not trigger fallback. Set this option to false to avoid privileged execution entirely; root-only readings may then be missing.

via UI​

Configure the jetson collector from the Netdata web interface:

  1. Go to Nodes.
  2. Select the node where you want the jetson data-collection job to run and click the ⚙ (Configure this node). That node will run the data collection.
  3. The Collectors → Jobs view opens by default.
  4. In the Search box, type jetson (or scroll the list) to locate the jetson collector.
  5. Click the + next to the jetson collector to add a new job.
  6. Fill in the job fields, then click Test to verify the configuration and Submit to save.
    • Test validates the provided settings and checks the collector's startup prerequisites. Successful validation does not guarantee that every metric will be available during collection.
    • If it fails, an error message appears with details (for example, connection refused, timeout, or command execution errors), so you can adjust and retest.

via File​

The configuration file name for this integration is go.d/jetson.conf.

The file format is YAML. Generally, the structure is:

update_every: 1
autodetection_retry: 0
jobs:
- name: some_name1
- name: some_name2

You can edit the configuration file using the edit-config script from the Netdata config directory.

cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config go.d/jetson.conf
Examples​
Basic​

The stock configuration, with one job for the local Jetson device.

Config
jobs:
- name: localhost

Alerts​

There are no alerts configured by default for this integration.

Metrics​

Metrics grouped by scope.

The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.

Charts show only readings present in the latest tegrastats line. A missing or invalid reading leaves a gap; a reported zero is charted as zero.

Per NVIDIA Jetson instance​

The Jetson device's integrated GPU and external memory controller (EMC).

This scope has no labels.

Metrics:

MetricDescriptionDimensionsUnit
jetson.gpu_utilizationGPU Utilizationutilizationpercentage
jetson.gpu_frequencyGPU FrequencyfrequencyMHz
jetson.emc_utilizationMemory Controller Bandwidth Utilization at Current Frequencyutilizationpercentage
jetson.emc_frequencyMemory Controller FrequencyfrequencyMHz

Per GPU graphics processing cluster​

One graphics processing cluster (GPC) of the GPU, present when tegrastats reports a clock for each GPC.

Labels:

LabelDescription
gpcPosition of the cluster in the tegrastats GPU clock list, starting at 0.

Metrics:

MetricDescriptionDimensionsUnit
jetson.gpu_gpc_frequencyGPU Graphics Processing Cluster FrequencyfrequencyMHz

Per power rail​

One power rail reported by tegrastats with a valid current/average milliwatt pair.

Labels:

LabelDescription
railNVIDIA's power rail name, such as VDD_GPU, VDD_CPU_CV, or VIN; a rail can supply several components.

Metrics:

MetricDescriptionDimensionsUnit
jetson.power_rail_powerPower Rail ConsumptionpowerWatts

Per temperature sensor​

One of the supported SoC sensors with a valid scalar Celsius reading in the latest tegrastats record.

Labels:

LabelDescription
sensorSource sensor name, preserved as cpu, gpu, soc0, soc1, soc2, or tj.

Metrics:

MetricDescriptionDimensionsUnit
jetson.sensor_temperatureSoC TemperaturetemperatureCelsius

Troubleshooting​

Diagnostics​

Debug Mode​

Important: Debug mode is not supported for data collection jobs created via the UI using the Dyncfg feature.

To troubleshoot issues with the jetson collector, run the go.d.plugin with the debug option enabled. The output should give you clues as to why the collector isn't working.

  • Navigate to the plugins.d directory, usually at /usr/libexec/netdata/plugins.d/. If that's not the case on your system, open netdata.conf and look for the plugins setting under [directories].

    cd /usr/libexec/netdata/plugins.d/
  • Switch to the netdata user.

    sudo -u netdata -s
  • Run the go.d.plugin to debug the collector:

    ./go.d.plugin -d -m jetson

    To debug a specific job:

    ./go.d.plugin -d -m jetson -j jobName

Getting Logs​

If you're encountering problems with the jetson collector, follow these steps to retrieve logs and identify potential issues:

  • Run the command specific to your system (systemd, non-systemd, or Docker container).
  • Examine the output for any warnings or error messages that might indicate issues. These messages should provide clues about the root cause of the problem.
System with systemd​

Use the following command to view logs generated since the last Netdata service restart:

journalctl _SYSTEMD_INVOCATION_ID="$(systemctl show --value --property=InvocationID netdata)" --namespace=netdata --grep jetson
System without systemd​

Locate the collector log file, typically at /var/log/netdata/collector.log, and use grep to filter for collector's name:

grep jetson /var/log/netdata/collector.log

Note: This method shows logs from all restarts. Focus on the latest entries for troubleshooting current issues.

Docker Container​

If your Netdata runs in a Docker container named "netdata" (replace if different), use this command:

docker logs netdata 2>&1 | grep jetson

Known Errors​

tegrastats executable not found in PATH​

Cause

No executable named tegrastats is in Netdata's PATH, and the privileged fixed-path candidate is missing or disabled. This is expected on Linux hosts that are not Jetson devices, and when Netdata runs in a container.

Fix

On a Jetson device, make tegrastats available as described in Prerequisites, then restart Netdata. On other hosts, ignore the message or set jetson: no in the modules section of go.d.conf.

start tegrastats: error​

Cause

Netdata could not acquire or start its tegrastats producer.

Fix

Read the error text. Repair or reinstall Netdata if a packaged helper is missing or incompatible. For unsafe vendor executable errors, restore the native NVIDIA installation and its permissions; these failures do not trigger fallback.

restricted privileged tegrastats unavailable (error); selected unprivileged collection; GPU clocks and EMC readings may be missing​

Cause

The initial privileged attempt could not start a producer, so the job selected unprivileged collection. GPU clocks and EMC readings may be missing.

Fix

Restore the packaged Netdata helper and native NVIDIA utility, then recreate the job or restart Netdata to retry privileged collection. Set allow_privileged: false if unprivileged collection is intentional.

previous acquisition still owns this job​

Cause

An earlier producer for the same job has not completed verified cleanup. Replacement collection is blocked even when privileged execution is disabled.

Fix

Inspect the collector log and the earlier producer. Collection can resume after verified cleanup. Changing the job name bypasses the shared ownership check and can create a second producer; do not use a rename to work around this error.

tegrastats source unavailable: error​

Cause

The running tegrastats exited or stopped printing readings. Netdata retries with a delay of up to 30 seconds; replacement remains blocked while earlier cleanup is incomplete.

Fix

Run the check in Prerequisites and compare its output with the error text. tegrastats exited: exit status N means the utility failed; tegrastats stopped producing records means it kept running without printing complete lines.

no fresh tegrastats sample​

Cause

Netdata has not received a complete tegrastats line in the last three seconds, usually because tegrastats is starting, has stopped, or is being restarted.

Fix

If the error persists, look for tegrastats source unavailable messages in the collector log (see Diagnostics) and run the check in Prerequisites.

tegrastats sample contains no supported GPU, EMC, power or temperature readings​

Cause

The latest tegrastats line has no valid GR3D_FREQ (GPU), EMC_FREQ (memory controller), supported power rail reading, or supported scalar temperature. Which readings tegrastats prints depends on the Jetson module, the Jetson Linux release, and the account that runs it.

Fix

Run the check in Prerequisites. If its output has no supported GPU, memory controller, power rail, or temperature readings, this collector has nothing to chart on this device.


Do you have any feedback for this page? If so, you can open a new issue on our netdata/learn repository.