github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/ces/v1/metricdata_test.go (about)

     1  package v1
     2  
     3  import (
     4  	"strconv"
     5  	"testing"
     6  	"time"
     7  
     8  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients"
     9  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/openstack"
    10  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/ces/v1/metricdata"
    11  	th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
    12  )
    13  
    14  func TestMetricData(t *testing.T) {
    15  	client, err := clients.NewCesV1Client()
    16  	th.AssertNoErr(t, err)
    17  
    18  	ecsClient, err := clients.NewComputeV1Client()
    19  	th.AssertNoErr(t, err)
    20  
    21  	ecs := openstack.CreateCloudServer(t, ecsClient, openstack.GetCloudServerCreateOpts(t))
    22  	t.Cleanup(func() {
    23  		openstack.DeleteCloudServer(t, ecsClient, ecs.ID)
    24  	})
    25  
    26  	old := time.Now().UnixMilli()
    27  	newOps := metricdata.MetricDataItem{
    28  		Metric: metricdata.MetricInfo{
    29  			Namespace:  "MINE.APP",
    30  			MetricName: "cpu_util",
    31  			Dimensions: []metricdata.MetricsDimension{
    32  				{
    33  					Name:  "instance_id",
    34  					Value: ecs.ID,
    35  				},
    36  			},
    37  		},
    38  		Ttl:         172800,
    39  		CollectTime: old,
    40  		Value:       0.09,
    41  		Unit:        "%",
    42  		Type:        "float",
    43  	}
    44  
    45  	err = metricdata.CreateMetricData(client, []metricdata.MetricDataItem{newOps})
    46  	th.AssertNoErr(t, err)
    47  
    48  	batchOps := metricdata.BatchListMetricDataOpts{
    49  		Metrics: []metricdata.Metric{
    50  			{
    51  				Namespace:  "MINE.APP",
    52  				MetricName: "cpu_util",
    53  				Dimensions: []metricdata.MetricsDimension{
    54  					{
    55  						Name:  "instance_id",
    56  						Value: ecs.ID,
    57  					},
    58  				},
    59  			},
    60  		},
    61  		From:   old,
    62  		To:     time.Now().UnixMilli(),
    63  		Period: "1",
    64  		Filter: "average",
    65  	}
    66  
    67  	batchData, err := metricdata.BatchListMetricData(client, batchOps)
    68  	th.AssertNoErr(t, err)
    69  	th.AssertEquals(t, len(batchData), 1)
    70  
    71  	metricOps := metricdata.ShowMetricDataOpts{
    72  		Namespace:  "SYS.ECS",
    73  		MetricName: "cpu_util",
    74  		Dim0:       "instance_id," + ecs.ID,
    75  		Filter:     "average",
    76  		Period:     1,
    77  		From:       strconv.FormatInt(old, 10),
    78  		To:         strconv.FormatInt(time.Now().UnixMilli(), 10),
    79  	}
    80  
    81  	metricData, err := metricdata.ShowMetricData(client, metricOps)
    82  	th.AssertNoErr(t, err)
    83  	th.AssertEquals(t, len(metricData.Datapoints), 0)
    84  
    85  	eventOps := metricdata.ShowEventDataOpts{
    86  		Namespace: "SYS.ECS",
    87  		Dim0:      "instance_id," + ecs.ID,
    88  		Type:      "instance_host_info",
    89  		From:      strconv.FormatInt(old, 10),
    90  		To:        strconv.FormatInt(time.Now().UnixMilli(), 10),
    91  	}
    92  
    93  	event, err := metricdata.ListEventData(client, eventOps)
    94  	th.AssertNoErr(t, err)
    95  	th.AssertEquals(t, len(event), 0)
    96  }