MCPcopy
hub / github.com/wavetermdev/waveterm / UpdateActivity

Function UpdateActivity

pkg/telemetry/telemetry.go:347–438  ·  view source on GitHub ↗
(ctx context.Context, update wshrpc.ActivityUpdate)

Source from the content-addressed store, hash-verified

345}
346
347func UpdateActivity(ctx context.Context, update wshrpc.ActivityUpdate) error {
348 now := time.Now()
349 dayStr := daystr.GetCurDayStr()
350 txErr := wstore.WithTx(ctx, func(tx *wstore.TxWrap) error {
351 var tdata TelemetryData
352 query := `SELECT tdata FROM db_activity WHERE day = ?`
353 found := tx.Get(&tdata, query, dayStr)
354 if !found {
355 query = `INSERT INTO db_activity (day, uploaded, tdata, tzname, tzoffset, clientversion, clientarch, buildtime, osrelease)
356 VALUES ( ?, 0, ?, ?, ?, ?, ?, ?, ?)`
357 tzName, tzOffset := now.Zone()
358 if len(tzName) > MaxTzNameLen {
359 tzName = tzName[0:MaxTzNameLen]
360 }
361 tx.Exec(query, dayStr, tdata, tzName, tzOffset, wavebase.WaveVersion, wavebase.ClientArch(), wavebase.BuildTime, wavebase.UnameKernelRelease())
362 }
363 tdata.FgMinutes += update.FgMinutes
364 tdata.ActiveMinutes += update.ActiveMinutes
365 tdata.OpenMinutes += update.OpenMinutes
366 tdata.WaveAIFgMinutes += update.WaveAIFgMinutes
367 tdata.WaveAIActiveMinutes += update.WaveAIActiveMinutes
368 tdata.NewTab += update.NewTab
369 tdata.NumStartup += update.Startup
370 tdata.NumShutdown += update.Shutdown
371 tdata.SetTabTheme += update.SetTabTheme
372 tdata.NumMagnify += update.NumMagnify
373 tdata.NumPanics += update.NumPanics
374 tdata.NumAIReqs += update.NumAIReqs
375 if update.NumTabs > 0 {
376 tdata.NumTabs = update.NumTabs
377 }
378 if update.NumBlocks > 0 {
379 tdata.NumBlocks = update.NumBlocks
380 }
381 if update.NumWindows > 0 {
382 tdata.NumWindows = update.NumWindows
383 }
384 if update.NumWS > 0 {
385 tdata.NumWS = update.NumWS
386 }
387 if update.NumWSNamed > 0 {
388 tdata.NumWSNamed = update.NumWSNamed
389 }
390 if update.NumSSHConn > 0 && update.NumSSHConn > tdata.NumSSHConn {
391 tdata.NumSSHConn = update.NumSSHConn
392 }
393 if update.NumWSLConn > 0 && update.NumWSLConn > tdata.NumWSLConn {
394 tdata.NumWSLConn = update.NumWSLConn
395 }
396 if len(update.Renderers) > 0 {
397 if tdata.Renderers == nil {
398 tdata.Renderers = make(map[string]int)
399 }
400 for key, val := range update.Renderers {
401 tdata.Renderers[key] += val
402 }
403 }
404 if len(update.WshCmds) > 0 {

Callers 6

panicTelemetryHandlerFunction · 0.92
beforeSendActivityUpdateFunction · 0.92
startupActivityUpdateFunction · 0.92
shutdownActivityUpdateFunction · 0.92
GoUpdateActivityWrapFunction · 0.85

Calls 5

GetCurDayStrFunction · 0.92
WithTxFunction · 0.92
ClientArchFunction · 0.92
UnameKernelReleaseFunction · 0.92
GetMethod · 0.45

Tested by

no test coverage detected