Merge pull request #77722 from andyzhangx/fix-incorrect-metrics

fix incorrect prometheus azure metrics
This commit is contained in:
Kubernetes Prow Robot 2019-05-13 03:42:13 -07:00 committed by GitHub
commit 3bc595e37c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 68 deletions

View File

@ -293,13 +293,11 @@ func (az *azInterfacesClient) CreateOrUpdate(ctx context.Context, resourceGroupN
mc := newMetricContext("interfaces", "create_or_update", resourceGroupName, az.client.SubscriptionID)
future, err := az.client.CreateOrUpdate(ctx, resourceGroupName, networkInterfaceName, parameters)
if err != nil {
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
err = future.WaitForCompletionRef(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
func (az *azInterfacesClient) Get(ctx context.Context, resourceGroupName string, networkInterfaceName string, expand string) (result network.Interface, err error) {
@ -376,19 +374,16 @@ func (az *azLoadBalancersClient) CreateOrUpdate(ctx context.Context, resourceGro
mc := newMetricContext("load_balancers", "create_or_update", resourceGroupName, az.client.SubscriptionID)
req, err := az.createOrUpdatePreparer(ctx, resourceGroupName, loadBalancerName, parameters, etag)
if err != nil {
mc.Observe(err)
return nil, err
return nil, mc.Observe(err)
}
future, err := az.client.CreateOrUpdateSender(req)
if err != nil {
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
err = future.WaitForCompletionRef(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
// createOrUpdatePreparer prepares the CreateOrUpdate request.
@ -432,14 +427,12 @@ func (az *azLoadBalancersClient) Delete(ctx context.Context, resourceGroupName s
mc := newMetricContext("load_balancers", "delete", resourceGroupName, az.client.SubscriptionID)
future, err := az.client.Delete(ctx, resourceGroupName, loadBalancerName)
mc.Observe(err)
if err != nil {
return future.Response(), err
return future.Response(), mc.Observe(err)
}
err = future.WaitForCompletionRef(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
func (az *azLoadBalancersClient) Get(ctx context.Context, resourceGroupName string, loadBalancerName string, expand string) (result network.LoadBalancer, err error) {
@ -528,14 +521,12 @@ func (az *azPublicIPAddressesClient) CreateOrUpdate(ctx context.Context, resourc
mc := newMetricContext("public_ip_addresses", "create_or_update", resourceGroupName, az.client.SubscriptionID)
future, err := az.client.CreateOrUpdate(ctx, resourceGroupName, publicIPAddressName, parameters)
mc.Observe(err)
if err != nil {
return future.Response(), err
return future.Response(), mc.Observe(err)
}
err = future.WaitForCompletionRef(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
func (az *azPublicIPAddressesClient) Delete(ctx context.Context, resourceGroupName string, publicIPAddressName string) (resp *http.Response, err error) {
@ -552,14 +543,12 @@ func (az *azPublicIPAddressesClient) Delete(ctx context.Context, resourceGroupNa
mc := newMetricContext("public_ip_addresses", "delete", resourceGroupName, az.client.SubscriptionID)
future, err := az.client.Delete(ctx, resourceGroupName, publicIPAddressName)
mc.Observe(err)
if err != nil {
return future.Response(), err
return future.Response(), mc.Observe(err)
}
err = future.WaitForCompletionRef(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
func (az *azPublicIPAddressesClient) Get(ctx context.Context, resourceGroupName string, publicIPAddressName string, expand string) (result network.PublicIPAddress, err error) {
@ -648,13 +637,11 @@ func (az *azSubnetsClient) CreateOrUpdate(ctx context.Context, resourceGroupName
mc := newMetricContext("subnets", "create_or_update", resourceGroupName, az.client.SubscriptionID)
future, err := az.client.CreateOrUpdate(ctx, resourceGroupName, virtualNetworkName, subnetName, subnetParameters)
if err != nil {
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
err = future.WaitForCompletionRef(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
func (az *azSubnetsClient) Delete(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string) (resp *http.Response, err error) {
@ -672,13 +659,11 @@ func (az *azSubnetsClient) Delete(ctx context.Context, resourceGroupName string,
mc := newMetricContext("subnets", "delete", resourceGroupName, az.client.SubscriptionID)
future, err := az.client.Delete(ctx, resourceGroupName, virtualNetworkName, subnetName)
if err != nil {
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
err = future.WaitForCompletionRef(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
func (az *azSubnetsClient) Get(ctx context.Context, resourceGroupName string, virtualNetworkName string, subnetName string, expand string) (result network.Subnet, err error) {
@ -710,8 +695,8 @@ func (az *azSubnetsClient) List(ctx context.Context, resourceGroupName string, v
mc := newMetricContext("subnets", "list", resourceGroupName, az.client.SubscriptionID)
iterator, err := az.client.ListComplete(ctx, resourceGroupName, virtualNetworkName)
mc.Observe(err)
if err != nil {
mc.Observe(err)
return nil, err
}
@ -767,19 +752,16 @@ func (az *azSecurityGroupsClient) CreateOrUpdate(ctx context.Context, resourceGr
mc := newMetricContext("security_groups", "create_or_update", resourceGroupName, az.client.SubscriptionID)
req, err := az.createOrUpdatePreparer(ctx, resourceGroupName, networkSecurityGroupName, parameters, etag)
if err != nil {
mc.Observe(err)
return nil, err
return nil, mc.Observe(err)
}
future, err := az.client.CreateOrUpdateSender(req)
if err != nil {
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
err = future.WaitForCompletionRef(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
// createOrUpdatePreparer prepares the CreateOrUpdate request.
@ -824,13 +806,11 @@ func (az *azSecurityGroupsClient) Delete(ctx context.Context, resourceGroupName
mc := newMetricContext("security_groups", "delete", resourceGroupName, az.client.SubscriptionID)
future, err := az.client.Delete(ctx, resourceGroupName, networkSecurityGroupName)
if err != nil {
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
err = future.WaitForCompletionRef(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
func (az *azSecurityGroupsClient) Get(ctx context.Context, resourceGroupName string, networkSecurityGroupName string, expand string) (result network.SecurityGroup, err error) {
@ -1053,14 +1033,12 @@ func (az *azVirtualMachineScaleSetVMsClient) Update(ctx context.Context, resourc
mc := newMetricContext("vmssvm", "update", resourceGroupName, az.client.SubscriptionID)
future, err := az.client.Update(ctx, resourceGroupName, VMScaleSetName, instanceID, parameters)
mc.Observe(err)
if err != nil {
return future.Response(), err
return future.Response(), mc.Observe(err)
}
err = future.WaitForCompletionRef(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
// azRoutesClient implements RoutesClient.
@ -1109,13 +1087,11 @@ func (az *azRoutesClient) CreateOrUpdate(ctx context.Context, resourceGroupName
future, err := az.client.CreateOrUpdateSender(req)
if err != nil {
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
err = future.WaitForCompletionRef(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
// createOrUpdatePreparer prepares the CreateOrUpdate request.
@ -1162,13 +1138,11 @@ func (az *azRoutesClient) Delete(ctx context.Context, resourceGroupName string,
mc := newMetricContext("routes", "delete", resourceGroupName, az.client.SubscriptionID)
future, err := az.client.Delete(ctx, resourceGroupName, routeTableName, routeName)
if err != nil {
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
err = future.WaitForCompletionRef(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
// azRouteTablesClient implements RouteTablesClient.
@ -1211,19 +1185,16 @@ func (az *azRouteTablesClient) CreateOrUpdate(ctx context.Context, resourceGroup
mc := newMetricContext("route_tables", "create_or_update", resourceGroupName, az.client.SubscriptionID)
req, err := az.createOrUpdatePreparer(ctx, resourceGroupName, routeTableName, parameters, etag)
if err != nil {
mc.Observe(err)
return nil, err
return nil, mc.Observe(err)
}
future, err := az.client.CreateOrUpdateSender(req)
if err != nil {
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
err = future.WaitForCompletionRef(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
// createOrUpdatePreparer prepares the CreateOrUpdate request.
@ -1423,14 +1394,12 @@ func (az *azDisksClient) CreateOrUpdate(ctx context.Context, resourceGroupName s
mc := newMetricContext("disks", "create_or_update", resourceGroupName, az.client.SubscriptionID)
future, err := az.client.CreateOrUpdate(ctx, resourceGroupName, diskName, diskParameter)
mc.Observe(err)
if err != nil {
return future.Response(), err
return future.Response(), mc.Observe(err)
}
err = future.WaitForCompletionRef(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
func (az *azDisksClient) Delete(ctx context.Context, resourceGroupName string, diskName string) (resp *http.Response, err error) {
@ -1447,14 +1416,12 @@ func (az *azDisksClient) Delete(ctx context.Context, resourceGroupName string, d
mc := newMetricContext("disks", "delete", resourceGroupName, az.client.SubscriptionID)
future, err := az.client.Delete(ctx, resourceGroupName, diskName)
mc.Observe(err)
if err != nil {
return future.Response(), err
return future.Response(), mc.Observe(err)
}
err = future.WaitForCompletionRef(ctx, az.client.Client)
mc.Observe(err)
return future.Response(), err
return future.Response(), mc.Observe(err)
}
func (az *azDisksClient) Get(ctx context.Context, resourceGroupName string, diskName string) (result compute.Disk, err error) {

View File

@ -50,12 +50,14 @@ func newMetricContext(prefix, request, resourceGroup, subscriptionID string) *me
}
}
func (mc *metricContext) Observe(err error) {
func (mc *metricContext) Observe(err error) error {
apiMetrics.latency.WithLabelValues(mc.attributes...).Observe(
time.Since(mc.start).Seconds())
if err != nil {
apiMetrics.errors.WithLabelValues(mc.attributes...).Inc()
}
return err
}
func registerAPIMetrics(attributes ...string) *apiCallMetrics {