MCPcopy
hub / github.com/syncthing/syncthing / sendSummary

Method sendSummary

lib/model/folder_summary.go:360–414  ·  view source on GitHub ↗

sendSummary send the summary events for a single folder

(ctx context.Context, folder string)

Source from the content-addressed store, hash-verified

358
359// sendSummary send the summary events for a single folder
360func (c *folderSummaryService) sendSummary(ctx context.Context, folder string) {
361 // The folder summary contains how many bytes, files etc
362 // are in the folder and how in sync we are.
363 data, err := c.Summary(folder)
364 if err != nil {
365 return
366 }
367 c.evLogger.Log(events.FolderSummary, FolderSummaryEventData{
368 Folder: folder,
369 Summary: data,
370 })
371
372 metricFolderSummary.WithLabelValues(folder, metricScopeGlobal, metricTypeFiles).Set(float64(data.GlobalFiles))
373 metricFolderSummary.WithLabelValues(folder, metricScopeGlobal, metricTypeDirectories).Set(float64(data.GlobalDirectories))
374 metricFolderSummary.WithLabelValues(folder, metricScopeGlobal, metricTypeSymlinks).Set(float64(data.GlobalSymlinks))
375 metricFolderSummary.WithLabelValues(folder, metricScopeGlobal, metricTypeDeleted).Set(float64(data.GlobalDeleted))
376 metricFolderSummary.WithLabelValues(folder, metricScopeGlobal, metricTypeBytes).Set(float64(data.GlobalBytes))
377
378 metricFolderSummary.WithLabelValues(folder, metricScopeLocal, metricTypeFiles).Set(float64(data.LocalFiles))
379 metricFolderSummary.WithLabelValues(folder, metricScopeLocal, metricTypeDirectories).Set(float64(data.LocalDirectories))
380 metricFolderSummary.WithLabelValues(folder, metricScopeLocal, metricTypeSymlinks).Set(float64(data.LocalSymlinks))
381 metricFolderSummary.WithLabelValues(folder, metricScopeLocal, metricTypeDeleted).Set(float64(data.LocalDeleted))
382 metricFolderSummary.WithLabelValues(folder, metricScopeLocal, metricTypeBytes).Set(float64(data.LocalBytes))
383
384 metricFolderSummary.WithLabelValues(folder, metricScopeNeed, metricTypeFiles).Set(float64(data.NeedFiles))
385 metricFolderSummary.WithLabelValues(folder, metricScopeNeed, metricTypeDirectories).Set(float64(data.NeedDirectories))
386 metricFolderSummary.WithLabelValues(folder, metricScopeNeed, metricTypeSymlinks).Set(float64(data.NeedSymlinks))
387 metricFolderSummary.WithLabelValues(folder, metricScopeNeed, metricTypeDeleted).Set(float64(data.NeedDeletes))
388 metricFolderSummary.WithLabelValues(folder, metricScopeNeed, metricTypeBytes).Set(float64(data.NeedBytes))
389
390 for _, devCfg := range c.cfg.Folders()[folder].Devices {
391 select {
392 case <-ctx.Done():
393 return
394 default:
395 }
396
397 if devCfg.DeviceID.Equals(c.id) {
398 // We already know about ourselves.
399 continue
400 }
401
402 // Get completion percentage of this folder for the
403 // remote device.
404 comp, err := c.model.Completion(devCfg.DeviceID, folder)
405 if err != nil {
406 l.Debugf("Error getting completion for folder %v, device %v: %v", folder, devCfg.DeviceID, err)
407 continue
408 }
409 ev := comp.Map()
410 ev["folder"] = folder
411 ev["device"] = devCfg.DeviceID.String()
412 c.evLogger.Log(events.FolderCompletion, ev)
413 }
414}

Callers 1

calculateSummariesMethod · 0.95

Calls 10

SummaryMethod · 0.95
DoneMethod · 0.80
EqualsMethod · 0.80
DebugfMethod · 0.80
MapMethod · 0.80
LogMethod · 0.65
FoldersMethod · 0.65
CompletionMethod · 0.65
StringMethod · 0.65
SetMethod · 0.45

Tested by

no test coverage detected