Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Cai <jcai@gitlab.com>2020-03-21 03:42:59 +0300
committerJohn Cai <jcai@gitlab.com>2020-03-21 03:42:59 +0300
commitd036be95bba1d82314faf1675b702833e8f92711 (patch)
treedeb404e5a676364925bf5299595423ed74c02a6a
parent1d8a0091862afee5776465ed9a018b542c418482 (diff)
parent011ff5d66328c94e6c240f385b881f1ea1da799e (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.yml5
-rw-r--r--internal/praefect/metrics/prometheus.go15
-rw-r--r--internal/praefect/replicator.go4
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,