2023-04-07 15:14:31 +00:00
|
|
|
//go:build dump_metrics
|
|
|
|
|
|
|
|
package metrics
|
|
|
|
|
|
|
|
import (
|
|
|
|
"encoding/json"
|
|
|
|
"flag"
|
|
|
|
"os"
|
|
|
|
"testing"
|
|
|
|
|
2023-04-10 09:22:11 +00:00
|
|
|
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/pool"
|
2023-04-07 15:14:31 +00:00
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
)
|
|
|
|
|
2023-04-10 09:22:11 +00:00
|
|
|
type mock struct{}
|
|
|
|
|
|
|
|
func (m mock) Statistic() pool.Statistic {
|
|
|
|
return pool.Statistic{}
|
|
|
|
}
|
|
|
|
|
2023-04-07 15:14:31 +00:00
|
|
|
var metricsPath = flag.String("out", "", "File to export http gateway metrics to.")
|
|
|
|
|
|
|
|
func TestDescribeAll(t *testing.T) {
|
2023-04-10 09:22:11 +00:00
|
|
|
// to check correct metrics type mapping
|
|
|
|
_ = NewGateMetrics(mock{})
|
|
|
|
|
2023-04-07 15:14:31 +00:00
|
|
|
flag.Parse()
|
|
|
|
|
|
|
|
require.NotEmpty(t, metricsPath, "flag 'out' must be provided to dump metrics description")
|
|
|
|
|
2023-04-10 09:22:11 +00:00
|
|
|
desc := DescribeAll()
|
|
|
|
data, err := json.Marshal(desc)
|
2023-04-07 15:14:31 +00:00
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
err = os.WriteFile(*metricsPath, data, 0644)
|
|
|
|
require.NoError(t, err)
|
|
|
|
}
|