@@ -17,26 +17,38 @@ func RegisterMetrics(reg prometheus.Registerer) error {
1717 return fmt .Errorf ("registering 'responseTime' metric: %w" , err )
1818 }
1919
20+ if err := reg .Register (smokeTest ); err != nil {
21+ return fmt .Errorf ("registering 'smokeTest' metric: %w" , err )
22+ }
23+
2024 return nil
2125}
2226
2327var (
2428 availability = prometheus .NewGaugeVec (
2529 prometheus.GaugeOpts {
26- Name : "reference_addon_sample_availability " ,
30+ Name : metricPrefix + "sample_availability " ,
2731 Help : "external url availability 0-not available and 1-available." ,
2832 },
2933 []string {"url" },
3034 )
3135 responseTime = prometheus .NewGaugeVec (
3236 prometheus.GaugeOpts {
33- Name : "reference_addon_sample_response_time " ,
37+ Name : metricPrefix + "sample_response_time " ,
3438 Help : "external url response time taken." ,
3539 },
3640 []string {"url" },
3741 )
42+ smokeTest = prometheus .NewGauge (
43+ prometheus.GaugeOpts {
44+ Name : metricPrefix + "smoke_test" ,
45+ Help : "smoke test for testing end-to-end metrics flow" ,
46+ },
47+ )
3848)
3949
50+ const metricPrefix = "reference_addon_"
51+
4052func NewResponseSamplerImpl () * ResponseSamplerImpl {
4153 return & ResponseSamplerImpl {}
4254}
@@ -69,3 +81,17 @@ func callExternalURL(externalURL string) (float64, float64) {
6981
7082 return float64 (status ), float64 (time .Since (start ).Milliseconds ())
7183}
84+
85+ func NewSmokeTester () * SmokeTester {
86+ return & SmokeTester {}
87+ }
88+
89+ type SmokeTester struct {}
90+
91+ func (t * SmokeTester ) Enable () {
92+ smokeTest .Set (1 )
93+ }
94+
95+ func (t * SmokeTester ) Disable () {
96+ smokeTest .Set (0 )
97+ }
0 commit comments