Basic troubleshooting on Azion Web Platform

Use este guia para identificar comportamentos inesperados em aplicações na Azion Web Platform. Aprenda como habilitar Debug Rules, usar Real-Time Events e consultar dados com GraphQL para entender por que ações específicas foram aplicadas às suas requisições. Este guia inclui um exemplo prático que mostra como identificar quais regras foram executadas e por que uma requisição foi bloqueada.

Habilitando Debug Rules

Debug Rules podem ser habilitadas tanto em Applications quanto em Firewall. Elas mostram quais regras foram executadas para uma requisição e as ações que essas regras tomaram (bloquear é apenas um exemplo), ajudando você a entender por que uma ação específica foi aplicada.

Para habilitar Debug Rules para Applications:

  1. Acesse o Console.
  2. Vá para o Products menu > Applications.
  3. Selecione uma aplicação existente para ativar o debug.
  4. Na aba Main Settings, habilite a opção Debug Rules.
  5. Clique no botão Save.

Para habilitar Debug Rules para Firewalls:

  1. Acesse o Console.
  2. Vá para o Products menu > Firewalls.
  3. Selecione o firewall que você deseja configurar.
  4. Na aba Main Settings, habilite a opção Debug Rules.
  5. Clique no botão Save.

Real-Time Events

Para acessar o Real-Time Events, siga estes passos:

  1. Acesse o Console.
  2. No canto superior esquerdo, selecione Products menu > Real-Time Events.
  3. Selecione a aba HTTP Requests.
  4. Modifique o intervalo de tempo desejado e os filtros.
  5. Clique no botão Search.

GraphQL

Para acessar o playground Azion GraphQL, acessível através do menu Real Time Events, ou visitando este link.

Por padrão, todas as requisições são registradas usando o fuso horário UTC.

Um exemplo prático

Para este exemplo, usaremos uma aplicação de amostra na qual, ao acessar a URI /block, a requisição será bloqueada com um status 403. Portanto, se você tentasse acessar o site, receberia uma página de erro 403 parecida com esta:

Página de erro da Azion

Como você pode descobrir exatamente por que essa requisição foi bloqueada?

Para os passos abaixo, copie o Request ID exibido na página.

No Real-Time Events

  1. Acesse o Real-Time Events
  2. Filtre pelo request id que você copiou.
  3. Selecione o corpo do log.
  4. Procure pelo campo stacktrace.

Você verá uma resposta semelhante a esta:

{
"edge_application_request": [
"Default Rule",
"block"
]
}

O campo stacktrace informa que a regra de Application chamada block foi executada.

No GraphQL Playground

1.Acesse o GraphQL Playground. 2.Execute a query abaixo, substituindo os campos tsRange e requestIdEq pelos valores corretos.

query (
$tsRange_begin: DateTime!
$tsRange_end: DateTime!
) {
httpEvents (
limit: 10
orderBy: [ts_DESC]
filter: {
tsRange: { begin: $tsRange_begin, end: $tsRange_end }
#hostEq:
#statusEq:
#requestIdEq:""
}
) {
ts
requestId
#configurationId
host
#requestMethod
status
upstreamStatus
#upstreamResponseTime
#upstreamBytesSent
#sslProtocol
#wafLearning
#requestTime
#serverProtocol
upstreamCacheStatus
#httpReferer
remoteAddress
stacktrace
wafMatch
#serverPort
#sslCipher
wafEvheaders
#serverAddr
#scheme
httpUserAgent
}
}

Você receberá uma resposta semelhante a esta:

{
"data": {
"httpEvents": [
{
"configurationId": "xxx",
"host": "xxxxx.azionedge.net",
"requestId": "your_request_id_here",
"httpUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.1 Safari/605.1.15",
"requestMethod": "GET",
"status": 403,
"ts": "2026-01-22T21:10:38Z",
"stacktrace": "{\\\"edge_application_request\\\":[\\\"Default Rule\\\",\\\"block\\\"]}",
"upstreamBytesSent": 0,
"sslProtocol": "TLSv1.3",
"wafLearning": "-",
"requestTime": "0",
"serverProtocol": "HTTP/2.0",
"upstreamCacheStatus": "-",
"httpReferer": "-",
"remoteAddress": "xxxx",
"wafMatch": "-",
"serverPort": "443",
"sslCipher": "TLS_AES_256_GCM_SHA384",
"wafEvheaders": "-",
"serverAddr": "179.191.174.11",
"scheme": "https"
}
]
}
}

O campo stacktrace informa que a regra de Application chamada block foi executada.