// Code generated by mdatagen. DO NOT EDIT.

package metadata

import (
	"testing"

	"github.com/stretchr/testify/assert"
	"go.opentelemetry.io/collector/pdata/pcommon"
	"go.opentelemetry.io/collector/pdata/pmetric"
	"go.opentelemetry.io/collector/receiver/receivertest"
	"go.uber.org/zap"
	"go.uber.org/zap/zaptest/observer"
)

type testDataSet int

const (
	testDataSetDefault testDataSet = iota
	testDataSetAll
	testDataSetNone
)

func TestMetricsBuilder(t *testing.T) {
	tests := []struct {
		name        string
		metricsSet  testDataSet
		resAttrsSet testDataSet
		expectEmpty bool
	}{
		{
			name: "default",
		},
		{
			name:        "all_set",
			metricsSet:  testDataSetAll,
			resAttrsSet: testDataSetAll,
		},
		{
			name:        "none_set",
			metricsSet:  testDataSetNone,
			resAttrsSet: testDataSetNone,
			expectEmpty: true,
		},
		{
			name:        "filter_set_include",
			resAttrsSet: testDataSetAll,
		},
		{
			name:        "filter_set_exclude",
			resAttrsSet: testDataSetAll,
			expectEmpty: true,
		},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			start := pcommon.Timestamp(1_000_000_000)
			ts := pcommon.Timestamp(1_000_001_000)
			observedZapCore, observedLogs := observer.New(zap.WarnLevel)
			settings := receivertest.NewNopSettings()
			settings.Logger = zap.New(observedZapCore)
			mb := NewMetricsBuilder(loadMetricsBuilderConfig(t, tt.name), settings, WithStartTime(start))

			expectedWarnings := 0

			assert.Equal(t, expectedWarnings, observedLogs.Len())

			defaultMetricsCount := 0
			allMetricsCount := 0

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudCdcChangefeedLatencyDataPoint(ts, 1, "changefeed_id-val", "cluster_name-val", "instance-val", "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudCdcChangefeedReplicaRowsDataPoint(ts, 1, "changefeed_id-val", "cluster_name-val", "instance-val", "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudCdcChangefeedResolvedTsLagDataPoint(ts, 1, "changefeed_id-val", "cluster_name-val", "instance-val", "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudCdcChangefeedStatusDataPoint(ts, 1, "changefeed_id-val", "cluster_name-val", "instance-val", "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudCdcCheckpointTsDataPoint(ts, 1, "changefeed_id-val", "cluster_name-val", "instance-val", "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbActiveConnectionsDataPoint(ts, 1, "cluster_name-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbAverageQueryDurationDataPoint(ts, 1, "sql_type-val", "cluster_name-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbColumnarStorageUsedBytesDataPoint(ts, 1, "cluster_name-val", "cluster_id-val", "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbCommandPerSecondDataPoint(ts, 1, "type-val", "cluster_name-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbComponentUptimeDataPoint(ts, 1, "cluster_name-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbConnectionsDataPoint(ts, 1, "cluster_name-val", "instance-val", "cluster_id-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbDatabaseTimeDataPoint(ts, 1, "sql_type-val", "cluster_name-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbDisconnectionsDataPoint(ts, 1, "result-val", "cluster_name-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbFailedQueriesDataPoint(ts, 1, "type-val", "cluster_name-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbFailedQueriesTotalDataPoint(ts, 1, "type-val", "cluster_name-val", "cluster_id-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbKvRequestDurationDataPoint(ts, 1, "type-val", "cluster_name-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbQueriesTotalDataPoint(ts, 1, "sql_type-val", "cluster_name-val", "cluster_id-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbQueriesUsingPlanCacheOpsDataPoint(ts, 1, "type-val", "cluster_name-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbQueryDurationSecondsCountDataPoint(ts, 1, "sql_type-val", "cluster_name-val", "cluster_id-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbQueryDurationSecondsSumDataPoint(ts, 1, "sql_type-val", "cluster_name-val", "cluster_id-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbQueryPerSecondDataPoint(ts, 1, "type-val", "cluster_name-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbRowStorageUsedBytesDataPoint(ts, 1, "cluster_name-val", "cluster_id-val", "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbTotalConnectionDataPoint(ts, 1, "cluster_name-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDbTransactionPerSecondDataPoint(ts, 1, "txn_mode-val", "type-val", "cluster_name-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDmRelayReadErrorCountDataPoint(ts, 1, "task-val", "job_id-val", "cluster_name-val", "instance-val", "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDmSyncerReplicationLagBucketDataPoint(ts, 1, "task-val", "job_id-val", "cluster_name-val", "instance-val", "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDmSyncerReplicationLagGaugeDataPoint(ts, 1, "task-val", "job_id-val", "cluster_name-val", "instance-val", "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudDmTaskStateDataPoint(ts, 1, "task-val", "job_id-val", "cluster_name-val", "instance-val", "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudNodeCPUCapacityCoresDataPoint(ts, 1, "cluster_name-val", "cluster_id-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudNodeCPUSecondsTotalDataPoint(ts, 1, "cluster_name-val", "cluster_id-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudNodeCPUSecondsTotalRateDataPoint(ts, 1, "cluster_name-val", "cluster_id-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudNodeDiskReadLatencyDataPoint(ts, 1, "cluster_name-val", "instance-val", AttributeComponentTidb, "project_name-val", "device-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudNodeDiskWriteLatencyDataPoint(ts, 1, "cluster_name-val", "instance-val", AttributeComponentTidb, "project_name-val", "device-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudNodeMemoryAvailableBytesDataPoint(ts, 1, "cluster_name-val", "cluster_id-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudNodeMemoryCapacityBytesDataPoint(ts, 1, "cluster_name-val", "cluster_id-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudNodeMemoryUsedBytesDataPoint(ts, 1, "cluster_name-val", "cluster_id-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudNodeStorageAvailableBytesDataPoint(ts, 1, "cluster_name-val", "cluster_id-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudNodeStorageCapacityBytesDataPoint(ts, 1, "cluster_name-val", "cluster_id-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudNodeStorageUsedBytesDataPoint(ts, 1, "cluster_name-val", "cluster_id-val", "instance-val", AttributeComponentTidb, "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudResourceManagerResourceRequestUnitTotalDataPoint(ts, 1, "resource_group-val", "cluster_name-val", "instance-val", "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudResourceManagerResourceUnitReadRequestUnitDataPoint(ts, 1, "resource_group-val", "cluster_name-val", "instance-val", "project_name-val")

			defaultMetricsCount++
			allMetricsCount++
			mb.RecordTidbCloudResourceManagerResourceUnitWriteRequestUnitDataPoint(ts, 1, "resource_group-val", "cluster_name-val", "instance-val", "project_name-val")

			rb := mb.NewResourceBuilder()
			rb.SetClusterID("cluster_id-val")
			rb.SetClusterName("cluster_name-val")
			rb.SetProjectID("project_id-val")
			rb.SetProjectName("project_name-val")
			rb.SetServicePlan("service_plan-val")
			res := rb.Emit()
			metrics := mb.Emit(WithResource(res))

			if tt.expectEmpty {
				assert.Equal(t, 0, metrics.ResourceMetrics().Len())
				return
			}

			assert.Equal(t, 1, metrics.ResourceMetrics().Len())
			rm := metrics.ResourceMetrics().At(0)
			assert.Equal(t, res, rm.Resource())
			assert.Equal(t, 1, rm.ScopeMetrics().Len())
			ms := rm.ScopeMetrics().At(0).Metrics()
			if tt.metricsSet == testDataSetDefault {
				assert.Equal(t, defaultMetricsCount, ms.Len())
			}
			if tt.metricsSet == testDataSetAll {
				assert.Equal(t, allMetricsCount, ms.Len())
			}
			validatedMetrics := make(map[string]bool)
			for i := 0; i < ms.Len(); i++ {
				switch ms.At(i).Name() {
				case "tidb_cloud.cdc_changefeed_latency":
					assert.False(t, validatedMetrics["tidb_cloud.cdc_changefeed_latency"], "Found a duplicate in the metrics slice: tidb_cloud.cdc_changefeed_latency")
					validatedMetrics["tidb_cloud.cdc_changefeed_latency"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The checkpoint ts lag of a changefeed's owner.", ms.At(i).Description())
					assert.Equal(t, "s", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("changefeed_id")
					assert.True(t, ok)
					assert.EqualValues(t, "changefeed_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.cdc_changefeed_replica_rows":
					assert.False(t, validatedMetrics["tidb_cloud.cdc_changefeed_replica_rows"], "Found a duplicate in the metrics slice: tidb_cloud.cdc_changefeed_replica_rows")
					validatedMetrics["tidb_cloud.cdc_changefeed_replica_rows"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The number of replica rows that ChangeFeed writes to the downstream per second.", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("changefeed_id")
					assert.True(t, ok)
					assert.EqualValues(t, "changefeed_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.cdc_changefeed_resolved_ts_lag":
					assert.False(t, validatedMetrics["tidb_cloud.cdc_changefeed_resolved_ts_lag"], "Found a duplicate in the metrics slice: tidb_cloud.cdc_changefeed_resolved_ts_lag")
					validatedMetrics["tidb_cloud.cdc_changefeed_resolved_ts_lag"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The resolved ts lag of a changefeed's owner.", ms.At(i).Description())
					assert.Equal(t, "s", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("changefeed_id")
					assert.True(t, ok)
					assert.EqualValues(t, "changefeed_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.cdc_changefeed_status":
					assert.False(t, validatedMetrics["tidb_cloud.cdc_changefeed_status"], "Found a duplicate in the metrics slice: tidb_cloud.cdc_changefeed_status")
					validatedMetrics["tidb_cloud.cdc_changefeed_status"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The status of a changefeed.", ms.At(i).Description())
					assert.Equal(t, "s", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeInt, dp.ValueType())
					assert.Equal(t, int64(1), dp.IntValue())
					attrVal, ok := dp.Attributes().Get("changefeed_id")
					assert.True(t, ok)
					assert.EqualValues(t, "changefeed_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.cdc_checkpoint_ts":
					assert.False(t, validatedMetrics["tidb_cloud.cdc_checkpoint_ts"], "Found a duplicate in the metrics slice: tidb_cloud.cdc_checkpoint_ts")
					validatedMetrics["tidb_cloud.cdc_checkpoint_ts"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The checkpoint timestamp of a changefeed.", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("changefeed_id")
					assert.True(t, ok)
					assert.EqualValues(t, "changefeed_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_active_connections":
					assert.False(t, validatedMetrics["tidb_cloud.db_active_connections"], "Found a duplicate in the metrics slice: tidb_cloud.db_active_connections")
					validatedMetrics["tidb_cloud.db_active_connections"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The number of active connection.", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_average_query_duration":
					assert.False(t, validatedMetrics["tidb_cloud.db_average_query_duration"], "Found a duplicate in the metrics slice: tidb_cloud.db_average_query_duration")
					validatedMetrics["tidb_cloud.db_average_query_duration"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The duration between the time that the client's network request is sent to TiDB and the time that the request is returned to the client after TiDB has executed it. In general, client requests are sent in the form of SQL statements, but can also include the execution time of commands such as COM_PING, COM_SLEEP, COM_STMT_FETCH, and COM_SEND_LONG_DATA. Because TiDB supports Multi-Query, it supports sending multiple SQL statements at one time, such as select 1; select 1; select 1;. In this case, the total execution time of this query includes the execution time of all SQL statements.", ms.At(i).Description())
					assert.Equal(t, "s", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("sql_type")
					assert.True(t, ok)
					assert.EqualValues(t, "sql_type-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_columnar_storage_used_bytes":
					assert.False(t, validatedMetrics["tidb_cloud.db_columnar_storage_used_bytes"], "Found a duplicate in the metrics slice: tidb_cloud.db_columnar_storage_used_bytes")
					validatedMetrics["tidb_cloud.db_columnar_storage_used_bytes"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The columnar (TiFlash) storage usage for a TiDB X cluster.", ms.At(i).Description())
					assert.Equal(t, "By", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_id")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_command_per_second":
					assert.False(t, validatedMetrics["tidb_cloud.db_command_per_second"], "Found a duplicate in the metrics slice: tidb_cloud.db_command_per_second")
					validatedMetrics["tidb_cloud.db_command_per_second"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The number of commands processed by TiDB per second, which is classified according to the success or failure of command execution results.", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("type")
					assert.True(t, ok)
					assert.EqualValues(t, "type-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_component_uptime":
					assert.False(t, validatedMetrics["tidb_cloud.db_component_uptime"], "Found a duplicate in the metrics slice: tidb_cloud.db_component_uptime")
					validatedMetrics["tidb_cloud.db_component_uptime"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The uptime of tidb components", ms.At(i).Description())
					assert.Equal(t, "s", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_connections":
					assert.False(t, validatedMetrics["tidb_cloud.db_connections"], "Found a duplicate in the metrics slice: tidb_cloud.db_connections")
					validatedMetrics["tidb_cloud.db_connections"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "Current number of connections in TiDB server.", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeInt, dp.ValueType())
					assert.Equal(t, int64(1), dp.IntValue())
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_id")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_database_time":
					assert.False(t, validatedMetrics["tidb_cloud.db_database_time"], "Found a duplicate in the metrics slice: tidb_cloud.db_database_time")
					validatedMetrics["tidb_cloud.db_database_time"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "A time model statistic that is the sum of all process' CPU consumption plus the sum of non-idle wait time.", ms.At(i).Description())
					assert.Equal(t, "s", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("sql_type")
					assert.True(t, ok)
					assert.EqualValues(t, "sql_type-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_disconnections":
					assert.False(t, validatedMetrics["tidb_cloud.db_disconnections"], "Found a duplicate in the metrics slice: tidb_cloud.db_disconnections")
					validatedMetrics["tidb_cloud.db_disconnections"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The number of clients disconnected.", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("result")
					assert.True(t, ok)
					assert.EqualValues(t, "result-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_failed_queries":
					assert.False(t, validatedMetrics["tidb_cloud.db_failed_queries"], "Found a duplicate in the metrics slice: tidb_cloud.db_failed_queries")
					validatedMetrics["tidb_cloud.db_failed_queries"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The statistics of error types (such as syntax errors and primary key conflicts) according to the errors occurred when executing SQL statements per second on each TiDB instance.", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("type")
					assert.True(t, ok)
					assert.EqualValues(t, "type-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_failed_queries_total":
					assert.False(t, validatedMetrics["tidb_cloud.db_failed_queries_total"], "Found a duplicate in the metrics slice: tidb_cloud.db_failed_queries_total")
					validatedMetrics["tidb_cloud.db_failed_queries_total"] = true
					assert.Equal(t, pmetric.MetricTypeSum, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Sum().DataPoints().Len())
					assert.Equal(t, "The total number of execution errors.", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					assert.True(t, ms.At(i).Sum().IsMonotonic())
					assert.Equal(t, pmetric.AggregationTemporalityUnspecified, ms.At(i).Sum().AggregationTemporality())
					dp := ms.At(i).Sum().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeInt, dp.ValueType())
					assert.Equal(t, int64(1), dp.IntValue())
					attrVal, ok := dp.Attributes().Get("type")
					assert.True(t, ok)
					assert.EqualValues(t, "type-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_id")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_kv_request_duration":
					assert.False(t, validatedMetrics["tidb_cloud.db_kv_request_duration"], "Found a duplicate in the metrics slice: tidb_cloud.db_kv_request_duration")
					validatedMetrics["tidb_cloud.db_kv_request_duration"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "TiDB KV Request Duration", ms.At(i).Description())
					assert.Equal(t, "s", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("type")
					assert.True(t, ok)
					assert.EqualValues(t, "type-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_queries_total":
					assert.False(t, validatedMetrics["tidb_cloud.db_queries_total"], "Found a duplicate in the metrics slice: tidb_cloud.db_queries_total")
					validatedMetrics["tidb_cloud.db_queries_total"] = true
					assert.Equal(t, pmetric.MetricTypeSum, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Sum().DataPoints().Len())
					assert.Equal(t, "The total number of queries.", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					assert.True(t, ms.At(i).Sum().IsMonotonic())
					assert.Equal(t, pmetric.AggregationTemporalityUnspecified, ms.At(i).Sum().AggregationTemporality())
					dp := ms.At(i).Sum().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("sql_type")
					assert.True(t, ok)
					assert.EqualValues(t, "sql_type-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_id")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_queries_using_plan_cache_ops":
					assert.False(t, validatedMetrics["tidb_cloud.db_queries_using_plan_cache_ops"], "Found a duplicate in the metrics slice: tidb_cloud.db_queries_using_plan_cache_ops")
					validatedMetrics["tidb_cloud.db_queries_using_plan_cache_ops"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The statistics of queries using Plan Cache per second. The execution plan cache only supports the prepared statement command. If the value is 0, the execution plan cache has not been hit.", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("type")
					assert.True(t, ok)
					assert.EqualValues(t, "type-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_query_duration_seconds.count":
					assert.False(t, validatedMetrics["tidb_cloud.db_query_duration_seconds.count"], "Found a duplicate in the metrics slice: tidb_cloud.db_query_duration_seconds.count")
					validatedMetrics["tidb_cloud.db_query_duration_seconds.count"] = true
					assert.Equal(t, pmetric.MetricTypeSum, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Sum().DataPoints().Len())
					assert.Equal(t, "Total number of handled queries in server", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					assert.True(t, ms.At(i).Sum().IsMonotonic())
					assert.Equal(t, pmetric.AggregationTemporalityUnspecified, ms.At(i).Sum().AggregationTemporality())
					dp := ms.At(i).Sum().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeInt, dp.ValueType())
					assert.Equal(t, int64(1), dp.IntValue())
					attrVal, ok := dp.Attributes().Get("sql_type")
					assert.True(t, ok)
					assert.EqualValues(t, "sql_type-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_id")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_query_duration_seconds.sum":
					assert.False(t, validatedMetrics["tidb_cloud.db_query_duration_seconds.sum"], "Found a duplicate in the metrics slice: tidb_cloud.db_query_duration_seconds.sum")
					validatedMetrics["tidb_cloud.db_query_duration_seconds.sum"] = true
					assert.Equal(t, pmetric.MetricTypeSum, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Sum().DataPoints().Len())
					assert.Equal(t, "Total number of handled queries in server", ms.At(i).Description())
					assert.Equal(t, "s", ms.At(i).Unit())
					assert.True(t, ms.At(i).Sum().IsMonotonic())
					assert.Equal(t, pmetric.AggregationTemporalityUnspecified, ms.At(i).Sum().AggregationTemporality())
					dp := ms.At(i).Sum().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeInt, dp.ValueType())
					assert.Equal(t, int64(1), dp.IntValue())
					attrVal, ok := dp.Attributes().Get("sql_type")
					assert.True(t, ok)
					assert.EqualValues(t, "sql_type-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_id")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_query_per_second":
					assert.False(t, validatedMetrics["tidb_cloud.db_query_per_second"], "Found a duplicate in the metrics slice: tidb_cloud.db_query_per_second")
					validatedMetrics["tidb_cloud.db_query_per_second"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The number of SQL statements executed per second on all TiDB instances, which is counted according to SELECT, INSERT, UPDATE, and other types of statements.", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("type")
					assert.True(t, ok)
					assert.EqualValues(t, "type-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_row_storage_used_bytes":
					assert.False(t, validatedMetrics["tidb_cloud.db_row_storage_used_bytes"], "Found a duplicate in the metrics slice: tidb_cloud.db_row_storage_used_bytes")
					validatedMetrics["tidb_cloud.db_row_storage_used_bytes"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The row-based (TiKV) storage usage for a TiDB X cluster.", ms.At(i).Description())
					assert.Equal(t, "By", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_id")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_total_connection":
					assert.False(t, validatedMetrics["tidb_cloud.db_total_connection"], "Found a duplicate in the metrics slice: tidb_cloud.db_total_connection")
					validatedMetrics["tidb_cloud.db_total_connection"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The number of current connection", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.db_transaction_per_second":
					assert.False(t, validatedMetrics["tidb_cloud.db_transaction_per_second"], "Found a duplicate in the metrics slice: tidb_cloud.db_transaction_per_second")
					validatedMetrics["tidb_cloud.db_transaction_per_second"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The number of transactions executed per second.", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("txn_mode")
					assert.True(t, ok)
					assert.EqualValues(t, "txn_mode-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("type")
					assert.True(t, ok)
					assert.EqualValues(t, "type-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.dm_relay_read_error_count":
					assert.False(t, validatedMetrics["tidb_cloud.dm_relay_read_error_count"], "Found a duplicate in the metrics slice: tidb_cloud.dm_relay_read_error_count")
					validatedMetrics["tidb_cloud.dm_relay_read_error_count"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "Task State", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("task")
					assert.True(t, ok)
					assert.EqualValues(t, "task-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("job_id")
					assert.True(t, ok)
					assert.EqualValues(t, "job_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.dm_syncer_replication_lag_bucket":
					assert.False(t, validatedMetrics["tidb_cloud.dm_syncer_replication_lag_bucket"], "Found a duplicate in the metrics slice: tidb_cloud.dm_syncer_replication_lag_bucket")
					validatedMetrics["tidb_cloud.dm_syncer_replication_lag_bucket"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "Task State", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("task")
					assert.True(t, ok)
					assert.EqualValues(t, "task-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("job_id")
					assert.True(t, ok)
					assert.EqualValues(t, "job_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.dm_syncer_replication_lag_gauge":
					assert.False(t, validatedMetrics["tidb_cloud.dm_syncer_replication_lag_gauge"], "Found a duplicate in the metrics slice: tidb_cloud.dm_syncer_replication_lag_gauge")
					validatedMetrics["tidb_cloud.dm_syncer_replication_lag_gauge"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "Task State", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("task")
					assert.True(t, ok)
					assert.EqualValues(t, "task-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("job_id")
					assert.True(t, ok)
					assert.EqualValues(t, "job_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.dm_task_state":
					assert.False(t, validatedMetrics["tidb_cloud.dm_task_state"], "Found a duplicate in the metrics slice: tidb_cloud.dm_task_state")
					validatedMetrics["tidb_cloud.dm_task_state"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "Task State", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeInt, dp.ValueType())
					assert.Equal(t, int64(1), dp.IntValue())
					attrVal, ok := dp.Attributes().Get("task")
					assert.True(t, ok)
					assert.EqualValues(t, "task-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("job_id")
					assert.True(t, ok)
					assert.EqualValues(t, "job_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.node_cpu_capacity_cores":
					assert.False(t, validatedMetrics["tidb_cloud.node_cpu_capacity_cores"], "Found a duplicate in the metrics slice: tidb_cloud.node_cpu_capacity_cores")
					validatedMetrics["tidb_cloud.node_cpu_capacity_cores"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The capacity cores of TiDB/TiKV/TiFlash nodes.", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_id")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.node_cpu_seconds_total":
					assert.False(t, validatedMetrics["tidb_cloud.node_cpu_seconds_total"], "Found a duplicate in the metrics slice: tidb_cloud.node_cpu_seconds_total")
					validatedMetrics["tidb_cloud.node_cpu_seconds_total"] = true
					assert.Equal(t, pmetric.MetricTypeSum, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Sum().DataPoints().Len())
					assert.Equal(t, "The CPU usage of TiDB/TiKV/TiFlash nodes.", ms.At(i).Description())
					assert.Equal(t, "s", ms.At(i).Unit())
					assert.True(t, ms.At(i).Sum().IsMonotonic())
					assert.Equal(t, pmetric.AggregationTemporalityUnspecified, ms.At(i).Sum().AggregationTemporality())
					dp := ms.At(i).Sum().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeInt, dp.ValueType())
					assert.Equal(t, int64(1), dp.IntValue())
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_id")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.node_cpu_seconds_total_rate":
					assert.False(t, validatedMetrics["tidb_cloud.node_cpu_seconds_total_rate"], "Found a duplicate in the metrics slice: tidb_cloud.node_cpu_seconds_total_rate")
					validatedMetrics["tidb_cloud.node_cpu_seconds_total_rate"] = true
					assert.Equal(t, pmetric.MetricTypeSum, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Sum().DataPoints().Len())
					assert.Equal(t, "The CPU usage rate of TiDB/TiKV/TiFlash nodes.", ms.At(i).Description())
					assert.Equal(t, "s", ms.At(i).Unit())
					assert.True(t, ms.At(i).Sum().IsMonotonic())
					assert.Equal(t, pmetric.AggregationTemporalityUnspecified, ms.At(i).Sum().AggregationTemporality())
					dp := ms.At(i).Sum().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_id")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.node_disk_read_latency":
					assert.False(t, validatedMetrics["tidb_cloud.node_disk_read_latency"], "Found a duplicate in the metrics slice: tidb_cloud.node_disk_read_latency")
					validatedMetrics["tidb_cloud.node_disk_read_latency"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "Node disk read latency", ms.At(i).Description())
					assert.Equal(t, "s", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("device")
					assert.True(t, ok)
					assert.EqualValues(t, "device-val", attrVal.Str())
				case "tidb_cloud.node_disk_write_latency":
					assert.False(t, validatedMetrics["tidb_cloud.node_disk_write_latency"], "Found a duplicate in the metrics slice: tidb_cloud.node_disk_write_latency")
					validatedMetrics["tidb_cloud.node_disk_write_latency"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "Node disk write latency", ms.At(i).Description())
					assert.Equal(t, "s", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("device")
					assert.True(t, ok)
					assert.EqualValues(t, "device-val", attrVal.Str())
				case "tidb_cloud.node_memory_available_bytes":
					assert.False(t, validatedMetrics["tidb_cloud.node_memory_available_bytes"], "Found a duplicate in the metrics slice: tidb_cloud.node_memory_available_bytes")
					validatedMetrics["tidb_cloud.node_memory_available_bytes"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The memory capacity bytes of TiDB/TiKV/TiFlash nodes.", ms.At(i).Description())
					assert.Equal(t, "By", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_id")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.node_memory_capacity_bytes":
					assert.False(t, validatedMetrics["tidb_cloud.node_memory_capacity_bytes"], "Found a duplicate in the metrics slice: tidb_cloud.node_memory_capacity_bytes")
					validatedMetrics["tidb_cloud.node_memory_capacity_bytes"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The memory capacity bytes of TiDB/TiKV/TiFlash nodes.", ms.At(i).Description())
					assert.Equal(t, "By", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_id")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.node_memory_used_bytes":
					assert.False(t, validatedMetrics["tidb_cloud.node_memory_used_bytes"], "Found a duplicate in the metrics slice: tidb_cloud.node_memory_used_bytes")
					validatedMetrics["tidb_cloud.node_memory_used_bytes"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The used memory bytes of TiDB/TiKV/TiFlash nodes.", ms.At(i).Description())
					assert.Equal(t, "By", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_id")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.node_storage_available_bytes":
					assert.False(t, validatedMetrics["tidb_cloud.node_storage_available_bytes"], "Found a duplicate in the metrics slice: tidb_cloud.node_storage_available_bytes")
					validatedMetrics["tidb_cloud.node_storage_available_bytes"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The disk available bytes of TiKV/TiFlash nodes.", ms.At(i).Description())
					assert.Equal(t, "By", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeInt, dp.ValueType())
					assert.Equal(t, int64(1), dp.IntValue())
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_id")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.node_storage_capacity_bytes":
					assert.False(t, validatedMetrics["tidb_cloud.node_storage_capacity_bytes"], "Found a duplicate in the metrics slice: tidb_cloud.node_storage_capacity_bytes")
					validatedMetrics["tidb_cloud.node_storage_capacity_bytes"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The disk capacity bytes of TiKV/TiFlash nodes.", ms.At(i).Description())
					assert.Equal(t, "By", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeInt, dp.ValueType())
					assert.Equal(t, int64(1), dp.IntValue())
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_id")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.node_storage_used_bytes":
					assert.False(t, validatedMetrics["tidb_cloud.node_storage_used_bytes"], "Found a duplicate in the metrics slice: tidb_cloud.node_storage_used_bytes")
					validatedMetrics["tidb_cloud.node_storage_used_bytes"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The disk usage bytes of TiKV/TiFlash nodes.", ms.At(i).Description())
					assert.Equal(t, "By", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeInt, dp.ValueType())
					assert.Equal(t, int64(1), dp.IntValue())
					attrVal, ok := dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_id")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_id-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("component")
					assert.True(t, ok)
					assert.EqualValues(t, "tidb", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.resource_manager_resource_unit_read_request_unit":
					assert.False(t, validatedMetrics["tidb_cloud.resource_manager_resource_unit_read_request_unit"], "Found a duplicate in the metrics slice: tidb_cloud.resource_manager_resource_unit_read_request_unit")
					validatedMetrics["tidb_cloud.resource_manager_resource_unit_read_request_unit"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The resource manager read request.", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("resource_group")
					assert.True(t, ok)
					assert.EqualValues(t, "resource_group-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.resource_manager_resource_request_unit_total":
					assert.False(t, validatedMetrics["tidb_cloud.resource_manager_resource_request_unit_total"], "Found a duplicate in the metrics slice: tidb_cloud.resource_manager_resource_request_unit_total")
					validatedMetrics["tidb_cloud.resource_manager_resource_request_unit_total"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The resource manager request unit total.", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("resource_group")
					assert.True(t, ok)
					assert.EqualValues(t, "resource_group-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				case "tidb_cloud.resource_manager_resource_unit_write_request_unit":
					assert.False(t, validatedMetrics["tidb_cloud.resource_manager_resource_unit_write_request_unit"], "Found a duplicate in the metrics slice: tidb_cloud.resource_manager_resource_unit_write_request_unit")
					validatedMetrics["tidb_cloud.resource_manager_resource_unit_write_request_unit"] = true
					assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type())
					assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len())
					assert.Equal(t, "The resource manager write request.", ms.At(i).Description())
					assert.Equal(t, "1", ms.At(i).Unit())
					dp := ms.At(i).Gauge().DataPoints().At(0)
					assert.Equal(t, start, dp.StartTimestamp())
					assert.Equal(t, ts, dp.Timestamp())
					assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType())
					assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01)
					attrVal, ok := dp.Attributes().Get("resource_group")
					assert.True(t, ok)
					assert.EqualValues(t, "resource_group-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("cluster_name")
					assert.True(t, ok)
					assert.EqualValues(t, "cluster_name-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("instance")
					assert.True(t, ok)
					assert.EqualValues(t, "instance-val", attrVal.Str())
					attrVal, ok = dp.Attributes().Get("project_name")
					assert.True(t, ok)
					assert.EqualValues(t, "project_name-val", attrVal.Str())
				}
			}
		})
	}
}
