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:
authorJacob Vosmaer <jacob@gitlab.com>2019-12-04 17:29:49 +0300
committerJacob Vosmaer <jacob@gitlab.com>2019-12-04 17:29:49 +0300
commit4ba21db245f547ce2e7b036803b30da99f091300 (patch)
tree327885215e75ddbc9dd2a2540cc3e1f4b1d47a70
parent07c5914b25d90c69407358d63c2192b3eb0eabab (diff)
Add sanity check counter for feature flags
-rw-r--r--internal/metadata/featureflag/grpc_header.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/internal/metadata/featureflag/grpc_header.go b/internal/metadata/featureflag/grpc_header.go
index 3d88c80d1..00d6e77ab 100644
--- a/internal/metadata/featureflag/grpc_header.go
+++ b/internal/metadata/featureflag/grpc_header.go
@@ -3,14 +3,36 @@ package featureflag
import (
"context"
"fmt"
+ "strconv"
"strings"
+ "github.com/prometheus/client_golang/prometheus"
"google.golang.org/grpc/metadata"
)
+var (
+ flagChecks = prometheus.NewCounterVec(
+ prometheus.CounterOpts{
+ Name: "gitaly_feature_flag_checks_total",
+ Help: "Number of enabled/disabled checks for Gitaly server side feature flags",
+ },
+ []string{"flag", "enabled"},
+ )
+)
+
+func init() {
+ prometheus.MustRegister(flagChecks)
+}
+
// IsEnabled checks if the feature flag is enabled for the passed context.
// Only return true if the metadata for the feature flag is set to "true"
func IsEnabled(ctx context.Context, flag string) bool {
+ enabled := isEnabled(ctx, flag)
+ flagChecks.WithLabelValues(flag, strconv.FormatBool(enabled)).Inc()
+ return enabled
+}
+
+func isEnabled(ctx context.Context, flag string) bool {
if flag == "" {
return false
}