Publicar métricas personalizadas
Você também pode publicar suas próprias métricas no CloudWatch usando a AWS CLI ou uma API. Você pode visualizar gráficas de estatísticas de suas métricas publicadas com o AWS Management Console.
O CloudWatch armazena dados sobre uma métrica como uma série de pontos de dados. Cada ponto de dados tem um time stamp associado. Você pode até mesmo publicar um conjunto agregado de pontos de dados chamado conjunto de estatísticas.
Tópicos
Métricas de alta resolução
Cada métrica é um dos seguintes:
Resolução padrão, com dados de granularidade de um minuto
Resolução alta, com dados de granularidade de um segundo
Por padrão, as métricas produzidas por serviços da AWS têm resolução padrão. Quando você publica uma métrica personalizada, pode defini-la com resolução padrão ou alta. Quando você publica uma métrica de alta resolução, o CloudWatch a armazena com uma resolução de 1 segundo. Você pode ler e recuperar essa métrica no período de 1 segundo, 5 segundos, 10 segundos, 30 segundos ou em qualquer múltiplo de 60 segundos.
As métricas de alta resolução podem também dar a você insight mais imediato da atividade de subminuto da seu aplicativo. Lembre-se de que cada chamada PutMetricData
de uma métrica personalizada é cobrada. Portanto, chamar PutMetricData
com mais frequência em uma métrica de alta resolução pode resultar em tarifas mais altas. Para obter mais informações sobre os preços do CloudWatch, consulte Preço do Amazon CloudWatch
Se você definir um alarme em uma métrica de alta resolução, pode especificar um alarme de alta resolução com um período de 10 ou 30 segundos ou pode definir um alarme regular com um período de qualquer múltiplo de 60 segundos. Há uma tarifa maior para alarmes de alta resolução com um período de 10 ou 30 segundos.
Usar dimensões
Em métricas personalizadas, o parâmetro --dimensions
é comum. Uma dimensão esclarece com mais detalhes qual é a métrica e quais dados ela armazena. Você pode ter até 30 dimensões atribuídas a uma métrica. Cada dimensão é definida por um par de nome e valor.
A forma como você especifica uma dimensão é diferente quando você usa comandos diferentes. Com put-metric-data, você especifica cada dimensão como MyName
=MyValue
, e com get-metric-statistics ou put-metric-alarm você usa o formato Name=
MyName
, Value=
MyValue
. Por exemplo, o seguinte comando publica uma métrica Buffers
com duas dimensões denominadas InstanceId
e InstanceType
.
aws cloudwatch put-metric-data --metric-name Buffers --namespace MyNameSpace --unit Bytes --value 231434333 --dimensions InstanceId=1-23456789,InstanceType=m1.small
Este comando recupera as estatísticas para esta mesma métrica. Separe as partes de nome e valor de uma única dimensão com vírgulas, mas, se tiver várias dimensões, use um espaço entre uma dimensão e a próxima.
aws cloudwatch get-metric-statistics --metric-name Buffers --namespace MyNameSpace --dimensions Name=InstanceId,Value=1-23456789 Name=InstanceType,Value=m1.small --start-time 2016-10-15T04:00:00Z --end-time 2016-10-19T07:00:00Z --statistics Average --period 60
Se uma única métrica incluir várias dimensões, você deverá especificar um valor para cada dimensão definida ao usar get-metric-statistics. Por exemplo, a métrica BucketSizeBytes
do Amazon S3 inclui as dimensões BucketName
e StorageType
. Portanto, você deve especificar as duas dimensões com get-metric-statistics.
aws cloudwatch get-metric-statistics --metric-name BucketSizeBytes --start-time 2017-01-23T14:23:00Z --end-time 2017-01-26T19:30:00Z --period 3600 --namespace AWS/S3 --statistics Maximum --dimensions Name=BucketName,Value=
amzn-s3-demo-bucket
Name=StorageType,Value=StandardStorage --output table
Para ver quais dimensões estão definidas para uma métrica, use o comando list-metrics.
Publicar pontos de dados únicos
Para publicar um único ponto de dados para uma métrica nova ou existente, use o comando put-metric-data com um valor e um time stamp. Por exemplo, cada uma das seguintes ações publica um ponto de dados.
aws cloudwatch put-metric-data --metric-name
PageViewCount
--namespaceMyService
--value 2 --timestamp2016-10-20T12:00:00.000Z
aws cloudwatch put-metric-data --metric-namePageViewCount
--namespaceMyService
--value 4 --timestamp2016-10-20T12:00:01.000Z
aws cloudwatch put-metric-data --metric-namePageViewCount
--namespaceMyService
--value 5 --timestamp2016-10-20T12:00:02.000Z
Se você chamar esse comando com um novo nome da métrica, o CloudWatch criará uma métrica para você. Caso contrário, o CloudWatch associará os dados com a métrica existente que você especificou.
nota
Ao criar uma métrica, pode levar até dois minutos antes que seja possível recuperar as estatísticas para a nova métrica usando o comando get-metric-statistics. No entanto, pode levar até 15 minutos até que a nova métrica apareça na lista de métricas recuperadas com o comando list-metrics.
Embora você possa publicar pontos de dados com carimbos de data/hora com precisão de milésimo de segundo, o CloudWatch agrega os dados com a precisão mínima de um segundo. O CloudWatch registra a média (soma de todos os itens dividida pelo número de itens) dos valores recebidos para cada período, bem como o número de amostras, o valor máximo e o valor mínimo para o mesmo período. Por exemplo, a métrica PageViewCount
dos exemplos anteriores contém três pontos de dados com time stamps com apenas alguns segundos de intervalo. Se você tiver o período definido como 1 minuto, o CloudWatch agregará os três pontos de dados, pois eles têm carimbos de data/hora em um período de 1 minuto.
Você pode usar o comando get-metric-statistics para recuperar estatísticas com base nos pontos de dados publicados.
aws cloudwatch get-metric-statistics --namespace
MyService
--metric-namePageViewCount
\ --statistics "Sum" "Maximum" "Minimum" "Average" "SampleCount" \ --start-time2016-10-20T12:00:00.000Z
--end-time2016-10-20T12:05:00.000Z
--period 60
O seguinte é um exemplo de saída.
{ "Datapoints": [ { "SampleCount": 3.0, "Timestamp": "2016-10-20T12:00:00Z", "Average": 3.6666666666666665, "Maximum": 5.0, "Minimum": 2.0, "Sum": 11.0, "Unit": "None" } ], "Label": "PageViewCount" }
Publicar conjuntos de estatísticas
Você pode agregar seus dados antes de publicá-los no CloudWatch. Quando você tem vários pontos de dados por minuto, a agregação de dados reduz o número de chamadas para put-metric-data. Por exemplo, em vez de chamar put-metric-data várias vezes para três pontos de dados com três segundos de diferença um do outro, é possível agregar os dados em um conjunto de estatísticas publicado com uma chamada, usando o parâmetro --statistic-values
.
aws cloudwatch put-metric-data --metric-name PageViewCount --namespace
MyService
--statistic-values Sum=11,Minimum=2,Maximum=5,SampleCount=3 --timestamp2016-10-14T12:00:00.000Z
O CloudWatch precisa dos pontos e dados brutos para calcular percentis. Se você publicar dados usando um conjunto de estatísticas, não poderá recuperar estatísticas de percentis para esses dados, a menos que uma das seguintes condições seja verdadeira:
O
SampleCount
do conjunto de estatísticas é 1.O
Minimum
e oMaximum
do conjunto de estatísticas são iguais
Publicar o valor zero
Quando os dados são mais esporádicos e você tem períodos sem dados associados, você pode optar por publicar o valor zero (0
) para esse período ou nenhum valor. Se você usar chamadas periódicas para PutMetricData
a fim de monitorar a integridade do seu aplicativo, talvez queira publicar zero em vez de nenhum valor. Por exemplo, é possível definir um alarme do CloudWatch para notificar você, se a aplicação não publicar métricas a cada cinco minutos. É recomendável que esse aplicativo publique zeros para períodos sem dados associados.
Você também pode publicar zeros se desejar rastrear o número total de pontos de dados ou se quiser que estatísticas como mínima e média incluam pontos de dados com o valor 0.
Parar de publicar métricas
Para parar de publicar métricas personalizadas no CloudWatch, altere o código da aplicação ou do serviço de forma a parar de usar PutMetricData. O CloudWatch não extrai métricas de aplicações. Ele apenas recebe o que é enviado para ele. Portanto, para parar de publicar suas métricas, é necessário interrompê-las na fonte.