github.com/verrazzano/verrazzano@v1.7.1/tests/e2e/pkg/test/framework/metrics/metrics.go (about) 1 // Copyright (c) 2021, 2022, Oracle and/or its affiliates. 2 // Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. 3 4 package metrics 5 6 import ( 7 "fmt" 8 "time" 9 ) 10 11 const ( 12 defaultPushInterval time.Duration = time.Minute 13 ) 14 15 type MetricsReceiver interface { 16 SetGauge(name string, value float64) error 17 IncrementCounter(name string) error 18 } 19 20 type MetricsReceiverConfig interface { 21 GetReceiverType() string 22 } 23 24 func NewMetricsReceiver(cfg MetricsReceiverConfig) (MetricsReceiver, error) { 25 switch cfg.GetReceiverType() { 26 case "PrometheusMetricsReceiver": 27 promConfig := cfg.(*PrometheusMetricsReceiverConfig) 28 //reg := prom.NewRegistry() 29 pushInterval := promConfig.PushInterval 30 if pushInterval == 0 { 31 pushInterval = defaultPushInterval 32 } 33 promConfig.PushInterval = pushInterval 34 return NewPrometheusMetricsReceiver(*promConfig) 35 case "FileMetricsReceiver": 36 return nil, nil 37 default: 38 return nil, fmt.Errorf("unknown MetricsReceiver type %s", cfg.GetReceiverType()) 39 } 40 }