resetting since go runs tests in 1 process
|
metrics . APIRequests . Reset ( )
finalEndpoint := apiPrefix + testEndpoint
assert . Equal ( t , 0.0 , getCounterVecValue ( metrics . APIRequests , map [ string ] string {
"endpoint" : finalEndpoint ,
} ) )
server := prepareServer ( http . StatusOK )
helpers . AssertAPIRequest ( t , server , apiPrefix , & helpers . APIRequest {
Method : http . MethodGet ,
Endpoint : testEndpoint ,
} , & helpers . APIResponse {
StatusCode : http . StatusOK ,
} )
assert . Equal ( t , 1.0 , getCounterVecValue ( metrics . APIRequests , map [ string ] string {
"endpoint" : finalEndpoint ,
} ) )
} , testCaseTimeLimit )
}
func TestAPIResponsesTimeMetric ( t * testing . T ) {
metrics . APIResponsesTime . Reset ( )
err := testutil . CollectAndCompare ( metrics . APIResponsesTime , strings . NewReader ( "" ) )
helpers . FailOnError ( t , err )
metrics . APIResponsesTime . With ( prometheus . Labels { "endpoint" : "test" } ) . Observe ( 5.6 )
expected := `
# HELP api_endpoints_response_time API endpoints response time
# TYPE api_endpoints_response_time histogram
api_endpoints_response_time_bucket{endpoint="test",le="0"} 0
api_endpoints_response_time_bucket{endpoint="test",le="20"} 1
api_endpoints_response_time_bucket{endpoint="test",le="40"} 1
api_endpoints_response_time_bucket{endpoint="test",le="60"} 1
api_endpoints_response_time_bucket{endpoint="test",le="80"} 1
api_endpoints_response_time_bucket{endpoint="test",le="100"} 1
api_endpoints_response_time_bucket{endpoint="test",le="120"} 1
api_endpoints_response_time_bucket{endpoint="test",le="140"} 1
api_endpoints_response_time_bucket{endpoint="test",le="160"} 1
api_endpoints_response_time_bucket{endpoint="test",le="180"} 1
api_endpoints_response_time_bucket{endpoint="test",le="200"} 1
api_endpoints_response_time_bucket{endpoint="test",le="220"} 1
api_endpoints_response_time_bucket{endpoint="test",le="240"} 1
api_endpoints_response_time_bucket{endpoint="test",le="260"} 1
api_endpoints_response_time_bucket{endpoint="test",le="280"} 1
api_endpoints_response_time_bucket{endpoint="test",le="300"} 1
api_endpoints_response_time_bucket{endpoint="test",le="320"} 1
api_endpoints_response_time_bucket{endpoint="test",le="340"} 1
api_endpoints_response_time_bucket{endpoint="test",le="360"} 1
api_endpoints_response_time_bucket{endpoint="test",le="380"} 1
api_endpoints_response_time_bucket{endpoint="test",le="+Inf"} 1
api_endpoints_response_time_sum{endpoint="test"} 5.6
api_endpoints_response_time_count{endpoint="test"} 1
`
err = testutil . CollectAndCompare ( metrics . APIResponsesTime , strings . NewReader ( expected ) )
helpers . FailOnError ( t , err )
}
func TestApiResponseStatusCodesMetric_StatusOK ( t * testing . T ) {
helpers . RunTestWithTimeout ( t , func ( t testing . TB ) {
metrics . APIResponseStatusCodes . Reset ( )
assert . Equal ( t , 0.0 , getCounterVecValue ( metrics . APIResponseStatusCodes , map [ string ] string {
"status_code" : fmt . Sprint ( http . StatusOK ) ,
"endpoint" : fmt . Sprintf ( "%s%s" , apiPrefix , testEndpoint ) ,
} ) )
server := prepareServer ( http . StatusOK )
for i := 0 ; i < 15 ; i ++ {
helpers . AssertAPIRequest ( t , server , apiPrefix , & helpers . APIRequest {
Method : http . MethodGet ,
Endpoint : testEndpoint ,
} , & helpers . APIResponse {
StatusCode : http . StatusOK ,
} )
}
assert . Equal ( t , 15.0 , getCounterVecValue ( metrics . APIResponseStatusCodes , map [ string ] string {
"status_code" : fmt . Sprint ( http . StatusOK ) ,
"endpoint" : fmt . Sprintf ( "%s%s" , apiPrefix , testEndpoint ) ,
} ) )
} , testCaseTimeLimit )
}
func TestApiResponseStatusCodesMetric_StatusBadRequest ( t * testing . T ) {
helpers . RunTestWithTimeout ( t , func ( t testing . TB ) {
metrics . APIResponseStatusCodes . Reset ( )
assert . Equal ( t , 0.0 , getCounterVecValue ( metrics . APIResponseStatusCodes , map [ string ] string {
"status_code" : fmt . Sprint ( http . StatusBadRequest ) ,
"endpoint" : fmt . Sprintf ( "%s%s" , apiPrefix , testEndpoint ) ,
} ) )
server := prepareServer ( http . StatusBadRequest )
helpers . AssertAPIRequest ( t , server , apiPrefix , & helpers . APIRequest {
Method : http . MethodGet ,
Endpoint : testEndpoint ,
} , & helpers . APIResponse {
StatusCode : http . StatusBadRequest ,
} )
assert . Equal ( t , 1.0 , getCounterVecValue ( metrics . APIResponseStatusCodes , map [ string ] string {
"status_code" : fmt . Sprint ( http . StatusBadRequest ) ,
"endpoint" : fmt . Sprintf ( "%s%s" , apiPrefix , testEndpoint ) ,
} ) )
} , testCaseTimeLimit )
}
|