Usar a depuração

Esta página aplica-se ao Apigee e ao Apigee Hybrid.

Ver documentação do Apigee Edge.

Esta secção descreve como criar e gerir sessões de depuração e ver os dados de pedidos e respostas através da IU e da API Apigee.

Use a depuração offline para ver e analisar sessões de depuração transferidas anteriormente.

Criar uma sessão de depuração

A ferramenta de depuração é simples de usar. Inicia uma sessão de depuração e, em seguida, faz uma chamada API para o Apigee e, depois, vê os dados de pedido e resposta na IU.

Crie uma sessão de depuração através da IU ou da API Apigee, conforme descrito nas secções seguintes.

IU do Apigee

Depuração v2 (novo)

Para criar uma sessão de depuração:

  1. Na Google Cloud consola, aceda à página Desenvolvimento de proxies > Proxies de API.

    Aceda a Proxies de API

  2. Selecione o proxy de API que quer depurar. É apresentado o painel Vista geral do editor de proxy.
  3. Clique no separador Depurar.
  4. Clique em Iniciar sessão de depuração. É apresentado o painel Iniciar sessão de depuração.
  5. No painel Iniciar sessão de depuração:

    1. Selecione o ambiente no qual quer executar a sessão de depuração.
    2. (Opcional) Na lista pendente Filtro, selecione um filtro para aplicar a todas as transações na sessão de depuração que está a criar. A predefinição é None (All transactions), que inclui todas as transações nos dados de depuração.

      Para obter informações sobre a utilização de filtros, consulte o artigo Utilizar filtros numa sessão de depuração. Para obter informações sobre os filtros incorporados, consulte o artigo Usar filtros predefinidos.

    3. Clique em Iniciar.

A IU do Apigee apresenta agora o painel Sessão de depuração em curso.

Clique para ver uma imagem maior nova sessão de depuração

A sessão de depuração regista pedidos durante 10 minutos ou até serem capturados 15 pedidos. Pode ajustar o limite de 10 minutos se criar a sessão de depuração através da API. O campo Termina dentro de apresenta o tempo restante na sessão.

Não são apresentadas informações no painel de depuração até enviar um pedido ao proxy que está a depurar no ambiente selecionado para a sessão de depuração.

Depois de enviar o pedido, este é apresentado no painel de lista Transações. A lista de Transações é atualizada a cada cinco segundos.

Clique para ver uma imagem maior pedido na lista de transações

Para ver ou copiar o resultado da transação:

  1. Na lista Transações, clique em Ver resultado da transação. É apresentado o painel Resultado da transação.
  2. Clique numa transação individual ou em Todas as transações.
  3. Clique em Copiar para copiar o resultado da transação para a área de transferência.
  4. Clique em Fechar.

Depuração v1

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

  1. Inicie sessão na Google Cloud consola.
  2. Selecione Proxy de desenvolvimento > Proxies de API.

  3. Selecione o proxy de API que quer depurar. É apresentada a vista Vista geral do editor de proxy.

  4. Clique no separador Depurar na parte superior esquerda da janela.
  5. Clique em Iniciar sessão de depuração na parte superior direita do painel Depurar. É apresentada a caixa de diálogo Iniciar sessão de depuração.

    Caixa de diálogo Iniciar sessão de depuração.

    Na caixa de diálogo:

    1. Selecione o ambiente no qual quer executar a sessão de depuração.
    2. (Opcional) Na lista pendente Filtro, selecione um filtro para aplicar a todas as transações na sessão de depuração que está a criar. A predefinição é None (All transactions), que inclui todas as transações nos dados de depuração.

      Para obter informações sobre a utilização de filtros, consulte o artigo Utilizar filtros numa sessão de depuração. Para obter informações sobre os filtros incorporados, consulte o artigo Usar filtros predefinidos.

    3. Clique em Iniciar.

A IU do Apigee apresenta agora a vista Sessão de depuração em curso.

Sessão de depuração em curso

A sessão de depuração regista pedidos durante 10 minutos ou até serem capturados 15 pedidos. Pode ajustar o limite de 10 minutos se criar a sessão de depuração através da API. O campo Termina dentro de apresenta o tempo restante na sessão.

Não são apresentadas informações no painel Debug até enviar um pedido para o proxy que está a depurar no ambiente selecionado. ambiente para a sessão de depuração.

Depois de enviar o pedido, este é apresentado na parte inferior do painel do lado esquerdo.

Caixa de diálogo Iniciar sessão de depuração.

Nota: durante uma sessão de depuração ativa, pode iniciar outra sessão na IU do Apigee. Para o fazer, basta clicar novamente em Iniciar sessão de depuração.

API

Para criar uma sessão de depuração através da API, emita um pedido POST para o seguinte recurso:

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

Opcionalmente, pode:

O exemplo seguinte demonstra como criar uma sessão de depuração através da API.

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

Onde $TOKEN está definido como a sua chave de acesso OAuth 2.0, conforme descrito em Obter uma chave de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte a secção Usar o curl. Para uma descrição das variáveis de ambiente que pode usar, consulte o artigo Definir variáveis de ambiente para pedidos de API Apigee.

Segue-se um exemplo da resposta:

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

Os pedidos subsequentes ao proxy da API (até ser atingida a duração da sessão ou o número máximo de pedidos) são avaliados e potencialmente armazenados nos dados da sessão de depuração.

Para mais informações, consulte a API Create debug session.

Definir a duração de uma sessão de depuração através da API

Para definir a duração de uma sessão de depuração através da API, inclua o seguinte como uma carga útil no seu pedido de criação de sessão de depuração:

{
      "timeout":"debug_session_length_in_seconds"
    }

O exemplo seguinte cria uma sessão de depuração com apenas 42 segundos:

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

Só pode definir o timeout de uma sessão em pedidos de criação de sessões de depuração. Não pode alterar a duração de uma sessão depois de a criar.

O valor predefinido de timeout é 300 (5 minutos). O valor máximo é de 600 segundos (10 minutos).

Copie o URL do proxy

O URL de proxy é usado para enviar pedidos para o seu proxy de API.

Depuração v2 (novo)

Para encontrar e copiar o URL de proxy:

  1. No painel Sessão de depuração, campo URL, clique em Copiar.
  2. Se não estiver aberta uma sessão de depuração:
    1. Na Google Cloud consola, aceda à página Gestão > Ambientes > Grupos de ambientes.

      Aceda a Grupos de ambientes

    2. O URL é o nome de anfitrião para o ambiente respetivo com o qual quer executar a sessão de depuração. Selecione-o e, de seguida, copie-o.

Para selecionar um URL de proxy diferente:

  1. No painel Sessão de depuração, campo URL, clique em Editar.
  2. Faça as alterações pretendidas e, de seguida, clique em Atualizar.
  3. Se não estiver aberta uma sessão de depuração:
    1. Encontre o URL de proxy.
    2. Clique em Mais, e, de seguida, clique em Editar.
    3. Faça as alterações pretendidas e, de seguida, clique em Atualizar.

Depuração v1

Para encontrar e copiar o URL de proxy:

  1. Na Google Cloud consola, aceda a Gestão > Ambientes > Grupos de ambientes
  2. O URL é o nome do anfitrião para o ambiente respetivo com o qual quer executar a sessão de depuração. Selecione-o e, de seguida, copie-o.

Para editar o URL de proxy:

  1. Encontre o URL de proxy.
  2. Clique em Mais, e, de seguida, clique em Editar.
  3. Faça as alterações pretendidas e, de seguida, clique em Atualizar.

Iniciar outra sessão de depuração na IU

Pode criar qualquer número de sessões de depuração na IU.

Durante uma sessão de depuração ativa, pode iniciar outra sessão na IU do Apigee. Para tal, clique em Fechar no painel Sessão de depuração:

Clique para ver a imagem maior Feche e regresse ao painel Inicie uma sessão de depuração

A IU regressa ao painel Iniciar uma sessão de depuração, onde pode iniciar uma nova sessão de depuração.

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

Não pode simplesmente parar uma sessão de depuração ativa. No entanto, pode eliminar os dados de uma sessão ativa, conforme descrito em Eliminar dados da sessão de depuração.

Quando cria uma sessão de depuração, existem duas propriedades que determinam quando termina:

  • timeout: o período durante o qual recolhe dados durante uma sessão. A duração predefinida depende da forma como iniciou a sessão (através da IU ou da API). O valor máximo é de 600 segundos (ou 10 minutos).
  • count: o número máximo de pedidos registados numa única sessão por processador de mensagens. Uma vez que o número de processadores de mensagens na maioria dos clusters é variável, os efeitos da contagem podem ser imprevisíveis. O Apigee não recomenda a personalização desta definição.

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

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

  • Uma sessão ativa é uma sessão de depuração que ainda não atingiu o respetivo limite de tempo nem excedeu a respetiva quantidade. Uma sessão ativa continua a registar dados de pedidos para pedidos que não são filtrados.
  • Uma sessão concluída é uma sessão de depuração que atingiu o limite de tempo ou excedeu a respetiva contagem. Uma sessão concluída deixa de registar dados sobre novos pedidos e os respetivos dados são eliminados no prazo de 24 horas após a hora em que a sessão terminou.

Como ler uma sessão de depuração

Esta secção oferece uma vista geral de uma sessão de depuração.

Veja também:

Depuração v2 (novo)

A ferramenta de depuração tem duas partes principais: o painel de transações e os detalhes da fase:

  • O painel de transações usa ícones para marcar cada passo notável que ocorre durante uma transação de proxy da API, incluindo a execução de políticas, os passos condicionais e as transições. Passe o cursor do rato sobre qualquer ícone para ver informações de resumo. Os passos do fluxo de pedidos aparecem na parte superior do mapa de transações e os passos do fluxo de respostas na parte inferior.
  • O painel Detalhes da fase apresenta informações sobre o processamento interno do proxy, incluindo variáveis que foram definidas ou lidas, cabeçalhos de pedidos e respostas, e muito mais. Clique em qualquer ícone para ver os detalhes da fase desse passo.

Depuração v1

Esta versão da ferramenta de depuração usa um gráfico de Gantt para apresentar os passos no pedido e na resposta.

Painel de transações

O painel de transações mostra os passos no pedido e na resposta.

Depuração v2 (novo)

Segue-se um exemplo do painel de transações da ferramenta de depuração com os principais segmentos de processamento de proxy etiquetados:

Clique para ver a imagem maior Diagrama de depuração que mostra o pedido de proxy de início para iniciar o pedido de destino para iniciar a resposta de destino para iniciar a resposta de proxy para iniciar o fluxo de publicação do cliente

Depuração v1

Para ver os detalhes de uma transação (pedido e resposta) na vista de depuração, clique na linha da transação para apresentar um gráfico de Gantt no painel do lado direito que mostra os passos no pedido e na resposta.

Gráfico de Gantt dos passos da transação no painel do lado direito.

O eixo horizontal do diagrama indica as horas em que cada passo ocorreu, medido em milissegundos. Cada passo é representado por um retângulo que se estende desde a hora de início até à hora de fim do passo.

Pode percorrer uma sessão de depuração com os botões Anterior e Seguinte na parte inferior direita do painel de depuração. Clique em:

  • Anterior para mover a linha selecionada para o passo anterior no gráfico.
  • Seguinte para mover a linha selecionada para o passo seguinte no gráfico.

No exemplo apresentado acima, o gráfico apresenta duas políticas que são executadas na resposta:

  • ResponsePayload
  • Adicione CORS

Pode clicar num destes passos para ver os respetivos detalhes. Por exemplo, se clicou na política Adicionar CORS, veria detalhes como os apresentados abaixo junto ao gráfico de Gantt.

Adicione detalhes da política CORS.

Se, em seguida, decidir alterar algo na configuração da política, pode clicar em Desenvolver para mudar para a vista Desenvolver, onde veria as mesmas duas políticas no PostFlow de resposta.

Visualizar o separador Desenvolver em relação a uma sessão de depuração.

Legenda do painel de transações

A descrição seguinte refere-se aos ícones no painel de transações:

Depuração v2 (novo)

Esta secção descreve os ícones no painel de transações:

Ícones de políticas

Cada tipo de política tem um ícone exclusivo. Estes ícones permitem-lhe ver onde as políticas são executadas pela ordem adequada e se são bem-sucedidas ou não. Pode clicar num ícone de política para ver os resultados da respetiva execução e se são esperados ou não. Por exemplo, pode ver se a mensagem foi transformada corretamente ou se está a ser colocada em cache.

As políticas padrão aumentam as suas APIs para controlar o tráfego, melhorar o desempenho, aplicar a segurança e aumentar a utilidade das suas APIs, sem ter de escrever código nem modificar os serviços de back-end.

As políticas extensíveis permitem-lhe adicionar lógica personalizada aos seus proxies de API. Pode usar estas políticas para adicionar funcionalidades que não são fornecidas pelas políticas padrão.

Consulte a Vista geral de referência das políticas para mais informações sobre as políticas e as categorias.

Para filtrar a tabela:

  • Selecione um tipo de política e/ou uma categoria de política.
  • Clique no cabeçalho da coluna Nome para ordenar a tabela por nome da política.
  • Escreva uma palavra-chave para pesquisar um nome de política.

Tipo de política

Categoria de política

Ícone Nome Tipo Categoria
manage_search Política ParseDialogflowRequest Extensível Fluxo de diálogo
chat_add_on Política SetDialogflowResponse Extensível Fluxo de diálogo
stacked_line_chart Política de Captura de Dados Extensível Extensão
display_external_input Política de textos destacados externos Standard Extensão
flowsheet Política de textos destacados de fluxo Extensível Extensão
automatização Política de texto destacado de integração Extensível Extensão
Ícone da política JavaCallout Política JavaCallout Extensível Extensão
Ícone da política de JavaScript Política de JavaScript Extensível Extensão
add_notes Política de MessageLogging Extensível Extensão
chat_paste_go Política PublishMessage Standard Extensão
Ícone da política do PythonScript Política de PythonScript Extensível Extensão
integration_instructions Política ServiceCallout Extensível Extensão
automatização Política SetIntegrationRequest Extensível Extensão
waterfall_chart Política da TraceCapture Extensível Extensão
cloud_done Política AccessEntity Extensível Mediação
account_tree Política de AsseretCondition Standard Mediação
edit_square Política AssignMessage Extensível Mediação
login Política ExtractVariables Extensível Mediação
Ícone de política GraphQL Política de GraphQL Standard Mediação
sync_alt Política HTTPModifier Standard Mediação
sync_alt Política de JSON para XML Standard Mediação
account_tree Política KeyValueMapOperations Extensível Mediação
sync_alt Política MonetizationLimitsCheck Extensível Mediação
cloud_done Política de validação da OAS Standard Mediação
denunciar Política RaiseFault Standard Mediação
sync_alt Política ReadPropertySet Standard Mediação
cloud_done Política SOAPMessageValidation Standard Mediação
sync_alt Política XMLtoJSON Standard Mediação
cloud_done Política XSLTransform Extensível Mediação
bloquear Política AccessControl Standard Segurança
segurança Política de BasicAuthentication Extensível Segurança
connect_without_contact Política de CORS Standard Segurança
bloquear Política DecodeJWS Extensível Segurança
bloquear Política DecodeJWT Standard Segurança
chave de acesso Política DeleteOAuthV2Info Extensível Segurança
bloquear Política GenerateSamlAssertion Extensível Segurança
bloquear GenerateJWS policy Extensível Segurança
bloquear Política GenerateJWT Extensível Segurança
chave de acesso Política GetOAuthV2Info Extensível Segurança
bloquear Política de HMAC Standard Segurança
segurança Política JSONThreatProtection Extensível Segurança
chave de acesso Política OAuthV2 Extensível Segurança
segurança Política RegularExpressionProtection Extensível Segurança
chave de acesso RevokeOAuthV2 policy Extensível Segurança
chave de acesso Política SetOAuthV2Info Extensível Segurança
bloquear Política ValidateSamlAssertion Extensível Segurança
key Política VerifyAPIKey Extensível Segurança
chave de acesso VerifyIAM policy Extensível Segurança
bloquear Política VerifyJWS Extensível Segurança
bloquear Política VerifyJWT Standard Segurança
segurança Política XMLThreatProtection Extensível Segurança
em cache Política InvalidateCache Extensível Gestão de tráfego
em cache Política LookupCache Extensível Gestão de tráfego
em cache Política PopulateCache Extensível Gestão de tráfego
bar_chart_4_bars Política de quotas Extensível Gestão de tráfego
repartition Política ResetQuota Extensível Gestão de tráfego
em cache Política ResponseCache Extensível Gestão de tráfego
emergency_home Política SpikeArrest Standard Gestão de tráfego

Outros ícones

A tabela seguinte descreve a finalidade dos outros ícones que vê no painel de transações. Estes ícones marcam cada um dos passos de processamento notáveis ao longo do fluxo do proxy.

Para filtrar a tabela:

  • Selecione um tipo de ícone.
  • Clique no cabeçalho da coluna Nome para ordenar a tabela por nome do ícone.
  • Escreva uma palavra-chave para pesquisar o nome de um ícone.

Tipo de ícone

Ícone Nome Tipo Descrição
monitorizar App cliente Transação padrão A app cliente que envia um pedido para o ProxyEndpoint do proxy de API.
círculo Ponto final de transição Transação padrão O círculo marca os pontos finais de transição no fluxo do proxy. Estão presentes quando o cliente envia um pedido, quando o pedido é enviado para o destino, quando o destino envia a resposta e quando a resposta é enviada de volta para o cliente.
stat_0 Segmento do fluxo Transação padrão

O losango indica o início de um segmento de fluxo no fluxo do proxy da API. Os segmentos de fluxo são: pedido ProxyEndpoint, pedido TargetEndpoint, resposta TargetEndpoint e resposta ProxyEndpoint. Um segmento inclui o PreFlow, os Conditional Flows e o PostFlow.

Consulte Fluxos condicionais para mais informações.

Ícone de condição verdadeira Fluxo condicional verdadeiro Transação padrão

Um fluxo condicional que é avaliado como verdadeiro (como uma declaração if que foi avaliada como true). Para uma introdução aos fluxos condicionais, consulte Fluxos condicionais.

Tenha em atenção que algumas condições são geradas pelo Apigee. Por exemplo, o seguinte é 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 de condição falsa Fluxo condicional falso Transação padrão

Um fluxo condicional que é avaliado como falso. Para uma introdução aos fluxos condicionais, consulte Fluxos condicionais.

Tenha em atenção que algumas condições são geradas pelo Apigee. Por exemplo, o seguinte é 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)))

Ícone de informações do fluxo Informações do fluxo Transação padrão Representa informações contextuais sobre a execução do proxy de API, que variam consoante o ponto no fluxo. Isto inclui detalhes sobre a configuração do proxy, o estado de execução atual (por exemplo, PreFlow, PostFlow, flow hooks), detalhes de execução da política e variáveis preenchidas durante a execução da política, para indicar o estado específico do proxy nesse ponto.
done_all Execução do fluxo Transação padrão Marca o início ou o fim da execução de um fluxo, indicando o período de um segmento de fluxo distinto, para demarcar visualmente os limites do fluxo e indicar a sequência de execução do fluxo.
commit Processamento de fluxos Transação padrão Indica o processamento ativo num fluxo, representando o período durante o qual as políticas e a lógica do fluxo são executadas.
bar_chart Dados capturados pelas estatísticas do Apigee Transação padrão Indica que ocorreram ações do Analytics em segundo plano.
location_on Serviço de back-end Transação padrão Serviço de back-end que recebe o pedido. O destino de back-end chamado pelo proxy de API.
Ícone desativado Desativado Estado do passo Aparece num ícone de política quando uma política está desativada. Uma política pode ser desativada com a API pública. Consulte a referência de configuração do proxy da API.
ícone de erro Erro Estado do passo Aparece num ícone de política quando a condição do passo de política é avaliada como falsa (consulte Condições com variáveis de fluxo) ou no ícone de política RaiseFault sempre que uma política RaiseFault é executada.
Ícone de ignorado Ignorado Estado do passo Aparece num ícone de política quando a política não foi executada porque a condição do passo foi avaliada como falsa. Consulte as Condições com variáveis de fluxo) para mais informações.

Depuração v1

Esta versão usa um gráfico de Gantt para apresentar os passos no pedido e na resposta. Não é fornecida nenhuma legenda.

Painel de detalhes da fase

O painel de detalhes da fase indica o estado do seu proxy em cada passo de processamento.

Depuração v2 (novo)

O painel de detalhes da fase indica muitas informações sobre o estado do seu proxy em cada passo de processamento. Seguem-se alguns dos detalhes facultados. Clique em qualquer ícone na ferramenta de depuração para ver detalhes do passo selecionado ou use os botões > Seguinte ou < Anterior para passar de um passo para outro.

A tabela seguinte descreve os detalhes facultados no painel de detalhes da fase.

Detalhes da fase Descrição
Variáveis

Apresenta as variáveis de fluxo que foram lidas e às quais foi atribuído um valor por uma política. Consulte também Usar variáveis de fluxo.

Cabeçalhos do pedido Apresenta os cabeçalhos do pedido HTTP.
Peça conteúdo Mostra o corpo do pedido HTTP.
Propriedades As propriedades representam o estado interno do proxy da API. Estas não são apresentadas por predefinição.
Ponto final de destino Indica que TargetEndpoint foi selecionado para execução.
Cabeçalhos das respostas Lista os cabeçalhos de resposta HTTP.
Conteúdo da resposta Mostra o corpo da resposta HTTP.

Depuração v1

Clique nos passos no gráfico de Gantt para ver os detalhes da fase ou percorra uma sessão de depuração com os botões > Seguinte ou < Anterior.

Linha cronológica

A cronologia indica quanto tempo (em milissegundos) demorou o tempo de processamento a ser concluído. A comparação dos segmentos de tempo decorrido ajuda a isolar as políticas que demoram mais tempo a executar e que estão a abrandar as chamadas da API.

O épsilon indica um período inferior a um milissegundo.

Depuração v2 (novo)

Clique para ver a imagem maior Linha cronológica na IU de depuração v2

Depuração v1

Clique para ver a imagem maior Linha cronológica na IU de depuração v1

Expandir e reduzir grupos

Esta secção descreve como expandir e reduzir grupos no painel Transação.

Depuração v2 (novo)

Os passos da transação, tanto para o pedido como para a resposta, são agrupados pela forma como foram configurados anteriormente no separador Desenvolver; pelo fluxo partilhado. Por exemplo: pré-proxy, pós-proxy, pré-segmentação e pós-segmentação.

Cada agrupamento apresenta claramente as políticas, as condições, os fluxos partilhados e as informações dos fluxos relevantes.

Os fluxos partilhados são agrupados e reduzidos por predefinição.

As seguintes ações estão disponíveis no painel Transação:

Item Nome Descrição
Expandir todos os controlos de deslize
<img <="" alt="collapse all slider" class="screenshot" src="/static/apigee/docs/api-platform/debug/images/collapse_all_slider.png" td="" width="" />
Expandir tudo
Reduzir tudo
Expanda ou reduza todos os grupos.
Ícone de expandir grupo
Ícone de reduzir grupo
Expandir
Reduzir
Expanda ou reduza um grupo.

Veja também:

Depuração v1

A expansão e o recolhimento de grupos não estão disponíveis nesta versão.

A pesquisa permite-lhe encontrar uma palavra ou uma expressão no pedido ou na resposta.

Depuração v2 (novo)

A pesquisa permite-lhe encontrar uma palavra ou uma expressão no pedido ou na resposta.

Tenha em conta o seguinte:

  • A pesquisa não é sensível a maiúsculas e minúsculas
  • A pesquisa aplica-se a uma única transação, ou seja, não pesquisa todas as transações em toda a sessão de depuração.
  • A pesquisa expande as secções reduzidas, mas não mostra informações sobre nós que são filtrados pelas seleções de Opções de visualização.

Para pesquisar:

  1. Escreva texto na caixa de pesquisa.
  2. Prima Enter.

    Os resultados da pesquisa são realçados no painel de transações e no painel Detalhes da fase.

  3. Clique em keyboard_arrow_up Anterior ou keyboard_arrow_down Seguinte para avançar ou recuar um passo.
Clique para ver a imagem maior Resultados da pesquisa na IU de depuração v2

Depuração v1

A pesquisa não está disponível nesta versão.

Zoom

O zoom permite-lhe controlar a vista do painel de transações.

Depuração v2 (novo)

O zoom controla a vista do painel de transações da seguinte forma:

Clique para ver a imagem maior Depure os controlos de zoom da v2
Ícone Descrição
100% Nível de zoom atual. A predefinição é 100%.
fit_screen Ajustar ao ecrã
zoom_in Aumentar
zoom_out Reduzir
youtube_searched_for Reposição do zoom

Depuração v1

O zoom não está disponível nesta versão.

Depuração com a ferramenta de depuração

A depuração permite-lhe ver muitos detalhes internos sobre um proxy de API. Por exemplo:

  • Pode ver rapidamente que políticas estão a ser executadas corretamente ou a falhar.
  • Suponhamos que reparou através de um dos painéis de controlo do Analytics que uma das suas APIs está a registar uma diminuição invulgar no desempenho. Agora, pode usar a depuração para ajudar a identificar onde está a ocorrer o gargalo. Debug indica o tempo, em milissegundos, que cada etapa de processamento demora a concluir. Se achar que um passo está a demorar demasiado tempo, pode tomar medidas corretivas.
  • Pode verificar os cabeçalhos que estão a ser enviados para o back-end, ver as variáveis definidas pelas políticas, etc.
  • Ao validar o caminho base, pode garantir que uma política está a encaminhar a mensagem para o servidor correto.

Filtrar dados numa sessão de depuração

Quando cria uma sessão de depuração, pode adicionar um filtro a essa sessão para que o Apigee devolva apenas os dados pretendidos. Um filtro é uma declaração condicional que o Apigee avalia em relação às mensagens de pedido e resposta para determinar se os respetivos dados de depuração devem ser incluídos na sessão de depuração. Por exemplo, pode filtrar todos os pedidos com um código de resposta HTTP inferior a 599 ou comparar valores no pedido com variáveis personalizadas.

Tenha em conta o seguinte:

  • Os pedidos que não estão incluídos numa sessão de depuração porque são filtrados não contam para o número máximo de transações na sessão de depuração.
  • O Apigee não suporta a adição de filtros na string de consulta.
  • Não pode adicionar um filtro a uma sessão de depuração depois de esta ter sido iniciada. Para adicionar um filtro, tem de criar uma sessão de depuração.

Usar filtros

Use um filtro quando criar uma sessão de depuração através da IU ou da API Apigee, conforme descrito nas secções seguintes.

IU do Apigee

Quando cria uma sessão de depuração na IU, na lista pendente Filtros, pode escolher um filtro predefinido para aplicar no painel Iniciar uma sessão de depuração ou escolher Filtro personalizado e criar o seu próprio filtro com a sintaxe de filtro.

API

Para criar uma sessão de depuração com um filtro através da API, inclua o seguinte como um payload no seu pedido de criação da sessão de depuração:

{
  "filter":"filter_body"
}

Para informações sobre a criação de filtros, consulte o artigo Sintaxe de filtros.

O exemplo seguinte 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'"
  } '

Só pode definir um filtro em pedidos de criação de sessões de depuração. Não pode adicionar um filtro a uma sessão de depuração existente nem remover um filtro de uma sessão de depuração ativa.

Sintaxe de filtro

Os filtros suportam a mesma sintaxe usada pelas condições do Apigee, conforme descrito na Referência de condições. Isto inclui:

Além disso, os filtros podem aceder a todas as variáveis de fluxo descritas na referência de variáveis de fluxo, bem como a variáveis personalizadas. Os exemplos seguintes mostram apenas algumas das variáveis de fluxo possíveis que pode usar em 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 obter informações sobre a utilização de variáveis personalizadas, consulte o artigo Como usar atributos personalizados no Apigee na comunidade do Apigee.

Filtros da IU predefinidos

A IU do Apigee fornece um conjunto de filtros comuns para que não tenha de escrever os seus próprios filtros personalizados. Os filtros predefinidos estão resumidos na tabela seguinte.

Nome do filtro Descrição
Response Time Greater Than

Verifica se existem problemas de latência quando:

  • target.duration é a latência alvo, ou a quantidade de tempo, em milissegundos, que um pedido demora a ser enviado para e recebido do alvo (calculado como a diferença entre target.received.end.timestamp e target.sent.start.timestamp)
  • client.duration é a latência do cliente, ou a quantidade de tempo, em milissegundos, que um pedido demora a ser enviado para o cliente e recebido do mesmo (calculada como a diferença entre client.received.end.timestamp e client.sent.start.timestamp)

Por exemplo:

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

Para mais informações, consulte client e target na Referência de 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 do pedido especificado é igual ao valor especificado; por exemplo:

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

Verifica se o pedido corresponde ao caminho especificado. Pode usar a correspondência com carateres universais no valor. Por exemplo:

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

Verifica se o parâmetro de consulta do pedido especificado é igual ao valor especificado; por exemplo:

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

Permite-lhe inserir as suas próprias expressões. Pode usar quaisquer objetos na referência de variáveis de fluxo e a sintaxe na referência de condições. Além disso, pode usar variáveis personalizadas.

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

 

Ver sessões de depuração

O Apigee guarda os dados da sessão de depuração durante 24 horas. Não pode configurar este valor. Após 24 horas, os dados deixam de estar disponíveis. Antes disso, pode ver as sessões de depuração.

Veja sessões de depuração recentes através da IU ou da API do Apigee, conforme descrito nas secções seguintes.

IU do Apigee

Depuração v2 (novo)

Para ver sessões de depuração através da Google Cloud consola

  1. Na Google Cloud consola, aceda à página Desenvolvimento de proxies > Proxies de API.

    Aceda a Proxies de API

  2. Clique no proxy que quer depurar.
  3. Clique no separador Depurar.
  4. O painel Sessões de depuração recentes apresenta uma lista de sessões de depuração disponíveis.
  5. Clique no link da sessão que quer ver.

Depuração v1

Para ver sessões de depuração através do novo editor de proxy:

  1. Inicie sessão na Google Cloud consola.
  2. Selecione Proxy de desenvolvimento > Proxies de API.

  3. Selecione o proxy que quer depurar.
  4. Clique no separador Depurar.
  5. O painel Sessões de depuração recentes apresenta uma lista das sessões de depuração disponíveis.
  6. Clique no link da sessão que quer ver.

API

Com a API, pode:

Veja todas as sessões de depuração através da API

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

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

Opcionalmente, pode especificar um dos seguintes parâmetros de consulta para controlar a quantidade de dados devolvidos:

  • pageSize: número máximo de sessões de depuração a apresentar. O tamanho da página é predefinido como 25.
  • pageToken: símbolo de página, devolvido de uma chamada anterior, que pode usar para obter a página seguinte.

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

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

Onde $TOKEN está definido como a sua chave de acesso OAuth 2.0, conforme descrito em Obter uma chave de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte a secção Usar o curl. Para uma descrição das variáveis de ambiente que pode usar, consulte o artigo Definir variáveis de ambiente para pedidos de 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 seguinte:

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

A resposta inclui apenas sessões de depuração que contenham, pelo menos, uma transação. As sessões de depuração que não tenham transações não são incluídas nesta lista.

Para mais informações, consulte a API List Debug sessions.

Veja todas as transações de uma sessão de depuração através da API

Para ver uma lista de transações de uma sessão de depuração, envie um pedido 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 devolvido quando vê as sessões de depuração.

O exemplo seguinte demonstra como ver 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"

Onde $TOKEN está definido como a sua chave de acesso OAuth 2.0, conforme descrito em Obter uma chave de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte a secção Usar o curl. Para uma descrição das variáveis de ambiente que pode usar, consulte o artigo Definir variáveis de ambiente para pedidos de API Apigee.

A resposta inclui uma matriz de IDs de transação, conforme mostrado no exemplo seguinte:

[
"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 o artigo API List debug session data.

Visualizar dados de transações para uma sessão de depuração através da API

Para ver os dados de transações de uma sessão de depuração, emita um pedido 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 devolvido quando vê as sessões de depuração e transactionId é o ID da transação devolvido quando vê uma lista de transações para uma sessão de depuração.

Os dados de transações guardados durante uma sessão de depuração estão formatados em JSON. Pode carregar estes dados na ferramenta de depuração offline.

O exemplo seguinte demonstra como transferir os dados de transações para 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"

Onde $TOKEN está definido como a sua chave de acesso OAuth 2.0, conforme descrito em Obter uma chave de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte a secção Usar o curl. Para uma descrição das variáveis de ambiente que pode usar, consulte o artigo Definir variáveis de ambiente para pedidos de API Apigee.

A resposta consiste num payload JSON que contém os dados da transação especificada, conforme descrito em Estrutura de dados de transferência.

Os dados de depuração contêm todas as informações sobre o pedido e a resposta para cada parte do fluxo num formato JSON proprietário. Pode guardar estes dados e usá-los mais tarde na ferramenta de depuração offline.

Se não foram adicionados pedidos à sessão antes de esta terminar, a resposta é semelhante à seguinte:

[]

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

Selecionar opções de visualização na IU

Esta secção descreve como selecionar opções de visualização para filtrar o que é apresentado na IU.

Para escolher as opções de visualização da sessão de depuração, selecione ou desmarque as opções no painel Opções de visualização. Estas opções de visualização são mantidas na sessão de depuração para cada utilizador.

Clique para ver uma imagem maior 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 a referência de configuração do proxy da API.
Mostrar políticas ignoradas Mostrar todas as políticas ignoradas. Uma política ignorada ocorre quando a política não foi executada porque a condição do passo foi avaliada como falsa. Consulte as Condições com variáveis de fluxo para mais informações.
Mostrar todas as FlowInfos Representar transições num segmento de fluxo.
Mostrar todas as condições do fluxo Representar as condições que foram avaliadas para cada fluxo.

Partilhe uma sessão de depuração

Pode partilhar uma sessão de depuração com outros utilizadores que tenham acesso à sua organização e as autorizações necessárias. Para tal, basta enviar-lhes o URL apresentado no navegador quando estiver a ver a sessão de depuração. O link só é válido durante 24 horas após a criação da sessão de depuração.

Transferir dados da sessão de depuração

Pode transferir um ficheiro de resultados de depuração não processados para visualização offline. O ficheiro transferido mostra os detalhes completos 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 estão disponíveis para transferência ou visualização na IU apenas durante 24 horas. Após esse ponto, o Apigee elimina os dados da sessão.

Para ver os dados da sessão de depuração transferidos, use a ferramenta de depuração offline.

IU do Apigee

Depuração v2 (novo)

Para transferir a sessão de depuração atual na Google Cloud consola, clique em Transferir na vista de depuração.

Depuração v1

Para transferir a sessão de depuração atual, clique em Transferir sessão no painel do lado esquerdo da vista de depuração.

Transfira uma sessão de depuração.

Tenha em atenção que uma sessão de depuração é eliminada no prazo de 24 horas após a conclusão. Por isso, se quiser ver a sessão de depuração após esse período, tem de a transferir antes.

API

Para ver os IDs de todas as transações da sessão de depuração atual através da API Apigee, introduza 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 quer transferir.

Consulte o artigo Liste os IDs das transações de uma sessão de depuração.

Para obter os dados de depuração de uma transação através da API Apigee, introduza 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

Transfira a estrutura de dados

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

IU do Apigee

Quando transfere dados através da IU do Apigee, a estrutura de dados:

  • Inclui todas as transações em toda a sessão
  • Armazena transações numa matriz Messages
  • Inclui metadados sobre a sessão (como um objeto DebugSession)

API

Não pode usar a API Apigee para ver os dados de sessões inteiras de uma só vez. Só pode usar a API para ver dados de transações individuais, conforme descrito em Ver sessões de depuração.

Por exemplo:

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

Transferir exemplos de dados

O exemplo seguinte realça um objeto de metadados DebugSession nos dados transferidos. Este 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 incluiu pedidos, a matriz Message está vazia, conforme mostrado no exemplo seguinte:

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

Eliminar dados de uma sessão de depuração

Elimine dados de uma sessão de depuração através da IU ou da API Apigee, conforme descrito nas secções seguintes.

IU do Apigee

Depuração v2 (novo)

Para eliminar uma sessão de depuração na Google Cloud consola:

  1. No separador Depurar, clique na linha da sessão que quer eliminar.
  2. No painel Sessão de depuração, clique em Eliminar.

Depuração v1

Para eliminar uma sessão de depuração:

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

API

Para eliminar todos os dados da sessão de depuração através da API, emita um pedido 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 devolvido quando vê as sessões de depuração.

O exemplo seguinte demonstra como eliminar os 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"
    

Onde $TOKEN está definido como a sua chave de acesso OAuth 2.0, conforme descrito em Obter uma chave de acesso OAuth 2.0. Para informações sobre as opções de curl usadas neste exemplo, consulte a secção Usar o curl. Para uma descrição das variáveis de ambiente que pode usar, consulte o artigo Definir variáveis de ambiente para pedidos de API Apigee.

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

Os dados da sessão de depuração são mantidos apenas durante 24 horas. Se não o eliminar explicitamente antes desse momento, o Apigee elimina-o por si.