diff --git a/lib/model/folder_sendrecv.go b/lib/model/folder_sendrecv.go index 73e3ef184..613aa1ca2 100644 --- a/lib/model/folder_sendrecv.go +++ b/lib/model/folder_sendrecv.go @@ -1854,6 +1854,7 @@ func (f *sendReceiveFolder) moveForConflict(name, lastModBy string, scanChan cha return nil } + metricFolderConflictsTotal.WithLabelValues(f.ID).Inc() newName := conflictName(name, lastModBy) err := f.mtimefs.Rename(name, newName) if fs.IsNotExist(err) { diff --git a/lib/model/metrics.go b/lib/model/metrics.go index ad211aecb..6627d027b 100644 --- a/lib/model/metrics.go +++ b/lib/model/metrics.go @@ -57,6 +57,13 @@ var ( Name: "folder_processed_bytes_total", Help: "Total amount of data processed during folder syncing, per folder ID and data source (network/local_origin/local_other/local_shifted/skipped)", }, []string{"folder", "source"}) + + metricFolderConflictsTotal = promauto.NewCounterVec(prometheus.CounterOpts{ + Namespace: "syncthing", + Subsystem: "model", + Name: "folder_conflicts_total", + Help: "Total number of conflicts", + }, []string{"folder"}) ) const ( @@ -90,4 +97,5 @@ func registerFolderMetrics(folderID string) { metricFolderProcessedBytesTotal.WithLabelValues(folderID, metricSourceLocalOther) metricFolderProcessedBytesTotal.WithLabelValues(folderID, metricSourceLocalShifted) metricFolderProcessedBytesTotal.WithLabelValues(folderID, metricSourceSkipped) + metricFolderConflictsTotal.WithLabelValues(folderID) }