Like Prometheus, but for logs.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
loki/integration/parse_metrics_test.go

43 lines
2.0 KiB

//go:build integration
package integration
import (
"testing"
"github.com/stretchr/testify/require"
)
var exampleMetricOutput = `
# HELP loki_compactor_delete_requests_processed_total Number of delete requests processed per user
# TYPE loki_compactor_delete_requests_processed_total counter
loki_compactor_delete_requests_processed_total{user="eEWxEcgwRQcf"} 1
# HELP loki_compactor_delete_requests_received_total Number of delete requests received per user
# TYPE loki_compactor_delete_requests_received_total counter
loki_compactor_delete_requests_received_total{user="eEWxEcgwRQcf"} 1
# HELP loki_compactor_load_pending_requests_attempts_total Number of attempts that were made to load pending requests with status
# TYPE loki_compactor_load_pending_requests_attempts_total counter
loki_compactor_load_pending_requests_attempts_total{status="success"} 57
# HELP loki_compactor_oldest_pending_delete_request_age_seconds Age of oldest pending delete request in seconds, since they are over their cancellation period
# TYPE loki_compactor_oldest_pending_delete_request_age_seconds gauge
loki_compactor_oldest_pending_delete_request_age_seconds 0
# HELP loki_compactor_pending_delete_requests_count Count of delete requests which are over their cancellation period and have not finished processing yet
# TYPE loki_compactor_pending_delete_requests_count gauge
loki_compactor_pending_delete_requests_count 0
`
func TestExtractCounterMetric(t *testing.T) {
val, labels, err := extractMetric("loki_compactor_oldest_pending_delete_request_age_seconds", exampleMetricOutput)
require.NoError(t, err)
require.NotNil(t, labels)
require.Len(t, labels, 0)
require.Equal(t, float64(0), val)
val, labels, err = extractMetric("loki_compactor_delete_requests_processed_total", exampleMetricOutput)
require.NoError(t, err)
require.NotNil(t, labels)
require.Len(t, labels, 1)
require.Contains(t, labels, "user")
require.Equal(t, labels["user"], "eEWxEcgwRQcf")
require.Equal(t, float64(1), val)
}