IBM Cloud Docs
Consulta de métricas de Edge Functions con GraphQL

Consulta de métricas de Edge Functions con GraphQL

Este ejemplo utiliza la API de GraphQL Analytics para consultar las métricas Edge Functions durante un periodo de tiempo especificado. Puede consultar hasta una semana de datos para fechas de hasta tres meses atrás.

La siguiente llamada a la API solicita las métricas de un script de Edge Functions durante un periodo de un día y muestra los campos solicitados. Ajuste las variables datetimeStart, datetimeEnd, accountTag y scriptName según sea necesario.

La llamada a la API

PAYLOAD='{ "query":
  "query GetEdgeFunctionsAnalytics($accountTag: string, $datetimeStart: string, $datetimeEnd: string, $scriptName: string) {
      viewer {
        accounts(filter: {accountTag: $accountTag}) {
          workersInvocationsAdaptive(limit: 100, filter: {
            scriptName: $scriptName,
            datetime_geq: $datetimeStart,
            datetime_leq: $datetimeEnd
          }) {
            sum {
              subrequests
              requests
              errors
            }
            quantiles {
              cpuTimeP50
              cpuTimeP99
            }
            dimensions{
              datetimeHour
              scriptName
              status
            }
          }
        }
      }
    }",
    "variables": {
      "accountTag": "90f518ca7113dc0a91513972ba243ba5",
      "datetimeStart": "2020-05-04T00:00:00.000Z",
      "datetimeEnd": "2020-05-04T00:00:00.000Z",
      "scriptName": "edge-function-subrequest-test-client"
    }
  }'

curl \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: IBM IAM TOKEN" \
  --data "$(echo $PAYLOAD)" \
  https://api.cis.cloud.ibm.com/v1/<crn>/zones/<zoneid>/graphql

Los resultados se devuelven en JSON (como se ha solicitado), por lo que pasar la salida a jq facilita su lectura. Por ejemplo:

curl \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: IBM IAM TOKEN" \
  --data "$(echo $PAYLOAD)" \
  https://api.cis.cloud.ibm.com/v1/<crn>/zones/<zoneid>/graphql | jq .
{
  "data": {
    "viewer": {
      "accounts": [
        {
          "workersInvocationsAdaptive": [
            {
              "dimensions": {
                "datetime": "2020-05-04T18:10:35Z",
                "scriptName": "edge-function-subrequest-test-client",
                "status": "success"
              },
              "quantiles": {
                "cpuTimeP50": 206,
                "cpuTimeP99": 206
              },
              "sum": {
                "errors": 0,
                "requests": 1,
                "subrequests": 0
              }
            },
            {
              "dimensions": {
                "datetime": "2020-05-04T18:10:34Z",
                "scriptName": "edge-function-subrequest-test-client",
                "status": "success"
              },
              "quantiles": {
                "cpuTimeP50": 291,
                "cpuTimeP99": 291
              },
              "sum": {
                "errors": 0,
                "requests": 1,
                "subrequests": 0
              }
            },
            {
              "dimensions": {
                "datetime": "2020-05-04T18:10:49Z",
                "scriptName": "edge-function-subrequest-test-client",
                "status": "success"
              },
              "quantiles": {
                "cpuTimeP50": 212.5,
                "cpuTimeP99": 261.19
              },
              "sum": {
                "errors": 0,
                "requests": 4,
                "subrequests": 0
              }
            }
          ]
        }
      ]
    }
  },
  "errors": null
}