@@ -95,6 +95,24 @@ private static void reportConfig(Map<String, Object> config, long timestampMilli
9595 Logger .debug ("Telemetry" , "Uploaded a CONFIG event" );
9696 }
9797
98+ private static void reportSystemInfo (WalSystemInfoCodec .SystemInfo info , long timestampMillis ) {
99+ if (!enable ) return ;
100+ Sentry .logger ().log (
101+ SentryLogLevel .INFO ,
102+ SentryLogParameters .create (
103+ new SentryLongDate (timestampMillis * 1_000_000L ),
104+ SentryAttributes .of (
105+ SentryAttribute .stringAttribute ("gpu.name" , info .gpuName ()),
106+ SentryAttribute .stringAttribute ("gpu.version" , info .gpuVersion ()),
107+ SentryAttribute .stringAttribute ("os.name" , info .osName ()),
108+ SentryAttribute .stringAttribute ("os.arch" , info .osArch ())
109+ )
110+ ),
111+ "SYSTEM_INFO"
112+ );
113+ Logger .debug ("Telemetry" , "Uploaded a SYSTEM_INFO event" );
114+ }
115+
98116 private static void reportCorePerformance (
99117 CorePerformanceSnapshot performance ,
100118 String asset ,
@@ -245,6 +263,8 @@ private static void consumeWalRecords(List<WalRecord> records) {
245263 Map <String , Object > configSnapshot = null ;
246264 long configTimestamp = 0 ;
247265 List <ModelHeartbeatRecord > modelHeartbeats = new ArrayList <>();
266+ WalSystemInfoCodec .SystemInfo systemInfo = null ;
267+ long systemInfoTimestamp = 0 ;
248268 for (WalRecord record : records ) {
249269 try {
250270 if (record .type ().equals (WalCoreHeartbeatCodec .INSTANCE .type ())) {
@@ -259,12 +279,17 @@ private static void consumeWalRecords(List<WalRecord> records) {
259279 } else if (record .type ().equals (WalConfigCodec .INSTANCE .type ())) {
260280 configSnapshot = WalConfigCodec .INSTANCE .decode (record .payload ());
261281 configTimestamp = record .timestamp ();
282+ } else if (record .type ().equals (WalSystemInfoCodec .INSTANCE .type ())) {
283+ systemInfo = WalSystemInfoCodec .INSTANCE .decode (record .payload ());
284+ systemInfoTimestamp = record .timestamp ();
262285 }
263286 } catch (IOException ignored ) {
264287 }
265288 }
266289 if (configSnapshot != null )
267290 reportConfig (configSnapshot , configTimestamp );
291+ if (systemInfo != null )
292+ reportSystemInfo (systemInfo , systemInfoTimestamp );
268293 for (ModelHeartbeatRecord heartbeatRecord : modelHeartbeats ) {
269294 reportCorePerformance (
270295 heartbeatRecord .heartbeat ().performance (),
0 commit comments