diff options
author | Jacob Vosmaer <jacob@gitlab.com> | 2019-12-04 17:29:49 +0300 |
---|---|---|
committer | Jacob Vosmaer <jacob@gitlab.com> | 2019-12-04 17:29:49 +0300 |
commit | 4ba21db245f547ce2e7b036803b30da99f091300 (patch) | |
tree | 327885215e75ddbc9dd2a2540cc3e1f4b1d47a70 | |
parent | 07c5914b25d90c69407358d63c2192b3eb0eabab (diff) |
Add sanity check counter for feature flags
-rw-r--r-- | internal/metadata/featureflag/grpc_header.go | 22 |
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 } |