stats - CloudWatch Registros da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

stats

Use stats para criar visualizações dos seus dados de log, como gráficos de barras, gráficos de linhas e gráficos de áreas empilhadas. Isso ajuda você a identificar padrões em seus dados de registro com mais eficiência. CloudWatch O Logs Insights gera visualizações para consultas que usam a stats função e uma ou mais funções de agregação.

Por exemplo, a consulta a seguir em um grupo de logs do Route 53 retorna visualizações que mostram a distribuição dos registros do Route 53 por hora, por tipo de consulta.

stats count(*) by queryType, bin(1h)

Todas essas consultas podem produzir gráficos de barras. Se sua consulta usar a função bin() para agrupar os dados por um campo ao longo do tempo, você também poderá ver gráficos de linhas e gráficos de áreas empilhadas.

As unidades e abreviações de tempo a seguir são compatíveis com a função bin. Para todas as unidades e abreviações que incluem mais de um caractere, é permitido adicionar "s" para formar o plural. Assim, ambos hr e hrs funcionam para especificar horas.

  • millisecond ms msec

  • second s sec

  • minute m min

  • hour h hr

  • day d

  • week w

  • month mo mon

  • quarter q qtr

  • year y yr

Visualizar dados de séries temporais

As visualizações de séries temporais funcionam para consultas com as seguintes características:

  • A consulta contém uma ou mais funções de agregação. Para obter mais informações, consulte Aggregation Functions in the Stats Command.

  • A consulta usa a função bin() para agrupar os dados por um campo.

Essas consultas podem produzir gráficos de linha, gráficos de áreas empilhadas, gráficos de barras e gráficos de pizza.

Exemplos

Para obter um tutorial completo, consulte Tutorial: Executar uma consulta que produz uma visualização de séries temporais.

Aqui estão mais exemplos de consultas que funcionam para visualização de séries temporais.

A consulta a seguir gera uma visualização dos valores médios do campo myfield1, com um ponto de dados criado a cada cinco minutos. Cada ponto de dados é a agregação das médias dos valores myfield1 dos logs dos últimos cinco minutos.

stats avg(myfield1) by bin(5m)

A consulta a seguir gera uma visualização dos três valores com base em campos diferentes, com um ponto de dados criado a cada cinco minutos. A visualização é gerada porque a consulta contém funções de agregação e usa bin() como o campo de agrupamento.

stats avg(myfield1), min(myfield2), max(myfield3) by bin(5m)

Restrições do gráfico de linhas e do gráfico de áreas empilhadas

Consultas que agregam informações de entrada de log, mas que não usam a função bin(), podem gerar gráficos de barras. No entanto, as consultas não podem gerar gráficos de linha ou gráficos de áreas empilhadas. Para obter mais informações sobre esses tipos de políticas, consulte Visualizar dados de log agrupados por campos.

Visualizar dados de log agrupados por campos

É possível produzir gráficos de barras para consultas que usam a função stats e uma ou mais funções de agregação. Para obter mais informações, consulte Aggregation Functions in the Stats Command.

Para ver a visualização, execute sua consulta. Depois, escolha a guia Visualization(Visualização), selecione a seta ao lado de Line(Linha) e escolha Bar(Barra). As visualizações estão limitadas a até 100 barras no gráfico de barras.

Exemplos

Para obter um tutorial completo, consulte Tutorial: Executar uma consulta que produz uma visualização agrupada por campos de log. Os parágrafos a seguir incluem mais consultas de exemplo para a visualização por campos.

A consulta de log de VPC fluxo a seguir encontra o número médio de bytes transferidos por sessão para cada endereço de destino.

stats avg(bytes) by dstAddr

Também é possível produzir um gráfico que inclua mais de uma barra para cada valor resultante. Por exemplo, a consulta de log de VPC fluxo a seguir encontra o número médio e máximo de bytes transferidos por sessão para cada endereço de destino.

stats avg(bytes), max(bytes) by dstAddr

A consulta a seguir localiza o número de logs de consulta do Amazon Route 53 para cada tipo de consulta.

stats count(*) by queryType

Use vários comandos de estatísticas em uma única consulta

Você pode usar até dois comandos stats em uma única consulta. Isso permite executar uma agregação adicional na saída da primeira agregação.

Exemplo: consulta com dois comandos stats

Por exemplo, a consulta a seguir localiza primeiro o volume total de tráfego em compartimentos de cinco minutos e, em seguida, calcula o volume de tráfego mais alto, mais baixo e médio entre esses compartimentos de cinco minutos.

FIELDS strlen(@message) AS message_length | STATS sum(message_length)/1024/1024 as logs_mb BY bin(5m) | STATS max(logs_mb) AS peak_ingest_mb, min(logs_mb) AS min_ingest_mb, avg(logs_mb) AS avg_ingest_mb

Exemplo: combine vários comandos de estatísticas com outras funções, como filter, fields e bin

Você pode combinar dois comandos stats com outros comandos, como filter e fields, em uma única consulta. Por exemplo, a consulta a seguir localiza o número de endereços IP distintos nas sessões e localiza o número de sessões por plataforma do cliente, filtra esses endereços IP e, por fim, localiza a média de solicitações de sessão por plataforma do cliente.

STATS count_distinct(client_ip) AS session_ips, count(*) AS requests BY session_id, client_platform | FILTER session_ips > 1 | STATS count(*) AS multiple_ip_sessions, sum(requests) / count(*) AS avg_session_requests BY client_platform

Você pode usar as funções bin e dateceil em consultas com vários comandos stats. Por exemplo, a consulta a seguir primeiro combina mensagens em blocos de cinco minutos, depois agrega esses blocos de cinco minutos em blocos de dez minutos e calcula os volumes de tráfego mais altos, mais baixos e médios dentro de cada bloco de dez minutos.

FIELDS strlen(@message) AS message_length | STATS sum(message_length) / 1024 / 1024 AS logs_mb BY BIN(5m) as @t | STATS max(logs_mb) AS peak_ingest_mb, min(logs_mb) AS min_ingest_mb, avg(logs_mb) AS avg_ingest_mb BY dateceil(@t, 10m)

Observações e limitações

Uma consulta pode ter no máximo dois comandos stats. Não é possível alterar esta cota.

Se você usar um comando sort ou limit, ele deverá aparecer após o segundo comando stats. Se estiver antes do segundo comando stats, a consulta não é válida.

Quando uma consulta tem dois comandos stats, a exibição dos resultados parciais da consulta só começará quando a primeira agregação stats for concluída.

No segundo comando stats de uma única consulta, você pode se referir somente aos campos definidos no primeiro comando stats. Por exemplo, a consulta a seguir não é válida porque o campo @message não estará disponível após a primeira agregação stats.

FIELDS @message | STATS SUM(Fault) by Operation # You can only reference `SUM(Fault)` or Operation at this point | STATS MAX(strlen(@message)) AS MaxMessageSize # Invalid reference to @message

Todos os campos que você referenciar após o primeiro comando stats devem ser definidos nesse primeiro comando stats.

STATS sum(x) as sum_x by y, z | STATS max(sum_x) as max_x by z # You can only reference `max(sum_x)`, max_x or z at this point
Importante

A função bin sempre usa implicitamente o campo @timestamp. Isso significa que você não pode usar bin no segundo comando stats sem usar o primeiro comando stats para propagar o campo timestamp. Por exemplo, a consulta a seguir não é válida.

FIELDS strlen(@message) AS message_length | STATS sum(message_length) AS ingested_bytes BY @logStream | STATS avg(ingested_bytes) BY bin(5m) # Invalid reference to @timestamp field

Em vez disso, defina o campo @timestamp no primeiro comando stats e, em seguida, você poderá usá-lo com dateceil no segundo comando stats, como no exemplo a seguir.

FIELDS strlen(@message) AS message_length | STATS sum(message_length) AS ingested_bytes, max(@timestamp) as @t BY @logStream | STATS avg(ingested_bytes) BY dateceil(@t, 5m)

Funções para uso com estatísticas

CloudWatch O Logs Insights suporta funções de agregação de estatísticas e funções de não agregação de estatísticas.

Use funções de agregação de estatísticas no comando stats e como argumentos de outras funções.

Função Tipo de resultado Descrição

avg(fieldName: NumericLogField)

número

A média dos valores no campo especificado.

count()

count(fieldName: LogField)

número

Faz a contagem dos eventos de log. count() (ou count(*)) conta todos os eventos retornados pela consulta, e o count(fieldName) conta todos os registros que incluam o nome do campo especificado.

count_distinct(fieldName: LogField)

número

Retorna o número de valores exclusivos do campo. Se o campo tiver cardinalidade muito alta (muitos valores exclusivos), o valor retornado por count_distinct será apenas uma aproximação.

max(fieldName: LogField)

LogFieldValue

O máximo dos valores desse campo de log nos logs consultados.

min(fieldName: LogField)

LogFieldValue

O mínimo dos valores desse campo de log nos logs consultados.

pct(fieldName: LogFieldValue, percent: number)

LogFieldValue

Um percentil indica a posição relativa de um valor no conjunto de dados. Por exemplo, pct(@duration, 95) retorna o valor @duration em que 95% dos valores de @duration são menores que esse valor e 5% são maiores que esse valor.

stddev(fieldName: NumericLogField)

número

O desvio padrão dos valores no campo especificado.

sum(fieldName: NumericLogField)

número

A soma dos valores no campo especificado.

Funções de estatísticas de não agregação

Use funções de não agregação no comando stats e como argumentos de outras funções.

Função Tipo de resultado Descrição

earliest(fieldName: LogField)

LogField

Retorna o valor de fieldName do evento do log que tem o primeiro time stamp nos logs consultados.

latest(fieldName: LogField)

LogField

Retorna o valor de fieldName do evento do log que tem o último time stamp nos logs consultados.

sortsFirst(fieldName: LogField)

LogField

Retorna o valor do fieldName que aparece em primeiro lugar nos logs consultados.

sortsLast(fieldName: LogField)

LogField

Retorna o valor do fieldName que aparece em último lugar nos logs consultados.