@@ -29,6 +29,11 @@ import (
2929 "k8s.io/component-base/metrics/testutil"
3030)
3131
32+ const (
33+ SidecarOperationMetric = "csi_sidecar_operations_seconds"
34+ ProcessStartTimeMetric = "process_start_time_seconds"
35+ )
36+
3237func TestRecordMetrics (t * testing.T ) {
3338 testcases := map [string ]struct {
3439 subsystem string
@@ -102,15 +107,17 @@ func testRecordMetrics(t *testing.T, subsystem string, stabilityLevel metrics.St
102107 csi_sidecar_operations_seconds_sum{driver_name="fake.csi.driver.io",grpc_status_code="OK",method_name="/csi.v1.Controller/ControllerGetCapabilities"} 20
103108 csi_sidecar_operations_seconds_count{driver_name="fake.csi.driver.io",grpc_status_code="OK",method_name="/csi.v1.Controller/ControllerGetCapabilities"} 1
104109 `
110+ metricName := SidecarOperationMetric
105111 if subsystem != "" {
106112 expectedMetrics = strings .Replace (expectedMetrics , "csi_sidecar" , subsystem , - 1 )
113+ metricName = strings .Replace (metricName , "csi_sidecar" , subsystem , - 1 )
107114 }
108115 if stabilityLevel != "" {
109116 expectedMetrics = strings .Replace (expectedMetrics , "ALPHA" , string (stabilityLevel ), - 1 )
110117 }
111118
112119 if err := testutil .GatherAndCompare (
113- cmm .GetRegistry (), strings .NewReader (expectedMetrics )); err != nil {
120+ cmm .GetRegistry (), strings .NewReader (expectedMetrics ), metricName ); err != nil {
114121 t .Fatal (err )
115122 }
116123}
@@ -150,8 +157,9 @@ func TestFixedLabels(t *testing.T) {
150157 csi_sidecar_operations_seconds_count{a="111",b="222",driver_name="unknown-driver",grpc_status_code="OK",method_name="myOperation"} 1
151158 `
152159
160+ time .Sleep (1000 )
153161 if err := testutil .GatherAndCompare (
154- cmm .GetRegistry (), strings .NewReader (expectedMetrics )); err != nil {
162+ cmm .GetRegistry (), strings .NewReader (expectedMetrics ), SidecarOperationMetric ); err != nil {
155163 t .Fatal (err )
156164 }
157165}
@@ -200,7 +208,7 @@ func TestVaryingLabels(t *testing.T) {
200208 `
201209
202210 if err := testutil .GatherAndCompare (
203- cmm .GetRegistry (), strings .NewReader (expectedMetrics )); err != nil {
211+ cmm .GetRegistry (), strings .NewReader (expectedMetrics ), SidecarOperationMetric ); err != nil {
204212 t .Fatal (err )
205213 }
206214}
@@ -273,7 +281,7 @@ func TestTwoVaryingLabels(t *testing.T) {
273281 `
274282
275283 if err := testutil .GatherAndCompare (
276- cmm .GetRegistry (), strings .NewReader (expectedMetrics )); err != nil {
284+ cmm .GetRegistry (), strings .NewReader (expectedMetrics ), SidecarOperationMetric ); err != nil {
277285 t .Fatal (err )
278286 }
279287}
@@ -318,7 +326,7 @@ func TestVaryingLabelsBackfill(t *testing.T) {
318326 `
319327
320328 if err := testutil .GatherAndCompare (
321- cmm .GetRegistry (), strings .NewReader (expectedMetrics )); err != nil {
329+ cmm .GetRegistry (), strings .NewReader (expectedMetrics ), SidecarOperationMetric ); err != nil {
322330 t .Fatal (err )
323331 }
324332}
@@ -392,7 +400,7 @@ func TestCombinedLabels(t *testing.T) {
392400 `
393401
394402 if err := testutil .GatherAndCompare (
395- cmm .GetRegistry (), strings .NewReader (expectedMetrics )); err != nil {
403+ cmm .GetRegistry (), strings .NewReader (expectedMetrics ), SidecarOperationMetric ); err != nil {
396404 t .Fatal (err )
397405 }
398406}
@@ -431,7 +439,7 @@ func TestRecordMetrics_NoDriverName(t *testing.T) {
431439 `
432440
433441 if err := testutil .GatherAndCompare (
434- cmm .GetRegistry (), strings .NewReader (expectedMetrics )); err != nil {
442+ cmm .GetRegistry (), strings .NewReader (expectedMetrics ), SidecarOperationMetric ); err != nil {
435443 t .Fatal (err )
436444 }
437445}
@@ -469,7 +477,7 @@ func TestRecordMetrics_Negative(t *testing.T) {
469477 csi_sidecar_operations_seconds_count{driver_name="fake.csi.driver.io",grpc_status_code="InvalidArgument",method_name="myOperation"} 1
470478 `
471479 if err := testutil .GatherAndCompare (
472- cmm .GetRegistry (), strings .NewReader (expectedMetrics )); err != nil {
480+ cmm .GetRegistry (), strings .NewReader (expectedMetrics ), SidecarOperationMetric ); err != nil {
473481 t .Fatal (err )
474482 }
475483}
@@ -524,10 +532,10 @@ func TestStartMetricsEndPoint_Noop(t *testing.T) {
524532 csi_sidecar_operations_seconds_bucket{driver_name="fake.csi.driver.io",grpc_status_code="OK",method_name="/csi.v1.Controller/ControllerGetCapabilities",le="+Inf"} 1
525533 csi_sidecar_operations_seconds_sum{driver_name="fake.csi.driver.io",grpc_status_code="OK",method_name="/csi.v1.Controller/ControllerGetCapabilities"} 20
526534 csi_sidecar_operations_seconds_count{driver_name="fake.csi.driver.io",grpc_status_code="OK",method_name="/csi.v1.Controller/ControllerGetCapabilities"} 1
527- `
535+ `
528536
529537 actualMetrics := string (contentBytes )
530- if err := VerifyMetricsMatch (expectedMetrics , actualMetrics , "" ); err != nil {
538+ if err := VerifyMetricsMatch (expectedMetrics , actualMetrics , ProcessStartTimeMetric ); err != nil {
531539 t .Fatalf ("Metrics returned by end point do not match expectation: %v" , err )
532540 }
533541}
0 commit comments