Tipos de métricas

Información general

Cada métrica enviada a Datadog debe tener un tipo. El tipo de métrica afecta a la forma en que se muestran los valores de la métrica cuando se consulta, así como a las posibilidades asociadas de creación de gráficas dentro de Datadog utilizando modificadores y funciones adicionales. El tipo de métrica se muestra en el panel lateral de detalles de la métrica en la página Resumen de métricas.

Nota: Al cambiar el tipo de métrica en este panel lateral de detalles se puede cambiar el comportamiento de la métrica en todas las visualizaciones y monitores existentes, lo que puede llevar a que los datos históricos no tengan sentido.

Se aceptan los siguientes tipos de envíos de métricas:

Estos diferentes tipos de envíos de métricas se asignan a cuatro tipos de métricas dentro de la aplicación, que se encuentran en la aplicación web Datadog:

  • COUNT
  • RATE
  • GAUGE
  • DISTRIBUTION

Nota: Si envías una métrica a Datadog sin un tipo, el tipo de la métrica aparece como Not Assigned en Datadog. El tipo de métrica Not Assigned no se puede cambiar a otro tipo dentro de la aplicación hasta que se envíe un tipo inicial de métrica.

Envío comparado con tipo dentro de la aplicación

Las métricas se envían a Datadog de tres formas principales:

La mayoría de los datos que recibe Datadog son enviados por el Agent, ya sea a través de un check del Agent o DogStatsD. Para estos métodos de envío, el tipo de métrica determina cómo se agregan los múltiples valores recopilados en un Agent en un intervalo de tiempo de descarga. El Agent combina estos valores en un único valor de métrica representativo para ese intervalo. Este valor combinado se almacena con una única marca de tiempo en Datadog.

Los datos enviados directamente a la API Datadog no son agregados por Datadog, a excepción de las métricas de distribución. Los valores brutos enviados a Datadog se almacenan tal cual.

Para saber cómo se asignan los distintos tipos de envíos de métricas a sus correspondientes tipos dentro de la aplicación, consulta la sección Tipos de envío y tipos dentro de la aplicación de Datadog.

Tipos de métricas

Definición

El tipo de envío de métricas COUNT representa el número total de ocurrencias de eventos en un intervalo de tiempo. Un COUNT puede utilizarse para realizar un seguimiento del número total de conexiones realizadas a una base de datos o del número total de solicitudes a un endpoint. Este número de eventos puede acumularse o disminuir con el tiempo y no se incrementa monotónicamente.

Nota: Un COUNT es diferente del tipo de métrica RATE, que representa el número de ocurrencias de eventos normalizadas por segundo dado el intervalo de tiempo definido.

El tipo de envío de métricas RATE representa el número total de ocurrencias de eventos por segundo en un intervalo de tiempo. Un RATE se puede utilizar para realizar un seguimiento de la frecuencia con la que ocurre algo, como la frecuencia de las conexiones realizadas a una base de datos o el flujo de solicitudes realizadas a un endpoint.

Nota: Un RATE es diferente del tipo de envío de métricas COUNT, que representa el número total de ocurrencias de eventos en el intervalo de tiempo dado.

El tipo de envío de métricas GAUGE representa un snapshot de eventos en un intervalo de tiempo. Este valor representativo de snapshot es el último valor enviado al Agent durante un intervalo de tiempo. Un GAUGE se puede utilizar para tomar una medida de algo que informa continuamente, como el espacio disponible en disco o la memoria utilizada.

El tipo de envío de métricas HISTOGRAM representa la distribución estadística de un conjunto de valores calculados del lado del Agent en un intervalo de tiempo. El tipo de métrica HISTOGRAM es una extensión del tipo de métrica de temporización StatsD. El Agent agrega los valores que se envían en un intervalo de tiempo definido y produce diferentes métricas que representan el conjunto de valores.

Si envías valores X para una métrica HISTOGRAM <METRIC_NAME> en un intervalo de tiempo dado, las siguientes métricas son producidas por el Agent por defecto:

<METRIC_NAME>.avg
Representa la media de los valores X en un intervalo de tiempo.
Tipo dentro de la aplicación de Datadog: GAUGE
<METRIC_NAME>.count
Representa el número de valores enviados durante el intervalo, X. El Agent envía este número como un RATE por lo que mostraría en el valor X/interval en la aplicación.
Tipo dentro de la aplicación de Datadog: RATE
<METRIC_NAME>.median
Representa la mediana de los valores X en un intervalo de tiempo.
Tipo dentro de la aplicación de Datadog: GAUGE
<METRIC_NAME>.95percentile
Representa el percentil 95 de esos valores X en un intervalo de tiempo.
Tipo dentro de la aplicación de Datadog: GAUGE
<METRIC_NAME>.max
Representa el valor máximo de los valores de X enviados durante el intervalo de tiempo.
Tipo dentro de la aplicación de Datadog: GAUGE

Nota:

  • Configura qué agregaciones quieres enviar a Datadog con el parámetro histogram_aggregates en tu archivo de configuración datadog.yaml. Por defecto, sólo se envían a Datadog las agregaciones max, median, avg y count. También están disponibles las agregaciones sum y min.
  • Configura qué agregación de percentiles quieres enviar a Datadog con el parámetro histogram_percentiles en tu archivo de configuración datadog.yaml. Por defecto, sólo se envía el 95percentile a Datadog.

El tipo de envío de métricas DISTRIBUTION representa la distribución estadística global de un conjunto de valores calculados en toda tu infraestructura distribuida en un intervalo de tiempo. Una DISTRIBUTION puede utilizarse para instrumentar objetos lógicos, como servicios, independientemente de los hosts subyacentes.

A diferencia del tipo de métrica HISTOGRAM, que agrega en el Agent durante un intervalo de tiempo determinado, una métrica DISTRIBUTION envía todos los datos brutos a Datadog durante un intervalo de tiempo. La agregación se realiza en el servidor. Dado que la estructura de datos subyacente representa datos brutos, no agregados, las distribuciones ofrecen dos características principales:

  • Cálculo de agregaciones de percentiles
  • Personalización del etiquetado

Si envías valores X para una métrica DISTRIBUTION <METRIC_NAME> en un intervalo de tiempo determinado, las siguientes agregaciones están disponibles para consultas por defecto:

avg:<METRIC_NAME>
Representa la media de los valores X en el intervalo de tiempo.
Tipo dentro de la aplicación Datadog: GAUGE
count:<METRIC_NAME>
Representa el número de puntos enviados en el intervalo de tiempo, X. A continuación, el Agent lo envía como COUNT.
Tipo dentro de la aplicación Datadog: COUNT
max:<METRIC_NAME>
Representa el valor máximo de los valores de X enviados en el intervalo de tiempo.
Tipo dentro de la aplicación Datadog: GAUGE
min:<METRIC_NAME>
Representa el valor mínimo de los X enviados en el intervalo de tiempo.
Tipo dentro de la aplicación Datadog: GAUGE
sum:<METRIC_NAME>
Representa la suma de todos los valores de X enviados en el intervalo de tiempo.
Tipo dentro de la aplicación Datadog: COUNT

Ejemplo

Supongamos que estás enviando una métrica COUNT notifications.sent, desde un único host que ejecuta el Datadog Agent. Este host emite los siguientes valores en un intervalo de tiempo de descarga: [1,1,1,2,2,2,3,3].

El Agent suma todos los valores recibidos en un intervalo de tiempo. A continuación, envía el número total, en este caso 15, como el valor de métrica COUNT.

Supongamos que estás enviando una métrica RATE queue_messages.rate, desde un único host que ejecuta el Datadog Agent. Este host emite los siguientes valores en un intervalo de tiempo de descarga: [1,1,1,2,2,2,3,3].

El Agent suma todos los valores recibidos en un intervalo de tiempo. A continuación, envía el número total dividido por el número total de segundos de este intervalo de tiempo. En este caso, si el intervalo de descarga es de 10 segundos, el valor enviado sería 1.5 como el valor de métrica RATE.

Supongamos que estás enviando una métrica GAUGE temperature, desde un único host que ejecuta el Datadog Agent. Este host emite los siguientes valores en un intervalo de tiempo de descarga: [71,71,71,71,71,71,71.5].

El Agent envía el último número reportado, en este caso 71.5, como el valor de métrica GAUGE.

Por ejemplo, supongamos que estás enviando una métrica HISTOGRAM, request.response_time.histogram, desde un servidor web que informa de los valores [1,1,1,2,2,2,3,3] en un intervalo de tiempo de descarga. Por defecto, el Agent envía las siguientes métricas a Datadog, que representan la distribución estadística de estos valores en este intervalo de tiempo:

Nombre de la métricaValorTipo dentro de la aplicación Datadog
request.response_time.histogram.avg1.88GAUGE
request.response_time.histogram.count0.8RATE
request.response_time.histogram.median2GAUGE
request.response_time.histogram.95percentile3GAUGE
request.response_time.histogram.max3GAUGE

Supongamos que estás enviando una métrica DISTRIBUTION, request.response_time.distribution, desde dos servidores web: webserver:web_1 y webserver:web_2. Supongamos que en un periodo de descarga determinado, webserver:web_1 informa la métrica con los valores [1,1,1,2,2,2,3,3] y que webserver:web_2 informa la misma métrica con los valores [1,1,2]. Durante este intervalo de tiempo, las cinco agregaciones siguientes representan la distribución estadística global de todos los valores recopilados de ambos servidores web:

Nombre de la métricaValorTipo dentro de la aplicación Datadog
avg:request.response_time.distribution1.73GAUGE
count:request.response_time.distribution11COUNT
max:request.response_time.distribution3GAUGE
min:request.response_time.distribution1GAUGE
sum:request.response_time.distribution19COUNT

Cálculo de agregaciones de percentiles

Al igual que otros tipos de métricas, como GAUGE or HISTOGRAM, el tipo de métrica DISTRIBUTION dispone de las siguientes agregaciones: count min , max, sum y avg. Las métricas de distribución se etiquetan inicialmente del mismo modo que las demás métricas (con etiquetas (tags) personalizadas definidas en el código).

Se pueden añadir agregaciones de percentiles adicionales (p50, p75, p90, p95, p99) a las métricas de distribución. Si se añadieran agregaciones de percentiles a tu métrica de distribución dentro de la aplicación, las siguientes cinco agregaciones adicionales estarían disponibles para consultas:

Nombre de la métricaValorTipo dentro de la aplicación Datadog
p50:request.response_time.distribution2GAUGE
p75:request.response_time.distribution2GAUGE
p90:request.response_time.distribution3GAUGE
p95:request.response_time.distribution3GAUGE
p99:request.response_time.distribution3gauge

Es decir, para una métrica de distribución con agregaciones de percentiles añadidos durante un intervalo de tiempo determinado, están disponibles las 10 agregaciones siguientes: count, sum, min, max, avg, p50, p75, p90, p95 y p99.

Personalización del etiquetado

Esta funcionalidad te permite controlar el etiquetado de métricas donde la granularidad a nivel de host no es necesaria. Consulta más información sobre Metrics without LimitsTM.

Nota: La exclusión de etiquetas con ! no se admite con esta función.

Envío

Envía tu tipo de métrica COUNT de una de las siguientes fuentes:

Fuente de envíoMétodo de envío (Python)Tipo de envíoTipo dentro de la aplicación Datadog
Check del Agentself.count(...)COUNTCOUNT
Check del Agentself.monotonic_count(...)COUNTCOUNT
APIapi.Metric.send(type="count", ...)COUNTCOUNT
DogStatsDdog.count(...)COUNTRATE
DogStatsDdog.increment(...)COUNTRATE
DogStatsDdog.decrement(...)COUNTRATE

Nota: Cuando se envía un tipo de métrica COUNT a través de DogStatsD, la métrica aparece como RATE dentro de la aplicación para asegurar una comparación relevante a través de diferentes Agents. Consecuentemente, los recuentos de StatsD pueden aparecer con un valor decimal en Datadog (ya que están normalizados dentro de un intervalo de tiempo para reportar unidades por segundo).

Envía tu tipo de métrica RATE de una de las siguientes fuentes:

Fuente de envíoMétodo de envío (Python)Tipo de presentaciónTipo dentro de la aplicación Datadog
Check del Agentself.rate(...)RATEGAUGE
APIapi.Metric.send(type="rate", ...)RATERATE

Nota: Al enviar un tipo de métrica RATE a través de DogStatsD, la métrica aparece como GAUGE dentro de la aplicación para garantizar una comparación pertinente entre diferentes Agents.

Envía tu tipo de métrica GAUGE de una de las siguientes fuentes:

Fuente de envíoMétodo de envío (Python)Tipo de envíoTipo dentro de la aplicación Datadog
Check del Agentself.gauge(...)GAUGEGAUGE
APIapi.Metric.send(type="gauge", ...)GAUGEGAUGE
DogStatsDdog.gauge(...)GAUGEGAUGE

Envía tu tipo de métrica HISTOGRAM de una de las siguientes fuentes:

Fuente de envíoMétodo de envío (Python)Tipo de envíoTipos dentro de la aplicación Datadog
Check del Agentself.histogram(...)HISTOGRAMGAUGE, RATE
DogStatsDdog.histogram(...)HISTOGRAMGAUGE, RATE

Enviar una métrica TIMER al Datadog Agent equivale a enviar un tipo de métrica HISTOGRAM en DogStatsD (no confundir con los temporizadores del StatsD estándar). El TIMER de DogStatsD representa sólo datos de duración. Por ejemplo, el tiempo que tarda en ejecutarse una sección de código o el tiempo que tarda en renderizarse completamente una página.

Envía tu tipo de métrica DISTRIBUTION de una de las siguientes fuentes:

Fuente de envíoMétodo de envío (Python)Tipo de envíoTipos dentro de la aplicación Datadog
DogStatsDdog.distribution(...)DISTRIBUTIONGAUGE, COUNT

Tipos de envío y tipos dentro de la aplicación Datadog

A continuación se muestra un resumen de todas las fuentes y los métodos de envío de métricas disponibles. Esta tabla muestra la correspondencia entre el tipo de envío de métrica correspondiente y los tipos dentro de la aplicación:

Fuente de envíoMétodo de envío (Python)Tipo de envíoTipos dentro de la aplicación Datadog
Check del Agentself.count(...)COUNTCOUNT
Check del Agentself.monotonic_count(...)COUNTCOUNT
Check del Agentself.gauge(...)GAUGEGAUGE
Check del Agentself.histogram(...)HISTOGRAMGAUGE, RATE
Check del Agentself.rate(...)RATEGAUGE
APIapi.Metric.send(type="count", ...)COUNTCOUNT
APIapi.Metric.send(type="gauge", ...)GAUGEGAUGE
APIapi.Metric.send(type="rate", ...)RATERATE
DogStatsDdog.gauge(...)GAUGEGAUGE
DogStatsDdog.distribution(...)DISTRIBUCIÓNGAUGE, COUNT
DogStatsDdog.count(...)COUNTRATE
DogStatsDdog.increment(...)COUNTRATE
DogStatsDdog.decrement(...)COUNTRATE
DogStatsDdog.set(...)SET (Conjunto)GAUGE
DogStatsDdog.histogram(...)HISTOGRAMgaugeTARIFA

Lectura adicional