Usar a interface de consultas do Monitor de Internet do Amazon CloudWatch
Uma opção para saber mais sobre o tráfego da Internet para sua aplicação da AWS é usar a interface de consulta do Monitor de Internet do Amazon CloudWatch. Para usar a interface de consulta, você cria uma consulta com filtros de dados escolhidos por você e, em seguida, executa a consulta para retornar um subconjunto dos dados do Monitor de Internet. A exploração dos dados que a consulta retorna pode fornecer insights sobre a performance da sua aplicação na Internet.
Você pode consultar e explorar todas as métricas que o Monitor de Internet captura com seu monitor, incluindo pontuações de disponibilidade e performance, bytes transferidos, tempos de ida e volta e tempo até o primeiro byte (TTFB).
O Monitor de Internet usa a interface de consulta para fornecer os dados que podem ser explorados no painel do console do Monitor de Internet. Ao usar as opções de pesquisa no painel, na página Analisar ou na página Otimizar, você pode consultar e filtrar dados da Internet para sua aplicação.
Se você quiser mais flexibilidade para explorar e filtrar seus dados do que o painel oferece, você pode usar a interface de consulta por conta própria, usando as operações da API do Monitor de Internet com a AWS Command Line Interface ou com um SDK da AWS. Esta seção apresenta os tipos de consultas que podem ser usados com a interface de consulta e os filtros que podem ser especificados para criar um subconjunto de dados, a fim de obter insights sobre o tráfego da Internet para a sua aplicação.
Tópicos
Como usar a interface de consulta
Você cria uma consulta com a interface de consulta ao escolher um tipo de consulta e, em seguida, especificar valores de filtro para retornar um subconjunto específico desejado dos dados do arquivo de log. Em seguida, você pode trabalhar com o subconjunto de dados para filtrar e classificar mais detalhadamente, criar relatórios e assim por diante.
O processo de consulta funciona da seguinte forma:
Quando você executa uma consulta, o Monitor de Internet retorna um
query ID
que é exclusivo da consulta. Esta seção descreve os tipos de consulta disponíveis e as opções de filtragem de dados nas consultas. Para entender como isso funciona, consulte também a seção sobre exemplos de consultas.Você especifica o ID da consulta com o nome do monitor com a operação da API GetQueryResults para retornar os resultados dos dados da consulta. Cada tipo de consulta retorna um conjunto diferente de campos de dados. Para saber mais, consulte Como obter resultados de consulta.
A interface de consulta fornece os tipos de consulta apresentados a seguir. Cada tipo de consulta retorna um conjunto diferente de informações sobre seu tráfego a partir dos arquivos de log, conforme mostrado.
Medições: fornece pontuação de disponibilidade, pontuação de performance, tráfego total e tempos de ida e volta, em intervalos de cinco minutos.
Principais localizações: fornece pontuação de disponibilidade, pontuação de performance, tráfego total e informações de tempo até o primeiro byte (TTFB) para as principais combinações de localização e ASN que estão sendo monitorados, por volume de tráfego.
Detalhes das principais localizações: fornece o TTFB para o Amazon CloudFront, sua configuração atual e a configuração do Amazon EC2 com melhor performance, em intervalos de uma hora.
Sugestões gerais de tráfego: fornece TTFB, usando uma média ponderada de 30 dias, para todo o tráfego em cada local monitorado da AWS.
Detalhes gerais das sugestões de tráfego: fornece TTFB, usando uma média ponderada de 30 dias, para cada local principal, para um local proposto da AWS.
Sugestões de roteamento: disponibiliza o tempo de ida e volta (RTT) médio estimado de um prefixo de IP para uma localidade da AWS, com base em um resolvedor de DNS. O RTT é calculado em intervalos de uma hora, durante um período de uma hora.
É possível filtrar os dados com mais precisão ao usar critérios específicos. Com a maioria dos tipos de consulta, exceto as sugestões de roteamento, você pode realizar a filtragem ao especificar um ou mais dos seguintes critérios:
Localidade da AWS: para a localidade da AWS, você pode especificar CloudFront ou uma Região da AWS, como
us-east-2
.ASN: especifique o número de sistema autônomo (ASN) de um resolvedor de DNS (geralmente, um ISP), por exemplo, 4225.
Localização do cliente: para a localização, especifique uma cidade, metro, subdivisão ou país.
Localidade da AWS proposta: especifique uma Região da AWS, como
us-east-2
. Esse filtro pode ser usado com o tipo de consulta de detalhes das sugestões gerais de tráfego.Geo: especifique a
geo
para algumas consultas. Isso é necessário para as consultas que usam o tipo de consultaTop locations
, mas não é permitido para outros tipos de consulta. Para saber quando especificar ogeo
para os parâmetros de filtro, consulte a seção de exemplos de consulta.
Para o tipo de consulta de sugestões de roteamento, você pode realizar a filtragem mais aprofundada dos dados ao especificar um ou mais dos seguintes critérios:
Localidade da AWS atual: especifique uma Região da AWS, como
us-east-2
.Localidade da AWS proposta: especifique uma Região da AWS, como
us-east-2
.Prefixo IPv4: especifique um prefixo IPv4 no formato padrão, que é semelhante a
192.0.2.0/24
.ARN do monitor: especifique o ARN de um monitor específico.
IP do resolvedor de DNS: especifique o endereço IP de um resolvedor de DNS.
ISP do resolvedor de DNS: especifique o nome de um resolvedor de DNS (geralmente, um ISP), por exemplo,
Cloudflare
.ASN do resolvedor de DNS: especifique o número de sistema autônomo (ASN) de um resolvedor de DNS, por exemplo, 4225.
Os operadores que você pode usar para filtrar seus dados são EQUALS
e NOT_EQUALS
. Para obter detalhes sobre os parâmetros de filtragem, consulte a operação da API FilterParameter.
Para obter detalhes sobre as operações da interface de consulta, consulte as seguintes operações de API no Guia de referência da API do Amazon CloudWatch para o Monitor de Internet do Amazon CloudWatch:
Para criar e executar uma consulta, consulte a operação da API StartQuery.
Para interromper uma consulta, consulte a operação da API StopQuery.
Para retornar dados de uma consulta que você criou, consulte a operação da API GetQueryResults.
Para recuperar o status de uma consulta, consulte a operação da API GetQueryStatus.
Exemplos de consulta
Para criar uma consulta que você possa usar para recuperar um conjunto filtrado de dados do arquivo de log do seu monitor, use a operação da API StartQuery. Você especifica um tipo de consulta e parâmetros de filtro para a consulta. Então, quando você usar a operação da API da interface de consulta do Monitor de Internet para obter os resultados da consulta usando a consulta, ela recuperará o subconjunto dos dados com os quais você deseja trabalhar.
Para ilustrar como funcionam os tipos de consulta e os parâmetros de filtro, vamos dar uma olhada em alguns exemplos.
Exemplo 1
Digamos que você queira recuperar todos os dados do arquivo de log do seu monitor para um país específico, exceto para uma cidade. O exemplo a seguir mostra os parâmetros de filtro para uma consulta que você poderia criar com a operação StartQuery
para esse cenário.
{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "MEASUREMENTS" FilterParameters: [ { Field: "country", Operator: "EQUALS", Values: ["Germany"] }, { Field: "city", Operator: "NOT_EQUALS", Values: ["Berlin"] }, ] }
Exemplo 2
Como outro exemplo, digamos que você queira ver suas principais localizações por área metropolitana. Você pode usar o exemplo de consulta a seguir para esse cenário.
{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "TOP_LOCATIONS" FilterParameters: [ { Field: "geo", Operator: "EQUALS", Values: ["metro"] }, ] }
Exemplo 3
Agora, digamos que você queira ver as principais combinações de cidade-rede na área metropolitana de Los Angeles. Para fazer isso, especifique geo=city
, e depois defina metro
como Los Angeles. Agora, a consulta retorna as principais cidades-redes na área metropolitana de Los Angeles em vez das principais metro+redes em geral.
Aqui está o exemplo de consulta que você pode usar:
{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "TOP_LOCATIONS" FilterParameters: [ { Field: "geo", Operator: "EQUALS", Values: ["city"] }, { Field: "metro", Operator: "EQUALS", Values: ["Los Angeles"] } ] }
Exemplo 4
Em seguida, digamos que você queira recuperar dados de TTFB para uma subdivisão específica (p. ex., um estado dos EUA).
A seguir, um exemplo de consulta para esse cenário:
{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "TOP_LOCATION_DETAILS" FilterParameters: [ { Field: "subdivision", Operator: "EQUALS", Values: ["California"] }, ] }
Exemplo 5
Agora, digamos que você queira recuperar dados de TTFB para cada local em que sua aplicação tenha tráfego de clientes.
A seguir, um exemplo de consulta para esse cenário:
{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "OVERALL_TRAFFIC_SUGGESTIONS" FilterParameters: [] } Results: [us-east-1, 40, us-west-2, 30], [us-east-1, 40, us-west-1, 35], [us-east-1, 40, us-east-1, 44], [us-east-1, 40, CloudFront, 22], ... [us-east-2, 44, us-west-2, 30], [us-east-2, 44, us-west-1, 35], ...
Exemplo 6
Suponhamos que você deseje recuperar dados de TTFB para uma nova Região da AWS específica.
A seguir, um exemplo de consulta para esse cenário:
{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "OVERALL_TRAFFIC_SUGGESTIONS_DETAILS" FilterParameters: [ { Field: "proposed_aws_location", Operator: "EQUALS", Values: ["us-west-2"] }, ] } Results: [San Jose, San Jose-Santa Clara, California, United States, 7922, us-east-1, 40, 350, 350, us-west-2, 45] [San Jose, San Jose-Santa Clara, California, United States, 7922, us-west-1, 35, 450, 450, us-west-2, 45]
Exemplo 7
Um exemplo final corresponde à recuperação de dados para resolvedores de DNS específicos.
A seguir, um exemplo de consulta para esse cenário:
{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "ROUTING_SUGGESTIONS" FilterParameters: [ { Field: "proposed_aws_location", Operator: "EQUALS", Values: ["us-east-1"] }, ] } Results: [162.158.180.245, 13335, Cloudflare, [5.4.0.0/14], us-east-2, 200.0, us-east-1, 160.0] [162.158.180.243, 13313, Cloudflare, [5.4.0.0/10], us-east-2, 150.0, us-east-1, 125.0]
Obter resultados da consulta
Depois de definir uma consulta, você pode retornar um conjunto de resultados com a consulta executando outra operação da API do Monitor de Internet, GetQueryResults. Ao executar GetQueryResults
, você especifica o ID da consulta que você definiu, juntamente com o nome do seu monitor. GetQueryResults
recupera os dados da consulta especificada em um conjunto de resultados.
Quando você executar uma consulta, certifique-se de que a consulta tenha sido concluída antes de usar GetQueryResults
para visualizar os resultados. Você pode determinar se a consulta foi concluída usando a operação da API GetQueryStatus. Quando o Status
da consulta for de SUCCEEDED
, você pode prosseguir com a análise dos resultados.
Quando a consulta for concluída, você poderá usar as seguintes informações como auxílio para a análise dos resultados. Cada tipo de consulta que você usa para criar uma consulta inclui um conjunto exclusivo de campos de dados dos arquivos de log, conforme descrito na lista a seguir:
- Medições
O tipo de consulta
measurements
retorna os seguintes dados:timestamp, availability, performance, bytes_in, bytes_out, rtt_p50, rtt_p90, rtt_p95
- Principais localizações
O tipo de consulta
top locations
agrupa os dados por localização e fornece a média dos dados ao longo do período. Os dados que esse tipo de consulta retorna incluem o seguinte:aws_location, city, metro, subdivision, country, asn, availability, performance, bytes_in, bytes_out, current_fbl, best_ec2, best_ec2_region, best_cf_fbl
Observe que
city
,metro
, esubdivision
só serão retornados se você escolher esse tipo de localização para o campogeo
. Os seguintes campos de localização são retornados, dependendo do tipo de localização que você especificar parageo
:city = city, metro, subdivision, country metro = metro, subdivision, country subdivision = subdivision, country country = country
- Detalhes das principais localizações
O tipo de consulta
top locations details
retorna dados agrupados hora a hora. A consulta retorna os seguintes dados:timestamp, current_service, current_fbl, best_ec2_fbl, best_ec2_region, best_cf_fbl
- Sugestões gerais de tráfego
O tipo de consulta
overall traffic suggestions
retorna dados agrupados hora a hora. A consulta retorna os seguintes dados:current_aws_location, proposed_aws_location, average_fbl, traffic, optimized_traffic_excluding_cf, optimized_traffic_including_cf
- Detalhes das sugestões gerais de tráfego
O tipo de consulta
overall traffic suggestions details
retorna dados agrupados hora a hora. A consulta retorna os seguintes dados:aws_location, city, metro, subdivision, country, asn, traffic, current_aws_location, fbl_data
- Sugestões de roteamento
O tipo de consulta
routing suggestions
retorna dados agrupados hora a hora. A consulta retorna os seguintes dados:dns_resolver_ip, dns_resolver_asn, dns_resolver_isp, ipv4_prefixes, current_aws_location, current_latency, proposed_aws_location, proposed_latency
Quando você executa a operação da API GetQueryResults
, o Monitor de Internet retorna o seguinte na resposta:
Uma matriz de cadeia de dados que contém os resultados que a consulta retorna. As informações são retornadas em matrizes alinhadas com o campo
Fields
, também retornadas pela chamada da API. Usando o campoFields
, você pode analisar as informações do repositórioData
e, em seguida, filtrá-las ou classificá-las para seus objetivos.Uma matriz de campos que lista os campos para os quais a consulta retornou dados (na resposta do campo
Data
). Cada item na matriz é um par nome-tipo de dados, comoavailability_score
-float
.
Solução de problemas
Caso sejam retornados erros quando você usar as operações da API da interface de consulta, verifique se você tem as permissões necessárias para usar o Monitor de Internet do Amazon CloudWatch. Especificamente, certifique-se de que você tenha as seguintes permissões:
internetmonitor:StartQuery internetmonitor:GetQueryStatus internetmonitor:GetQueryResults internetmonitor:StopQuery
Essas permissões estão incluídas na política do AWS Identity and Access Management recomendada para usar o painel do Monitor de Internet no console. Para ter mais informações, consulte Políticas gerenciadas pela AWS para o Monitor de Internet do Amazon CloudWatch.