Jetson platform services: can't see monitoring dashboard`

I came across Jetson platform services and am interested in the monitoring service:

I followed the instructions here (manual) and installed JPS 2.0 on Orin NX running jetpack6.2:

$ dpkg -l | grep jet
ii  nvidia-jetpack                               6.2.1+b38                                            arm64        NVIDIA Jetpack Meta Package
ii  nvidia-jetpack-dev                           6.2.1+b38                                            arm64        NVIDIA Jetpack dev Meta Package
ii  nvidia-jetpack-runtime                       6.2.1+b38                                            arm64        NVIDIA Jetpack runtime Meta Package
ii  nvidia-jetson-services                       2.0.0                                                arm64        NVIDIA Jetson Package
...

I’ve uncommented the monitoring service in /opt/nvidia/jetson/services/ingress/config/platform-nginx.conf:

nvidia@sai-aaa-boson22-xx:~$ cat /opt/nvidia/jetson/services/ingress/config/platform-nginx.conf 
location /grafana {
    rewrite ^/grafana/(.*) /$1 break;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    # reset Authorization again because proxy_set_header Host $host is setting it
    proxy_set_header Authorization "";
    access_log /var/log/nginx/access.log timed_combined;
    proxy_pass http://localhost:3000;
}

location /vst/ {
    rewrite ^/vst/?(.*)$ /$1 break;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    access_log /var/log/nginx/access.log timed_combined;
    proxy_pass http://localhost:30000;
}

location /monitoring/ {
   rewrite ^/monitoring/?(.*)$ /$1 break;
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   access_log /var/log/nginx/access.log timed_combined;
   proxy_pass http://localhost:8081;
}

location /pushgateway/ {
  rewrite ^/pushgateway/?(.*)$ /$1 break;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  access_log /var/log/nginx/access.log timed_combined;
  proxy_pass http://localhost:9091;
}

All services are enabled and running as far as I can tell:

nvidia@jetson-xx:~$ sudo systemctl status jetson-ingress jetson-monitoring jetson-sys-monitoring jetson-gpu-monitoring
● jetson-ingress.service - Ingress Platform Service
     Loaded: loaded (/lib/systemd/system/jetson-ingress.service; enabled; vendor preset: enabled)
     Active: active (exited) since Fri 2025-08-08 22:23:39 UTC; 19min ago
    Process: 1869 ExecStart=docker compose -f /opt/nvidia/jetson/services/ingress/compose.yaml up -d --force-recreate (code=exited, status=0/SUCCESS)
   Main PID: 1869 (code=exited, status=0/SUCCESS)
        CPU: 211ms

Aug 08 22:23:38 jetson-xx systemd[1]: Starting Ingress Platform Service...
Aug 08 22:23:38 jetson-xx docker[1940]: time="2025-08-08T22:23:38Z" level=warning msg="/opt/nvidia/jetson/services/ingress/compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion"
Aug 08 22:23:38 jetson-xx docker[1940]:  Container ingress  Creating
Aug 08 22:23:38 jetson-xx docker[1940]:  Container ingress  Created
Aug 08 22:23:38 jetson-xx docker[1940]:  Container ingress  Starting
Aug 08 22:23:39 jetson-xx docker[1940]:  Container ingress  Started
Aug 08 22:23:39 jetson-xx systemd[1]: Finished Ingress Platform Service.

● jetson-monitoring.service - Monitoring Platform Service
     Loaded: loaded (/lib/systemd/system/jetson-monitoring.service; enabled; vendor preset: enabled)
     Active: active (exited) since Fri 2025-08-08 22:23:39 UTC; 19min ago
    Process: 1870 ExecStart=docker compose -f /opt/nvidia/jetson/services/monitoring/compose.yaml up -d --force-recreate (code=exited, status=0/SUCCESS)
   Main PID: 1870 (code=exited, status=0/SUCCESS)
        CPU: 274ms

Aug 08 22:23:39 jetson-xx docker[1939]:  Container grafana  Starting
Aug 08 22:23:39 jetson-xx docker[1939]:  Container push-gateway  Starting
Aug 08 22:23:39 jetson-xx docker[1939]:  Container its-monitoring  Starting
Aug 08 22:23:39 jetson-xx docker[1939]:  Container jps-metric-exporter  Started
Aug 08 22:23:39 jetson-xx docker[1939]:  Container prometheus  Started
Aug 08 22:23:39 jetson-xx docker[1939]:  Container its-monitoring  Started
Aug 08 22:23:39 jetson-xx docker[1939]:  Container alert-manager  Started
Aug 08 22:23:39 jetson-xx docker[1939]:  Container push-gateway  Started
Aug 08 22:23:39 jetson-xx docker[1939]:  Container grafana  Started
Aug 08 22:23:39 jetson-xx systemd[1]: Finished Monitoring Platform Service.

● jetson-sys-monitoring.service - Sys Monitoring Platform Service
     Loaded: loaded (/lib/systemd/system/jetson-sys-monitoring.service; enabled; vendor preset: enabled)
     Active: active (exited) since Fri 2025-08-08 22:23:40 UTC; 19min ago
    Process: 2468 ExecStart=docker compose -f /opt/nvidia/jetson/services/sysmonitoring/compose.yaml up -d --force-recreate (code=exited, status=0/SUCCESS)
   Main PID: 2468 (code=exited, status=0/SUCCESS)
        CPU: 205ms

Aug 08 22:23:39 jetson-xx systemd[1]: Starting Sys Monitoring Platform Service...
Aug 08 22:23:40 jetson-xx docker[2605]: time="2025-08-08T22:23:40Z" level=warning msg="/opt/nvidia/jetson/services/sysmonitoring/compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion"
Aug 08 22:23:40 jetson-xx docker[2605]:  Container nodeexporter  Creating
Aug 08 22:23:40 jetson-xx docker[2605]:  Container nodeexporter  Created
Aug 08 22:23:40 jetson-xx docker[2605]:  Container nodeexporter  Starting
Aug 08 22:23:40 jetson-xx docker[2605]:  Container nodeexporter  Started
Aug 08 22:23:40 jetson-xx systemd[1]: Finished Sys Monitoring Platform Service.

● jetson-gpu-monitoring.service - GPU Monitoring
     Loaded: loaded (/lib/systemd/system/jetson-gpu-monitoring.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2025-08-08 22:23:37 UTC; 19min ago
    Process: 1334 ExecStartPre=/bin/bash /opt/nvidia/jetson/services/gpumonitoring/prepare.sh (code=exited, status=0/SUCCESS)
   Main PID: 1349 (bash)
      Tasks: 4 (limit: 18451)
     Memory: 277.4M
        CPU: 43.305s
     CGroup: /system.slice/jetson-gpu-monitoring.service
             ├─1349 /bin/bash /opt/nvidia/jetson/services/gpumonitoring/entrypoint.sh
             ├─4791 sudo -E python3 /opt/nvidia/jetson-2.0.0/services/gpumonitoring/__main__.py
             └─4792 python3 /opt/nvidia/jetson-2.0.0/services/gpumonitoring/__main__.py

Aug 08 22:43:27 jetson-xx sudo[13045]: pam_unix(sudo:session): session closed for user root
Aug 08 22:43:27 jetson-xx sudo[13048]:     root : PWD=/ ; USER=root ; COMMAND=/usr/bin/cat /sys/kernel/debug/nvmap/iovmm/clients
Aug 08 22:43:27 jetson-xx sudo[13048]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
Aug 08 22:43:27 jetson-xx sudo[13048]: pam_unix(sudo:session): session closed for user root
Aug 08 22:43:29 jetson-xx sudo[13058]:     root : PWD=/ ; USER=root ; COMMAND=/usr/bin/timeout 0.2 tegrastats --load_cfg ./tstats.txt --interval 100
Aug 08 22:43:29 jetson-xx sudo[13058]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
Aug 08 22:43:29 jetson-xx sudo[13058]: pam_unix(sudo:session): session closed for user root
Aug 08 22:43:29 jetson-xx sudo[13063]:     root : PWD=/ ; USER=root ; COMMAND=/usr/bin/cat /sys/kernel/debug/nvmap/iovmm/clients
Aug 08 22:43:29 jetson-xx sudo[13063]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
Aug 08 22:43:29 jetson-xx sudo[13063]: pam_unix(sudo:session): session closed for user root

When I try to connect to the dashboard on port 3000, I’m redirected to http://192.168.55.1:3000/grafana/login and see error `ERR_TOO_MANY_REDIRECTS`.

I can see that the service is up-and-running using curl on the jetson board or from host:

$ curl -u admin:admin http://192.168.55.1:3000/api/health
{
  “database”: “ok”,
  “version”: “11.3.1”,
  “commit”: “64b556c137a1d9bcacd19ccb16c4cf138c78ca40”
}

is there something I missed?

Hi,

The ERR_TOO_MANY_REDIRECTS error seems related to the cookie.
Could you clean the system cache and try it again?

Thanks.

just tried and it didn’t help.

I tried restarting the ingress service. Status says active (exited) and it seems to exit immediately with Finished Ingress Platform Service like so:

$ sudo systemctl status jetson-ingress.service
● jetson-ingress.service - Ingress Platform Service
     Loaded: loaded (/lib/systemd/system/jetson-ingress.service; disabled; vendor preset: enabled)
     Active: active (exited) since Tue 2025-08-12 20:40:32 PDT; 2min 37s ago
    Process: 25765 ExecStart=docker compose -f /opt/nvidia/jetson/services/ingress/compose.yaml up -d --force-recreate (code=exited, status=0/SUCCESS)
   Main PID: 25765 (code=exited, status=0/SUCCESS)
        CPU: 185ms

Aug 12 20:40:32 xxx systemd[1]: Starting Ingress Platform Service...
Aug 12 20:40:32 xxx docker[25789]: time="2025-08-12T20:40:32-07:00" level=warning msg="/opt/nvidia/jetson/services/ingress/compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion"
Aug 12 20:40:32 xxx docker[25789]:  Container ingress  Creating
Aug 12 20:40:32 xxx docker[25789]:  Container ingress  Created
Aug 12 20:40:32 xxx docker[25789]:  Container ingress  Starting
Aug 12 20:40:32 xxx docker[25789]:  Container ingress  Started
Aug 12 20:40:32 xxx systemd[1]: Finished Ingress Platform Service.

is that normal?

and just to spell it out, this is the redirection happening: from /graphana to /graphana/logging and continuously to that latter URL /graphana/logging until limit of 50 is reached:

$ curl -IL http://localhost:3000
HTTP/1.1 302 Found
Cache-Control: no-store
Content-Type: text/html; charset=utf-8
Location: /grafana/login
Set-Cookie: redirect_to=%2Fgrafana%2F; Path=/grafana; HttpOnly; SameSite=Lax
X-Content-Type-Options: nosniff
X-Frame-Options: deny
X-Xss-Protection: 1; mode=block
Date: Thu, 14 Aug 2025 00:01:20 GMT

HTTP/1.1 302 Found
Cache-Control: no-store
Content-Type: text/html; charset=utf-8
Location: /grafana/login
Set-Cookie: redirect_to=%2Fgrafana%2Flogin; Path=/grafana; HttpOnly; SameSite=Lax
X-Content-Type-Options: nosniff
X-Frame-Options: deny
X-Xss-Protection: 1; mode=block
Date: Thu, 14 Aug 2025 00:01:20 GMT
...

I ran across your post while pulling my own hair out over the same issue. Try http://192.168.55.1:30080/grafana

I don’t have the answer on why, but somewhere in some documentation the 30080 port is mentioned as a Grafana port. I tried it and now I can get some sleep.

well, thanks for the tip @ecalvert , after logging in with default credentials (and skip the request to update password), I can now see stuff:

Trying http://192.168.55.1:3000 again, I see this:

I’m assuming something’s incorrectly configured.
Maybe @AastaLLL can help?

Use 30080/grafana/