Help Center/ FunctionGraph/ API Reference/ APIs/ Function Metrics/ Querying Tenant-Level Function Statistics
Updated on 2026-10-27 GMT+08:00

Querying Tenant-Level Function Statistics

Function

This API is used to query tenant-level function statistics.

The statistics include function format, quota and usage, and traffic report.

You can query data in a specific period using the filter and period parameters.

Calling Method

For details, see Calling APIs.

Authorization Information

Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions. For details about the required permissions, see Permissions Policies and Supported Actions.

URI

GET /v2/{project_id}/fgs/functions/statistics

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Parameter description:

Project ID. For details, see Obtaining a Project ID.

Constraints:

None

Value range:

32 characters, including letters and digits.

Default value:

None

Table 2 Query Parameters

Parameter

Mandatory

Type

Description

filter

Yes

String

Parameter description:

Query type.

Constraints:

None

Value range:

monitor_data: Query detailed statistics.

monthly_report: Query monthly statistics.

Default value:

None

period

No

String

Parameter description:

Interval of metric data.

Constraints:

None

Value range:

1: 1 minute

5: 5 minutes

15: 15 minutes

60: 60 minutes

Default value:

"5"

option

No

String

Parameter description:

Monthly statistics dimension.

Constraints:

This parameter is valid only when filter is set to monthly_report.

Value range:

  • 0: current month

  • 1: last month

  • 2: last three months

  • 3: last six months

Default value:

"0"

limit

No

String

Parameter description:

Maximum number of records returned in this query.

Constraints:

None

Value range:

[0-500]

Default value:

"100"

marker

No

String

Parameter description:

Start position of the query.

Constraints:

None

Value range:

None

Default value:

"0"

Request Parameters

Table 3 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

Parameter description:

User token.

The token can be obtained by calling the IAM API. The value of X-Subject-Token in the response header is the user token.

Constraints:

None

Value range:

None

Default value:

None

Content-Type

No

String

Parameter description:

Specifies the type (or format) of the message body.

Constraints:

None

Value range:

Only application/json is supported.

Default value:

application/json

Response Parameters

Status code: 200

Table 4 Response body parameters

Parameter

Type

Description

count

Array of MonthUsed objects

Parameter description:

Number of monthly invocations.

gbs

Array of MonthUsed objects

Parameter description:

Monthly resource usage.

gpu_gbs

Array of MonthUsed objects

Parameter description:

Monthly GPU usage.

statistics

ListFunctionStatisticsResponseBody object

Function Metrics

Table 5 MonthUsed

Parameter

Type

Description

date

String

Parameter description:

Date.

value

Number

Parameter description:

Number of used license resources.

Table 6 ListFunctionStatisticsResponseBody

Parameter

Type

Description

count

Array of SlaReportsValue objects

Parameter description:

Number of invoking times.

duration

Array of SlaReportsValue objects

Parameter description:

Average latency.

fail_count

Array of SlaReportsValue objects

Parameter description:

Number of errors.

max_duration

Array of SlaReportsValue objects

Parameter description:

Max. delay

min_duration

Array of SlaReportsValue objects

Parameter description:

Min. delay

reject_count

Array of SlaReportsValue objects

Parameter description:

Throttles.

function_error_count

Array of SlaReportsValue objects

Parameter description:

Number of function errors.

system_error_count

Array of SlaReportsValue objects

Parameter description:

Number of system errors.

reserved_instance_num

Array of SlaReportsValue objects

Parameter description:

Max. delay

concurrency_num

Array of SlaReportsValue objects

Parameter description:

Number of concurrent instances per function.

Table 7 SlaReportsValue

Parameter

Type

Description

timestamp

Integer

Parameter description:

Timestamp.

value

Double

Parameter description:

Metric value.

Status code: 400

Table 8 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Example Requests

Query tenant-level function statistics.

GET /v2/{project_id}/fgs/functions/statistics?filter=monitor_data

Example Responses

Status code: 200

{
  "count" : [ ],
  "gbs" : [ ],
  "gpu_gbs" : [ ],
  "statistics" : {
    "count" : [ {
      "timestamp" : 1596679200000,
      "value" : -1
    }, {
      "timestamp" : 1596682800000,
      "value" : 2
    }, {
      "timestamp" : 1596686400000,
      "value" : -1
    } ],
    "duration" : [ {
      "timestamp" : 1596679200000,
      "value" : -1
    }, {
      "timestamp" : 1596682800000,
      "value" : 950
    }, {
      "timestamp" : 1596686400000,
      "value" : -1
    } ],
    "fail_count" : [ {
      "timestamp" : 1596679200000,
      "value" : -1
    }, {
      "timestamp" : 1596682800000,
      "value" : 0
    }, {
      "timestamp" : 1596686400000,
      "value" : -1
    } ],
    "max_duration" : [ {
      "timestamp" : 1596679200000,
      "value" : -1
    }, {
      "timestamp" : 1596682800000,
      "value" : 740
    }, {
      "timestamp" : 1596686400000,
      "value" : -1
    } ],
    "min_duration" : [ {
      "timestamp" : 1596679200000,
      "value" : -1
    }, {
      "timestamp" : 1596682800000,
      "value" : 210
    }, {
      "timestamp" : 1596686400000,
      "value" : -1
    } ],
    "reject_count" : [ {
      "timestamp" : 1596679200000,
      "value" : -1
    }, {
      "timestamp" : 1596682800000,
      "value" : 0
    }, {
      "timestamp" : 1596686400000,
      "value" : -1
    } ]
  }
}

SDK Sample Code

The SDK sample code is as follows.

Java

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.functiongraph.v2.region.FunctionGraphRegion;
import com.huaweicloud.sdk.functiongraph.v2.*;
import com.huaweicloud.sdk.functiongraph.v2.model.*;


public class ListStatisticsSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        FunctionGraphClient client = FunctionGraphClient.newBuilder()
                .withCredential(auth)
                .withRegion(FunctionGraphRegion.valueOf("<YOUR REGION>"))
                .build();
        ListStatisticsRequest request = new ListStatisticsRequest();
        try {
            ListStatisticsResponse response = client.listStatistics(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

Python

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkfunctiongraph.v2.region.functiongraph_region import FunctionGraphRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkfunctiongraph.v2 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = FunctionGraphClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(FunctionGraphRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ListStatisticsRequest()
        response = client.list_statistics(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Go

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    functiongraph "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/functiongraph/v2"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/functiongraph/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/functiongraph/v2/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth, err := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        SafeBuild()

    if err != nil {
        fmt.Println(err)
        return
    }

    hcClient, err := functiongraph.FunctionGraphClientBuilder().
         WithRegion(region.ValueOf("<YOUR REGION>")).
         WithCredential(auth).
         SafeBuild()


    if err != nil {
        fmt.Println(err)
        return
    }

    client := functiongraph.NewFunctionGraphClient(hcClient)

    request := &model.ListStatisticsRequest{}
	response, err := client.ListStatistics(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

More

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

200

Query successful.

400

Bad Request

Error Codes

See Error Codes.