frostfs-s3-gw/metrics/desc_test.go

44 lines
865 B
Go
Raw Normal View History

//go:build dump_metrics
package metrics
import (
"encoding/json"
"flag"
"os"
"testing"
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/pool"
"github.com/stretchr/testify/require"
"go.uber.org/zap/zaptest"
)
type mock struct {
}
func (m mock) Statistic() pool.Statistic {
return pool.Statistic{}
}
var metricsPath = flag.String("out", "", "File to export s3 gateway metrics to.")
func TestDescribeAll(t *testing.T) {
// to check correct metrics type mapping
cfg := AppMetricsConfig{
Logger: zaptest.NewLogger(t),
PoolStatistics: mock{},
Enabled: true,
}
_ = NewAppMetrics(cfg)
flag.Parse()
require.NotEmpty(t, metricsPath, "flag 'out' must be provided to dump metrics description")
data, err := json.Marshal(DescribeAll())
require.NoError(t, err)
err = os.WriteFile(*metricsPath, data, 0644)
require.NoError(t, err)
}