Como usar a depuração

Esta página se aplica à Apigee e à Apigee híbrida.

Confira a documentação da Apigee Edge.

Esta seção descreve como criar e gerenciar sessões de depuração e ver os dados de solicitação e resposta usando a API e a interface da Apigee.

Use a opção Debug Offline para visualizar e analisar as sessões de depuração que foram transferidas por download anteriormente.

Como criar uma sessão de depuração

Ao criar uma sessão de depuração, é possível ver os dados de solicitação e resposta na IU para solicitações criadas na API ou em outra fonte externa.

Crie uma sessão de depuração com a interface ou a API da Apigee, conforme descrito nas seções a seguir.

Novo Editor de Proxy

Para criar uma sessão de depuração no novo Editor de proxy:

  1. Se você estiver usando a interface da Apigee no console do Cloud: selecione Desenvolvimento de proxy > Proxies de API.

    Se você estiver usando a interface clássica da Apigee: selecione Desenvolver > Proxies de API e no painel Proxies, selecione o ambiente do proxy que você quer depurar.

  2. Selecione o proxy de API que você quer depurar. Isso exibirá a Visão geral do Editor de proxy.

  3. Clique na guia Debug no canto superior esquerdo da janela.
  4. Clique em Iniciar sessão de depuração no canto superior direito do painel Depurar. A caixa de diálogo Iniciar depuração da sessão será exibida.

    Inicie a caixa de diálogo da sessão de depuração.

    Na caixa de diálogo, faça o seguinte:

    1. Selecione o Ambiente em que você quer executar a sessão de depuração.
    2. Opcional: na lista suspensa Filtrar, selecione um filtro a ser aplicado a todas as transações na sessão de depuração que você está criando. O padrão é None (All transactions), que inclui todas as transações nos dados de depuração.

      Para informações sobre o uso de filtros, consulte Como usar filtros em uma sessão de depuração. Para informações sobre os filtros integrados, consulte Como usar filtros predefinidos.

    3. Clique em Iniciar.

A IU da Apigee agora exibe a visualização Debug session in progress.

Sessão de depuração em andamento

A sessão de depuração registra solicitações por 10 minutos após a criação dela. O campo Termina em exibe o tempo restante da sessão.

Nenhuma informação será exibida no painel de depuração até que você envie uma solicitação ao proxy que está depurando no ambiente selecionado. ambiente para a sessão de depuração.

Depois de enviar a solicitação, ela será exibida na parte inferior do painel à esquerda.

Inicie a caixa de diálogo da sessão de depuração.

Observação: durante uma sessão de depuração ativa, é possível iniciar outra sessão na IU da Apigee. Para fazer isso, basta clicar em Iniciar sessão de depuração novamente.

Como visualizar o gráfico de Gantt de uma transação

Para ver os detalhes de uma transação (solicitação e resposta) na visualização de depuração, clique na linha da transação, conforme mostrado na imagem acima.

Isso exibirá um gráfico de Gantt no painel à direita que mostra as etapas na solicitação e na resposta.

Gráfico de Gantt das etapas da transação no painel à direita.

O eixo horizontal do diagrama indica a hora em que cada etapa ocorreu, medida em milissegundos. Cada etapa é representada por um retângulo que se estende do horário de início ao de término.

Você pode navegar por uma sessão usando os botões Voltar e Próxima no canto inferior direito do painel de depuração. Clique em:

  • Voltar para mover a linha selecionada para a etapa anterior no gráfico.
  • Próxima para mover a linha selecionada para a próxima etapa no gráfico.

No exemplo mostrado acima, o gráfico exibe duas políticas executadas na resposta:

  • ResponsePayload
  • Adicionar CORS

Clique em uma dessas etapas para ver os detalhes. Por exemplo, se você clicar na política Add CORS, verá detalhes como os mostrados abaixo ao lado do gráfico Gantt.

Adicione detalhes da política de CORS.

Se você decidiu mudar algo na configuração da política, clique em Desenvolver para acessar a visualização Desenvolver. Nela, você verá o mesmo duas políticas no Response PostFlow.

Visualização da guia "Develop" em relação a uma sessão de depuração.

Compartilhar uma sessão de depuração

É possível compartilhar uma sessão de depuração com outros usuários que tenham acesso à organização e as permissões necessárias. Para fazer isso, basta enviar a eles o URL exibido no navegador quando estiver visualizando a sessão de depuração. O link só é válido 24 horas após a criação da sessão de depuração.

Fazer o download de uma sessão de depuração

Depois de concluir uma sessão de depuração, faça o download dela para analisá-la mais tarde na ferramenta Depuração off-line. Para fazer isso, clique em Fazer download da sessão no painel à esquerda.

Fazer o download de uma sessão de depuração.

Observe que uma sessão de depuração é excluída em até 24 horas após a conclusão. Portanto, se você quiser ver a sessão de depuração após esse período, faça o download dela antes disso.

Quando você faz o download de uma sessão de depuração, o nome do arquivo de download tem o formato "debug-{session ID}.json", em que {session id} é o ID da sessão. No entanto, você pode renomear o arquivo, se quiser.

Editor de Proxy clássico

Para criar uma sessão de depuração no Proxy Editor clássico:

  1. Faça login na IU da Apigee.
  2. Selecione Proxies de API na visualização principal.
  3. Selecione o proxy de API que você quer depurar.

    A guia Visão geral é exibida.

  4. Clique na guia Debug no canto superior direito da página:

    Guias

    A visualização Debug é exibida:

    Visualização do Debug com os painéis "Iniciar uma sessão de depuração", "Sessões de depuração recentes" e "Enviar solicitações de solicitação"

  5. No painel Iniciar uma sessão do Debug:
    1. Na lista suspensa Env, selecione o ambiente e o número de revisão do proxy da API que você quer depurar.
    2. O exemplo a seguir mostra o painel Iniciar uma sessão de Debug:

      Iniciar um painel de sessão de depuração

    3. Opcional: na lista suspensa Filtrar, selecione um filtro a ser aplicado a todas as transações na sessão de depuração que você está criando. O padrão é None, que inclui todas as transações nos dados de depuração.

      Para informações sobre o uso de filtros, consulte Como usar filtros em uma sessão de depuração. Para informações sobre os filtros integrados, consulte Como usar filtros predefinidos.

    4. Clique em Iniciar sessão do Debug.

      Agora a IU da Apigee exibe detalhes sobre a sessão de depuração atual, incluindo o código dela, no painel Detalhes do Debug.

      Embora a IU tenha criado a sessão de depuração, você ainda precisa enviar a solicitação antes que haja dados a serem coletados.

      No painel Detalhes do Debug, é possível fazer o seguinte:

      Ícone Função Descrição
      Ícone de download Fazer o download Faça o download dos dados de depuração da sessão ativa, que pode ser visualizada off-line.
      Ícone "Voltar" Voltar Volte ao painel anterior, onde é possível iniciar outra sessão de depuração. A sessão de depuração atual continua até alcançar o tempo limite ou a contagem de transações.
      Excluir ícone Excluir Exclua os dados da sessão de depuração selecionada no momento. Isso exclui os dados da sessão, mas não interrompe as sessões.

      Há um tempo limite padrão de 10 minutos para uma sessão de depuração iniciada na IU. É diferente para uma sessão iniciada com a API.

      O relógio começa a funcionar assim que você clica em Start Debug Session. Assim, você pode aguardar até a próxima etapa antes de clicar em Start Debug Session. para maximizar a quantidade de dados coletados.

  6. No painel Enviar solicitações:
    1. No campo URL, insira o endpoint para onde você quer enviar uma to. Como alternativa, anexe parâmetros de string de consulta ao URL. Não é possível enviar solicitações diferentes de GET.
      Como encontrar o URL do endpoint
      1. Acesse Administrador > Ambientes > Grupos
      2. O URL é o Nome do host do respectivo ambiente com que você quer executar sua sessão de depuração.
    2. O painel Enviar solicitações mostra apenas os dados de solicitações baseadas na IU. No entanto, o Debug também registra dados de solicitações que não foram iniciadas pela IU.

    3. Clique em Send.

      A Apigee envia uma solicitação para o URL especificado. Sempre que você clicar em Enviar, a IU da Apigee registrará a solicitação no painel Detalhes do Debug.

      O exemplo a seguir mostra várias solicitações bem-sucedidas (resultando em um código de status HTTP de 200):

      Solicitações de depuração capturadas

      Clique em Copy para copiar o ID de Debug para referência ou consultas futuras.

      Além disso, a IU exibe dados de depuração nas seções "Mapa de transação" e "Detalhes da fase" do painel Enviar solicitações e preenche as seções "Proxy de endpoint", "Solicitar cabeçalhos", "Solicitar conteúdo" e "Propriedades", como mostra o exemplo a seguir:

      Solicitações de depuração capturadas

      Para mais informações sobre as fases, o mapa de transações e outras seções da visualização Enviar solicitações, consulte Como ler uma depuração.

    A sessão de depuração está ativa e registra dados sobre todas as solicitações, a menos que elas sejam filtradas. A sessão permanecerá ativa até que o tempo limite seja atingido ou que o número de solicitações registradas na sessão seja excedido.

  7. É possível criar qualquer número de sessões de depuração na IU. Para mais informações, consulte Como iniciar outra sessão de depuração.

Como iniciar outra sessão de depuração na IU

Durante uma sessão de depuração ativa, é possível iniciar outra sessão na IU da Apigee. Para fazer isso, clique no ícone de seta para voltar () no painel Detalhes do Debug:

Seta para voltar que direciona você para o painel "Iniciar uma sessão do Debug"

A IU retorna ao painel Iniciar uma sessão do Debug, onde é possível iniciar uma nova sessão de depuração.

Quando uma sessão de depuração termina?

Não é possível simplesmente interromper uma sessão de depuração ativa. No entanto, é possível excluir os dados de uma sessão ativa, conforme descrito em Como excluir dados de sessão de depuração.

Ao criar uma sessão de depuração, duas propriedades determinam quando ela termina:

  • tempo limite: o tempo de coleta de dados durante uma sessão. A duração padrão depende de como você iniciou a sessão (por meio da IU ou da API). O valor máximo é de 600 segundos (ou 10 minutos).
  • Contagem: o número máximo de solicitações registradas em uma única sessão por processador de mensagens. Como o número de processadores de mensagens na maioria dos clusters é variável, os efeitos da contagem podem ser imprevisíveis. A Apigee não recomenda personalizar essa configuração.

Quando o tempo limite ou a contagem são atingidos, a sessão de depuração para esse processador de mensagens termina.

Os termos a seguir são usados para descrever o estado de uma sessão de depuração:

  • Session ativa é uma sessão de depuração que ainda não atingiu o tempo limite ou excedeu a contagem. Uma sessão ativa ainda está gravando dados de solicitação para solicitações que não são filtradas.
  • Sessão concluída é uma sessão de depuração que atingiu o tempo limite ou excedeu a contagem. Uma sessão concluída não grava mais dados sobre novas solicitações e os dados são excluídos no prazo de 24 horas após o término da sessão.

Como ler uma depuração

A ferramenta Debug tem duas partes principais: o mapa de transações e os detalhes da fase:

  • O mapa de transações usa ícones para marcar cada etapa notável que ocorre durante uma transação de proxy da API, incluindo execução de políticas, etapas condicionais e transições. Passe o cursor sobre qualquer ícone para ver informações resumidas. As etapas do fluxo de solicitação aparecem na parte superior do mapa de transações e nas etapas do fluxo de resposta na parte inferior.
  • A seção de detalhes da fase da ferramenta lista informações sobre o processamento interno do proxy, incluindo variáveis que foram definidas ou lidas, os cabeçalhos de solicitação e resposta, entre outros. Clique em qualquer ícone para ver os detalhes da fase dessa etapa.

Este é um exemplo de mapa de ferramentas de depuração com os principais segmentos de processamento de proxy rotulados:

Mapa de transação da ferramenta de depuração

Diagrama do Debug mostrando a solicitação "Iniciar proxy" para iniciar a solicitação de destino para iniciar
          a resposta de destino para iniciar a resposta do proxy para iniciar o fluxo do cliente pós-proxy

Legenda do mapa de transações

A tabela a seguir descreve a intenção dos ícones que você verá no mapa de transações. Esses ícones marcam cada uma das etapas de processamento notáveis durante o fluxo do proxy.

Ícones de mapa de transações

ícone do app cliente O app cliente que envia uma solicitação para o ProxyEndpoint do proxy da API.
ícone do endpoint de transição Os círculos marcam os endpoints transicionais no fluxo de proxy. Eles aparecem quando uma solicitação é enviada pelo cliente, quando a solicitação vai para o destino, quando a resposta volta do destino e quando a resposta volta para o cliente.
ícone do segmento de fluxo

As barras altas indicam o início de um segmento de fluxo no fluxo do proxy de API. Os segmentos de fluxo são: solicitação de ProxyEndpoint, solicitação de TargetEndpoint, resposta de TargetEndpoint e resposta ProxyEndpoint. Um segmento inclui o PreFlow, fluxos condicionais e PostFlow.

Consulte Como configurar fluxos para mais informações.

ícone do Analytics

Indica que as ações do Google Analytics ocorreram em segundo plano.

ícone da condição "true"

Um fluxo condicional que gera o valor "true". Para uma introdução sobre os fluxos condicionais, consulte Como configurar fluxos.

Algumas condições são geradas pelo Apigee. Por exemplo, esta é uma expressão que o Apigee usa para verificar se ocorreu um erro no ProxyEndpoint:

((error.state equals PROXY_REQ_FLOW) or (error.state equals PROXY_RESP_FLOW))
ícone da condição "false"

Um fluxo condicional que gera o valor "false". Para uma introdução sobre os fluxos condicionais, consulte Como configurar fluxos.

Algumas condições são geradas pelo Apigee. Por exemplo, a expressão a seguir é uma expressão que o Apigee usa para verificar se ocorreu um erro no TargetEndpoint:

(((error.state equals TARGET_REQ_FLOW) or (error.state equals TARGET_RESP_FLOW)) or ((error.state equals REQ_SENT) or (error.state equals RESP_START)))

xml para ícone json

ícone de cota

Políticas. Cada tipo de política tem um ícone exclusivo. Este é para à política AssignMessage". Esses ícones permitem ver onde as políticas são executadas na ordem correta e se são bem-sucedidas ou não. Clique no ícone de uma política para ver os resultados da execução e se eles são esperados ou não. Por exemplo, é possível ver se a mensagem foi transformada corretamente ou se está sendo armazenada em cache.

As políticas de execução adequada são claramente indicadas pelas marcas de verificação. No caso de um erro, um ponto de exclamação vermelho é exibido no ícone.

ícone do servidor O destino do back-end chamado pelo proxy de API.
ícone de milissegundos O cronograma indica quanto tempo (em milissegundos) o tempo de processamento levou para ser concluído. A comparação dos segmentos de tempo decorrido ajuda a isolar as políticas que estão demorando mais para serem executadas e atrasando as chamadas de API.
ícone de epsilon O Epsilon indica um período menor que um milésimo de segundo.
ícone desativado

Desativada. Aparece em um ícone de política quando uma política é desativada. Uma política pode ser desativada com a API pública. Consulte Referência de configuração do proxy da API.

ícone de erro Error. Aparece em um ícone de política quando a condição da etapa da política é avaliada como "false" (consulte Variáveis e condições do fluxo) ou no ícone da política RaiseFault quando uma política RaiseFault é executada.
ícone ignorado Ignorado. Aparece em um ícone de política quando a política não foi executada porque a condição da etapa foi avaliada como "false". Consulte Variáveis e condições de fluxo para mais informações.

Noções básicas sobre os detalhes da fase

A parte Detalhes da fase da ferramenta informa muito sobre o estado do proxy em cada etapa do processamento. Veja alguns detalhes na seção "Detalhes da fase". Clique em qualquer ícone na ferramenta de depuração para ver os detalhes da etapa selecionada ou use os botões Próximo/Voltar para ir de uma etapa a outra.

Detalhe da fase Descrição
Endpoint de proxy Indica qual fluxo ProxyEndpoint foi selecionado para execução. Um proxy de API pode ter vários endpoints de proxy com nome.
Variáveis

Lista as variáveis de fluxo que foram lidas e receberam um valor por uma política. Consulte também Como usar variáveis de fluxo.

Observação:

  • Um sinal de igual (=) indica o valor atribuído à variável.
  • Um sinal de diferente (≠) indica que não foi possível atribuir um valor à variável porque ela é somente leitura ou ocorreu um erro na execução da política.
  • Um campo vazio indica que o valor da variável foi lido.
Cabeçalhos de solicitação Lista os cabeçalhos da solicitação HTTP.
Conteúdo da solicitação Mostra o corpo da solicitação HTTP.
Propriedades As propriedades representam o estado interno do proxy de API. Eles não são mostrados por padrão.
Endpoint de destino Indica qual TargetEndpoint foi selecionado para execução.
Cabeçalhos de resposta Lista os cabeçalhos de resposta HTTP.
Conteúdo da resposta Mostra o corpo da resposta HTTP.
PostClientFlow Mostra informações sobre o PostClientFlow, que é executado depois que a solicitação é retornada ao app cliente solicitante. Somente as políticas do MessageLogging podem ser anexadas ao PostClientFlow. Atualmente, o PostClientFlow é usado principalmente para medir o intervalo de tempo entre os carimbos de data/hora de início e término da mensagem de resposta.

API Apigee

Para criar uma sessão de depuração com a API, faça uma solicitação POST para o seguinte recurso:

https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/revisions/$REV/debugsessions

Também é possível:

O exemplo a seguir demonstra como criar uma sessão de depuração usando a API.

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions" \
  -X POST \
  -H "Authorization: Bearer $TOKEN"

Em que $TOKEN está definido como seu token de acesso OAuth 2.0, conforme descrito em Como receber um token de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte Como usar curl. Para uma descrição das variáveis de ambiente usadas, consulte Como definir variáveis de ambiente para solicitações de API da Apigee.

Veja a seguir um exemplo de resposta:

{
  "name":"56382416-c4ed-4242-6381-591bbf2788cf",
  "validity":300,
  "count":10,
  "tracesize":5120,
  "timeout":"600"
}

As solicitações subsequentes para o proxy da API (até que a duração da sessão ou o número máximo de solicitações sejam alcançadas) serão avaliadas e possivelmente armazenadas nos dados da sessão de depuração.

Para mais informações, consulte Criar API de sessão de depuração.

Como configurar a duração de uma sessão de depuração usando a API

Para definir a duração de uma sessão de depuração com a API, inclua o seguinte como payload na solicitação de criação da sessão de depuração:

{
  "timeout":"debug_session_length_in_seconds"
}

O exemplo a seguir cria uma sessão de depuração com apenas 42 segundos de duração:

curl https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions"
  -X "POST" \
  -H "Authorization: Bearer $TOKEN" \
  -d ' {
    "timeout":"42"
  } '

Defina o timeout de uma sessão apenas nas solicitações de criação de sessão de depuração. Não é possível alterar a duração de uma sessão depois que ela é criada.

O valor padrão de timeout é 300 (cinco minutos). O valor máximo é de 600 segundos (10 minutos).

Como depurar com a ferramenta Debug

A depuração permite que você veja muitos detalhes internos sobre um proxy de API. Exemplo:

  • Veja rapidamente quais políticas estão sendo executadas corretamente ou apresentando falha.
  • Digamos que você tenha visto em um dos painéis do Google Analytics que uma das suas APIs apresenta uma redução incomum no desempenho. Agora, é possível usar a depuração para ajudar a identificar onde o gargalo está ocorrendo. O Debug fornece o tempo, em milissegundos, que cada etapa de processamento leva para ser concluída. Se você perceber que uma etapa está demorando muito, será possível realizar a ação corretiva.
  • Você pode verificar cabeçalhos que estão sendo enviados para o back-end, visualizar variáveis definidas por políticas e assim por diante.
  • Ao verificar o caminho base, é possível garantir que uma política esteja encaminhando a mensagem para o servidor correto.

Como filtrar dados em uma sessão de depuração

Ao criar uma sessão de depuração, é possível adicionar um filtro a ela para que a Apigee retorne apenas os dados desejados. Um filtro é uma instrução condicional que a Apigee avalia em mensagens de solicitação e resposta para determinar se os dados de depuração precisam ser incluídos na sessão de depuração. Por exemplo, é possível filtrar todas as solicitações com um código de resposta HTTP que é menor que 599 ou comparar valores na solicitação com variáveis personalizadas.

Observe o seguinte:

  • As solicitações não incluídas em uma sessão de depuração não são contabilizadas no número máximo de transações na sessão de depuração.
  • A Apigee não é compatível com a adição de filtros na string de consulta.
  • Depois que a sessão for iniciada, não será possível adicionar um filtro a uma sessão de depuração. Para adicionar um filtro, é preciso criar uma sessão de depuração.

Como usar filtros

Use um filtro ao criar uma sessão de depuração com a IU ou a API da Apigee, conforme descrito nas seções a seguir.

IU da Apigee

Ao criar uma sessão de depuração na interface do usuário, na lista suspensa Filtros, você poderá escolher um filtro predefinido para aplicar na acesse o painel Iniciar uma sessão de depuração ou escolha Filtro personalizado e crie o seu com a sintaxe do filtro.

API Apigee

Para criar uma sessão de depuração com um filtro usando a API, inclua o seguinte como um payload na sua solicitação de criação de sessão de depuração:

{
  "filter":"filter_body"
}

Para informações sobre como criar filtros, consulte Sintaxe de filtro.

O exemplo a seguir cria uma sessão de depuração que inclui apenas transações em que o cabeçalho A é igual a 42 e o cabeçalho B é igual a 43, ou o código de falha é ExpectedEOF:

curl -H "Authorization: Bearer $TOKEN" -X "POST"
  https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions
  -d ' {
    "filter":"(request.header.A == '42' && request.header.B == '43') || fault.code == 'jsonparser.ExpectedEOF'"
  } '

é possível definir um filtro apenas para solicitações de criação de sessão de depuração. No entanto, não é possível adicionar um filtro a uma sessão de depuração atual nem remover um filtro de uma sessão de depuração ativa.

Sintaxe do filtro

Os filtros são compatíveis com a mesma sintaxe usada pelas condições da Apigee, conforme descrito em Referência de condições. Isso inclui:

Além disso, os filtros podem acessar todas as variáveis de fluxo descritas na referência de variáveis de fluxo, bem como nas variáveis personalizadas. Os exemplos a seguir mostram apenas algumas das possíveis variáveis de fluxo que podem ser usadas nos filtros:

# Response codes:
  response.status.code <= 599
  response.status.code >=301 && response.status.code <=420

# Requests/responses:
  request.verb == "GET"
  request.header.A == 'B' || request.queryparam.X == 'Y'

# Query parameters:
  request.queryparam.myparam == 'fish'
  (request.queryparam.param1 == 'X' || request.queryparam.param2 == 'Y') && request.queryparam.param3 == 'Z'

# Faults:
  fault.code != 'messaging.runtime.RouteFailed'
  fault.name == 'IPDeniedAccess'

Para informações sobre como usar variáveis personalizadas, consulte Como usar atributos personalizados na Apigee na Comunidade Apigee.

Filtros de IU predefinidos

A IU da Apigee fornece um conjunto de filtros comuns para que você não precise escrever seus próprios filtros personalizados. Os filtros predefinidos são resumidos na tabela a seguir.

Nome do filtro Descrição
Response Time Greater Than

Verifica problemas de latência em que:

  • target.duration é a latência de destino, ou o tempo, em milissegundos, que uma solicitação leva para ser enviada e recebida do destino (calculada como a diferença entre target.received.end.timestamp e target.sent.start.timestamp)
  • client.duration é a latência do cliente ou o tempo, em milissegundos, que uma solicitação leva para ser enviada e recebida do cliente (calculada como a diferença entre client.received.end.timestamp e client.sent.start.timestamp)

Exemplo:


target.duration > 420 && client.duration > 1000

Para mais informações, consulte client e target na referência das variáveis de fluxo.

Response Code

Verifica se o código de resposta HTTP corresponde ao valor especificado. Por exemplo:


response.status.code <= 599
Header

Verifica se o cabeçalho da solicitação especificada é igual ao valor especificado. Por exemplo:


request.header.cache-control.1 == "16544"
Path

Verifica se a solicitação corresponde ao caminho especificado. É possível usar correspondência de caracteres curinga no seu valor. Por exemplo:


request.path == /myproxy/customer/4*
Query Param

Verifica se o parâmetro de consulta da solicitação especificado é igual ao valor especificado. Por exemplo:


request.queryparam.lang == "language:en-us"
Custom

Permite inserir suas próprias expressões. Use os objetos na referência de variáveis de fluxo e a sintaxe na referência de condições. Além disso, é possível usar variáveis personalizadas.

Para mais informações sobre como criar filtros personalizados, consulte Sintaxe de filtro.

 

Como ver sessões de depuração

A Apigee salva os dados da sessão de depuração por 24 horas. Não é possível configurar este valor. Depois de 24 horas, os dados não estarão mais disponíveis. Antes desse período, é possível ver as sessões de depuração.

Veja as sessões de depuração recentes usando a IU ou a API da Apigee, conforme descrito nas seções a seguir.

Novo Editor de Proxy

Para ver as sessões de depuração usando o novo Editor de proxy:

  1. Se você estiver usando a interface da Apigee no console do Cloud: selecione Desenvolvimento de proxy > Proxies de API.

    Se você estiver usando a interface clássica da Apigee: selecione Desenvolver > Proxies de API e no painel Proxies, selecione o ambiente do proxy que você quer depurar.

  2. Selecione o proxy que você quer depurar.
  3. Clique na guia Depurar.
  4. A seção Sessions de depuração recente exibe uma lista das sessões disponíveis.
  5. Clique no link da sessão que você quer visualizar.

Editor de Proxy clássico

Para ver as sessões de depuração usando o Editor de proxy clássico:

  1. Faça login na IU da Apigee.
  2. Selecione Proxies de API na visualização principal.
  3. Selecione o proxy que você quer depurar.
  4. Clique na guia Debug no canto superior direito da visualização Implantações.
  5. No painel Sessões de depuração recentes, faça o seguinte:
    1. Na lista suspensa Env, selecione o ambiente do proxy da API com a sessão de depuração que você quer visualizar.
    2. Na lista suspensa Rev, selecione o número de revisão do proxy da API com a sessão de depuração que você quer visualizar.

    A IU da Apigee exibe uma lista de sessões de depuração disponíveis.

  6. Clique no link da sessão que você quer visualizar.

    A IU da Apigee carrega a sessão de depuração e preenche o painel Send Request com os dados de depuração.

Como selecionar opções de visualização na IU

Na IU da Apigee, é possível escolher as opções de visualização para a sessão de depuração.

ver lista de opções

Opção Descrição
Mostrar políticas desativadas Mostrar todas as políticas desativadas. Uma política pode ser desativada com a API pública. Consulte Referência de configuração do proxy da API.
Mostrar fases ignoradas Mostra as fases ignoradas. Uma fase ignorada ocorre quando a política não foi executada porque a condição da etapa foi avaliada como "false". Consulte Condições com variáveis de fluxo para mais informações.
Mostrar todos os FlowInfos Representa transições em um segmento de fluxo.
Comparar automaticamente a fase selecionada Compara a fase selecionada com a anterior. Desative esta opção para ver somente a fase selecionada.
Exibir variáveis Exibe ou oculta variáveis que foram lidas e/ou que receberam um valor.
Mostrar propriedades As propriedades representam o estado interno do proxy de API. (Oculta por padrão.)

API Apigee

A API permite fazer o seguinte:

Ver todas as sessões de depuração com a API

Para ver todas as sessões de depuração recentes definidas para uma revisão de proxy da API em um ambiente, emita uma solicitação GET para o seguinte recurso:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions

Também é possível especificar um dos parâmetros de consulta a seguir para controlar a quantidade de dados retornados:

  • pageSize: número máximo de sessões de depuração a serem listadas. O tamanho padrão da página é 25.
  • pageToken: token de página, retornado de uma chamada anterior, que pode ser usado para recuperar a próxima página.

O exemplo a seguir demonstra como visualizar as sessões de depuração para a revisão 1 do proxy de API helloworld no ambiente test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

Em que $TOKEN está definido como seu token de acesso OAuth 2.0, conforme descrito em Como receber um token de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte Como usar curl. Para uma descrição das variáveis de ambiente usadas, consulte Como configurar variáveis de ambiente para solicitações da API Apigee.

A resposta inclui um objeto sessions que contém uma lista de sessões de depuração atualmente ativas, conforme mostrado no exemplo a seguir:

{
  "sessions": [
    {
      "id": "a423ac73-0902-4cfa-4242-87a353a84d87",
      "timestamp_ms": 1566330186000
    },
    {
      "id": "f1eccbbe-1fa6-2424-83e4-3d063b47728a",
      "timestamp_ms": 1566330286000
    }
  ]
}

Faça a depuração de sessões que contenham pelo menos uma transação incluída na resposta. Sessões de depuração que não têm transações não estão incluídas nesta lista.

Para mais informações, consulte Lista de APIs das sessões de depuração.

Ver todas as transações de uma sessão de depuração com a API

Para ver uma lista de transações de uma sessão de depuração, emita uma solicitação GET para o seguinte recurso:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions/debugsession/data

Em que debugsession é o ID de uma sessão de depuração retornada ao visualizar as sessões de depuração.

O exemplo a seguir demonstra como visualizar as transações de uma sessão de depuração para a revisão 1 da API helloworld no ambiente test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

Em que $TOKEN está definido como seu token de acesso OAuth 2.0, conforme descrito em Como receber um token de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte Como usar curl. Para uma descrição das variáveis de ambiente usadas, consulte Como configurar variáveis de ambiente para solicitações da API Apigee.

A resposta inclui uma matriz de códigos de transação, conforme mostrado no exemplo a seguir:

[
  "myorg-test-ver-5qxdb-64",
  "myorg-test-ver-5qxdb-65",
  "myorg-test-ver-5qxdb-66",
  "myorg-test-ver-5qxdb-67",
  "myorg-test-ver-5qxdb-68",
  "myorg-test-ver-5qxdb-69",
  "myorg-test-ver-5qxdb-70",
  "myorg-test-ver-5qxdb-71",
  "myorg-test-ver-5qxdb-72"
]

Para mais informações, consulte Lista de APIs de dados da sessão de depuração.

Como visualizar dados de transação de uma sessão de depuração usando a API

Para visualizar os dados de transação de uma sessão de depuração, emita uma solicitação GET para o seguinte recurso:

https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}/debugsessions/{debugsession}/data/{transactionId}

Em que debugsession é o ID de uma sessão de depuração retornada quando você visualiza as sessões de depuração e transactionId é o ID retornado quando você visualiza uma lista de transações de um sessão de depuração.

Os dados da transação salvos durante uma sessão de depuração são formatados em JSON. É possível carregar esses dados na ferramenta Debug off-line.

No exemplo a seguir, demonstramos como fazer o download dos dados de transação de uma sessão de depuração para a revisão 1 da API helloworld no ambiente test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data/myorg-test-ver-5qxdb-64" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

Em que $TOKEN está definido como seu token de acesso OAuth 2.0, conforme descrito em Como receber um token de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte Como usar curl. Para uma descrição das variáveis de ambiente usadas, consulte Como configurar variáveis de ambiente para solicitações de API Apigee.

A resposta consiste em um payload JSON que contém os dados da transação especificada, conforme descrito em Fazer o download da estrutura de dados.

Os dados de Debug contêm todas as informações sobre a solicitação e a resposta de cada parte do fluxo em um formato JSON proprietário. É possível salvar esses dados e usá-los posteriormente na ferramenta Debug off-line.

Se nenhuma solicitação tiver sido adicionada à sessão antes do término, a resposta será semelhante a esta:

[]

Para mais informações, consulte Conseguir API de dados da sessão de depuração.

Como fazer download de dados da sessão de depuração

É possível fazer o download de um arquivo de resultados de Debug brutos para visualização off-line. O arquivo transferido por download mostra todos os detalhes da sessão de depuração, incluindo o conteúdo de todos os cabeçalhos, variáveis e políticas.

Os dados da sessão de depuração ficam disponíveis para download ou visualização na IU por apenas 24 horas. Depois disso, a Apigee exclui os dados da sessão.

Novo Editor de Proxy

Para fazer o download da sessão de depuração atual no novo Editor de proxy, clique em Download Session no painel esquerdo da visualização Debug.

Fazer o download de uma sessão de depuração.

Observe que uma sessão de depuração é excluída em até 24 horas após a conclusão. Portanto, se você quiser ver a sessão de depuração após esse período, faça o download dela antes disso.

Editor de Proxy clássico

Para fazer o download dos dados da sessão de depuração atual usando o Editor de proxy clássico:

  • Sessão ativa: clique no ícone de download ( Ícone de download) no painel Detalhes do Debug.
  • Sessão anterior: clique no nome da sessão no painel Sessões de depuração recentes, conforme descrito em Ver sessões de depuração. Em seguida, clique em Ícone de download no painel Detalhes do Debug.

API Apigee

Para visualizar os IDs de todas as transações da sessão de depuração atual usando a API Apigee, insira o seguinte comando:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions/SESSION_ID/data

em que SESSION_ID é o ID da sessão de depuração que você quer fazer o download.

Consulte Listar os IDs de transação de uma sessão de depuração.

Para ver os dados de depuração de uma transação usando a API Apigee, digite o seguinte comando:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions/SESSION_ID/data/TRANSACTION_ID

Fazer o download da estrutura de dados

A estrutura de download dos dados da sessão de depuração é diferente para a IU e a API da Apigee.

IU da Apigee

Ao fazer o download de dados usando a IU da Apigee, a estrutura de dados:

  • inclui todas as transações em toda a sessão;
  • armazena transações em uma matriz Messages;
  • inclui metadados sobre a sessão (como um objeto DebugSession).

API Apigee

Não é possível usar a API Apigee para visualizar os dados de uma sessão inteira de uma só vez. Você só podeusar a API para visualizar dados de transação individuais, conforme descrito em Como visualizar sessões de depuração.

Exemplo:

{
  "completed": true,
  "point": [
    ...
  ...
}

Fazer o download de exemplos de dados

O exemplo a seguir destaca um objeto de metadados DebugSession nos dados salvos. Esse objeto é seguido pela matriz Messages que contém as transações na sessão.

{
  "DebugSession": {
    "Retrieved": "2019-06-08T13:08:13.395Z",
    "Organization": "myorg",
    "Environment": "prod",
    "API": "myproxy",
    "Revision": "1",
    "SessionId": "a2a271aa-4242-4ac6-97cb-aec8dcb115a9"
  },
  "Messages": [
    {
      "completed": true,
      "point": [
        {
          "id": "Paused"
        },
        {
          "id": "Resumed"
        },
        {
          "id": "StateChange",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "To",
                    "value": "REQ_HEADERS_PARSED"
                  },
                  {
                    "name": "From",
                    "value": "REQ_START"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            },
            {
              "ActionResult": "RequestMessage",
              "headers": [
                {
                  "name": "accept",
                  "value": "*/*"
                },
                {
                  "name": "accept-encoding",
                  "value": "gzip,gzip,deflate,br"
                },
                {
                  "name": "content-length",
                  "value": "0"
                },
                {
                  "name": "host",
                  "value": "myorg.example.domain.net"
                },
                {
                  "name": "user-agent",
                  "value": "Google-Apigee"
                },
                {
                  "name": "x-b3-sampled",
                  "value": "0"
                },
                {
                  "name": "x-b3-spanid",
                  "value": "d4ee579206759662"
                },
                {
                  "name": "x-b3-traceid",
                  "value": "adc1e171777c237dd4ee579206759662"
                },
                {
                  "name": "x-forwarded-for",
                  "value": "66.102.8.98"
                },
                {
                  "name": "x-forwarded-proto",
                  "value": "https"
                },
                {
                  "name": "x-request-id",
                  "value": "54e05cba-4242-4490-4242-60c45c156f90"
                }
              ],
              "uRI": "/myproxy",
              "verb": "GET"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "environment.name",
                    "value": "prod"
                  },
                  {
                    "name": "environment.qualifiedname",
                    "value": "myorg__prod"
                  },
                  {
                    "name": "environment.orgname",
                    "value": "myorg"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "organization.name",
                    "value": "myorg"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "apiproxy.qualifiedname",
                    "value": "myproxy__1"
                  },
                  {
                    "name": "apiproxy.basepath",
                    "value": "/"
                  },
                  {
                    "name": "apiproxy.revision",
                    "value": "1"
                  },
                  {
                    "name": "apiproxy.name",
                    "value": "myproxy"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        ...
      ...
    }
  ]
}

Se a sessão de depuração não incluir nenhuma solicitação, a matriz Message estará vazia, como no exemplo a seguir:

{
  "DebugSession": {
    "Retrieved": "2019-06-08T13:08:13.395Z",
    "Organization": "myorg",
    "Environment": "prod",
    "API": "myproxy",
    "Revision": "1",
    "SessionId": "a2a271aa-4242-4ac6-97cb-aec8dcb115a9"
  },
  "Messages": []
}

Como excluir dados de uma sessão de depuração

Exclua dados de uma sessão de depuração usando a IU ou a API da Apigee, conforme descrito nas seções a seguir.

Novo Editor de Proxy

Para excluir uma sessão de depuração no novo Editor de proxy:

  1. Selecione a linha da sessão que você quer excluir.
  2. Clique no menu de três pontos no final da linha e selecione Excluir.

Editor de Proxy clássico

Clique em Excluir ícone no painel Debug details da sessão de depuração.

API Apigee

Para excluir todos os dados da sessão de depuração usando a API, emita uma solicitação DELETE para o seguinte recurso:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions/debugsession/data

Em que debugsession é o ID de uma sessão de depuração retornada quando você visualiza as sessões de depuração.

O exemplo a seguir mostra como excluir dados da sessão de depuração para a revisão 1 da API helloworld no ambiente test.

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data" \
  -X DELETE \
  -H "Authorization: Bearer $TOKEN"

Em que $TOKEN está definido como seu token de acesso OAuth 2.0, conforme descrito em Como receber um token de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte Como usar curl. Para uma descrição das variáveis de ambiente usadas, consulte Como configurar variáveis de ambiente para solicitações da API Apigee.

Se bem-sucedido, o corpo da resposta fica vazio.

Os dados da sessão de depuração são mantidos por apenas 24 horas. Se você não os excluir explicitamente antes disso, a Apigee os excluirá.