This ROSCon 2025 demo shows how to instrument a Jetson AGX Thor running ROS 2 workloads with the Canonical Observability Stack (COS).
The repository includes an example of running COS to monitor Jetson AGX Thor. The reference architecture is documented at Monitor your robot fleet in the field
The diagram shows telemetry flowing from the NVIDIA Jetson AGX Thor into three local agents—registration, exporter, and Grafana—that forward metrics upstream. COS Lite runs on the cloud server side, where the registration and data services ingest this stream and surface dashboards such as Dashboard for Tegrastats to analyze CPU, memory, and GPU trends across the fleet.
Follow these steps on a server machine:
- Install the server stack: sudo bash scripts/robotics-server.sh
- Wait for deployment to complete: juju status --watch 5s --color --relations
- Verify deployment: juju run traefik/0 show-proxied-endpoints
- Get admin password: juju run grafana/0 get-admin-password
Reference: Deploy COS for robotics server in the cloud.
- Flash your Jetson Thor with JetPack using instructions in the official quickstart guide.
- Install the robotics stack: sudo bash scripts/robotics-device-setup.sh
You should see logs similar to the below. Note that the registration agent asks you for the device ID and the server URL.
$ sudo bash scripts/robotics-device-setup.sh 
Setting up cos for robotics snaps..
rob-cos-demo-configuration (basic/beta) 0+git.a903c76 from Ubuntu Robotics Community✓ installed
Installed configuration snap
Please enter the device-uid:
thor_1
Please enter the rob-cos-base-url (i.e: http://192.168.0.1/cos-robotics-model):
http://192.168.7.246/cos-robotics-model
rob-cos-data-sharing (beta) 0+git.ffa1627 from Ubuntu Robotics Community✓ installed
Installed rob-cos-data sharing snap
cos-registration-agent (beta) 0+git.2260522 from Ubuntu Robotics Community✓ installed
Installed cos-registration agent snap
ros2-exporter-agent (beta) 0+git.ff41623 from Ubuntu Robotics Community✓ installed
Installed ros2-exporter-agent snap
foxglove-bridge (humble/beta) 0.8.2 from Ubuntu Robotics Community✓ installed
Installed foxglove-bridge snap
rob-cos-grafana-agent (core24/edge) 0.40.3 from Ubuntu Robotics Community✓ installed
Installed grafana-agent snap
Device setup with cos for roboticsReference: Deploy COS for robotics agent on your robot.
- make build
- make install
- make start-tegrastas
- make start-http-scrape(in a new terminal tab)
Update grafana agent configuration at /var/snap/rob-cos-demo-configuration/common/configuration/grafana-agent.river to work with this http_scrape.
prometheus.scrape "default" {
        targets = concat(
                prometheus.exporter.unix.default.targets,
                [{
                        // Self-collect metrics
                        job         = "agent",
                        __address__ = "127.0.0.1:12345",
                }],
                [{
                       // ROS 2 collect metrics
                        job         = "agent",
                        __address__ = "127.0.0.1:12346",
                }],
        )
        forward_to = [prometheus.remote_write.default.receiver]
}
Login to the grapha dashboard, create a new one, and import tegradashboard.json to it. The dashboard will be populated with the below panels.
Come say hello to our team at booth 51/52: https://roscon2025.expofp.com/?canonical

