Add SystemPerformanceInfo for compute platform telemetry#251
Open
Add SystemPerformanceInfo for compute platform telemetry#251
Conversation
Add new protocol messages to support detailed performance monitoring across both iMX6 (X3) and Jetson Orin NX (X3 Ultra/X7) platforms. New messages: CpuCoreLoad, GpuInfo, DlaInfo, MemoryInfo, ThermalZone, VideoCodecInfo, PowerRailInfo, and a composite SystemPerformanceInfo with corresponding SystemPerformanceInfoTel telemetry wrapper. Deprecates CPUInfo, CPUTemperature in favor of the new messages. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new composite telemetry schema for system performance monitoring across compute platforms (iMX6 and Jetson Orin NX), introducing a richer replacement for legacy CPU-only telemetry while keeping backward compatibility.
Changes:
- Added
SystemPerformanceInfoand supporting messages/enums tomessage_formats.proto(CPU cores, GPU/DLA, memory, thermals, power rails, video codec, queue loads). - Added
SystemPerformanceInfoTelwrapper totelemetry.proto. - Marked
CPUInfo/CPUTemperatureandCPUInfoTelas deprecated via comments pointing to the new message(s).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| protobuf_definitions/telemetry.proto | Adds SystemPerformanceInfoTel and marks CPUInfoTel as deprecated in comments. |
| protobuf_definitions/message_formats.proto | Introduces SystemPerformanceInfo and related component messages; annotates legacy CPU messages as deprecated. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Capitalize "cpu" to "CPU" in telemetry deprecation comment for consistency with existing naming conventions. - Rename cpu_load_average to cpu_utilization to avoid confusion with Linux load average (which is unbounded and reported as 1/5/15 min). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
jp-pino
reviewed
Mar 5, 2026
tegrastats and jtop only expose active/inactive status and clock frequency for NVENC/NVDEC, not utilization percentages. Updated fields from load floats to bool active + frequency pairs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
Adds comprehensive system performance telemetry to support monitoring across both iMX6 (X3) and Jetson Orin NX 16 GB (X3 Ultra / X7) platforms — similar to what
jtop,htop, andtegrastatsprovide.New messages in
message_formats.protoCpuCoreLoadGpuInfoDlaInfoMemoryInfouint64to handle 16 GB+)ThermalZoneThermalZoneIdenum (CPU, GPU, SOC, BOARD, TJ)VideoCodecInfoPowerRailInfoSystemPerformanceInfoNew in
telemetry.protoSystemPerformanceInfoTel— telemetry wrapper forSystemPerformanceInfoDeprecations
CPUInfo— superseded bySystemPerformanceInfoCPUTemperature— superseded bySystemPerformanceInfo.thermal_zonesBoth are kept intact for backward compatibility.
Wire size estimates
Jetson Orin NX (all fields populated: 8 cores, GPU, 2 DLA engines, 4 thermal zones, 4 power rails):
cpu_cores(×8)cpu_load_averagegpudla_engines(×2)memorythermal_zones(×4)power_rails(×4)video_codeciMX6 (4 cores, 1 thermal zone, no GPU/DLA/power/codec): ~133 B
At 1–10 Hz publish rates this is well under 5 KB/s on the wire.
Design decisions
ThermalZoneIdenum instead of string for thermal zones — saves ~25 bytes and provides type safety. Zones are well-known and finite across our platforms.PowerRailInfo.namestays as string — rail names vary across board revisions, so a string is more flexible here.uint64for memory fields —uint32would overflow at 4 GB, insufficient for the 16 GB Orin NX.🤖 Generated with Claude Code