diff options
author | John Cai <jcai@gitlab.com> | 2020-03-21 03:42:59 +0300 |
---|---|---|
committer | John Cai <jcai@gitlab.com> | 2020-03-21 03:42:59 +0300 |
commit | d036be95bba1d82314faf1675b702833e8f92711 (patch) | |
tree | deb404e5a676364925bf5299595423ed74c02a6a | |
parent | 1d8a0091862afee5776465ed9a018b542c418482 (diff) | |
parent | 011ff5d66328c94e6c240f385b881f1ea1da799e (diff) |
Merge branch 'jc-add-metric-for-bad-checksums' into 'master'
Add metric counter for mismatched checksums after replication
Closes #1676
See merge request gitlab-org/gitaly!1943
-rw-r--r-- | changelogs/unreleased/jc-add-metric-for-bad-checksums.yml | 5 | ||||
-rw-r--r-- | internal/praefect/metrics/prometheus.go | 15 | ||||
-rw-r--r-- | internal/praefect/replicator.go | 4 |
3 files changed, 22 insertions, 2 deletions
diff --git a/changelogs/unreleased/jc-add-metric-for-bad-checksums.yml b/changelogs/unreleased/jc-add-metric-for-bad-checksums.yml new file mode 100644 index 000000000..5f5cc0a5b --- /dev/null +++ b/changelogs/unreleased/jc-add-metric-for-bad-checksums.yml @@ -0,0 +1,5 @@ +--- +title: Add metric counter for mismatched checksums after replication +merge_request: 1943 +author: +type: added diff --git a/internal/praefect/metrics/prometheus.go b/internal/praefect/metrics/prometheus.go index f53a176b9..74aa2361a 100644 --- a/internal/praefect/metrics/prometheus.go +++ b/internal/praefect/metrics/prometheus.go @@ -64,9 +64,20 @@ var PrimaryGauge = prometheus.NewGaugeVec( }, []string{"virtual_storage", "gitaly_storage"}, ) +var ChecksumMismatchCounter = prometheus.NewCounterVec( + prometheus.CounterOpts{ + Namespace: "gitaly", + Subsystem: "praefect", + Name: "checksum_mismatch_total", + }, []string{"target", "source"}, +) + func init() { - prometheus.MustRegister(MethodTypeCounter) - prometheus.MustRegister(PrimaryGauge) + prometheus.MustRegister( + MethodTypeCounter, + PrimaryGauge, + ChecksumMismatchCounter, + ) } // Gauge is a subset of a prometheus Gauge diff --git a/internal/praefect/replicator.go b/internal/praefect/replicator.go index d10a5640c..9fa23eeb6 100644 --- a/internal/praefect/replicator.go +++ b/internal/praefect/replicator.go @@ -83,6 +83,10 @@ func (dr defaultReplicator) Replicate(ctx context.Context, job datastore.ReplJob // TODO: Do something meaninful with the result of confirmChecksums if checksums do not match if !checksumsMatch { + metrics.ChecksumMismatchCounter.WithLabelValues( + targetRepository.GetStorageName(), + sourceRepository.GetStorageName(), + ).Inc() dr.log.WithFields(logrus.Fields{ "primary": sourceRepository, "replica": targetRepository, |