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
}