Tipos de Métricas

Resumen

Cada métrica enviada a Datadog debe tener un tipo. El tipo de una métrica afecta cómo se muestran los valores de la métrica al consultarlos, así como las posibilidades de graficación asociadas dentro de Datadog utilizando modificadores y funciones. El tipo de una métrica se muestra en el panel lateral de detalles para la métrica dada en la Metrics Summary page.

Nota: Cambiar el tipo de métrica en este panel lateral de detalles puede cambiar el comportamiento de la métrica en todas las visualizaciones y monitores existentes, lo que potencialmente puede hacer que los datos históricos sean incomprensibles.

Los siguientes tipos de envío de métricas son aceptados:

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

  • CUENTA
  • TASA
  • GAUGE
  • DISTRIBUCIÓN

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

Envío vs. tipo en la aplicación

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

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

Los datos enviados directamente a la API de Datadog no son agregados por Datadog, con la excepción de las métricas de distribución. Los valores crudos enviados a Datadog se almacenan tal como están.

Lee la sección Tipos de envío y tipos en la aplicación de Datadog para aprender cómo se mapean los diferentes tipos de envío de métricas a sus tipos correspondientes en la aplicación.

Tipos de métricas

Definición

El tipo de envío de métrica COUNT representa el número total de ocurrencias de eventos en un intervalo de tiempo. Un COUNT se puede utilizar para rastrear el número total de conexiones realizadas a una base de datos o el número total de solicitudes a un punto de conexión. Este número de eventos puede acumularse o disminuir con el tiempo; no es monotónicamente creciente.

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

El tipo de envío de métrica RATE representa el número total de ocurrencias de eventos por segundo en un intervalo de tiempo. Un RATE se puede utilizar para rastrear con qué frecuencia ocurre algo, como la frecuencia de conexiones realizadas a una base de datos o el flujo de solicitudes realizadas a un punto de conexión.

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

El tipo de envío de métrica GAUGE representa una instantánea de eventos en un intervalo de tiempo. Este valor de instantánea representativa es el último valor enviado al Agente durante un intervalo de tiempo. Un GAUGE se puede utilizar para medir algo que reporta continuamente, como el espacio en disco disponible o la memoria utilizada.

El tipo de envío de métrica HISTOGRAMA representa la distribución estadística de un conjunto de valores calculados del lado del Agente en un intervalo de tiempo. El tipo de métrica HISTOGRAMA de Datadog es una extensión del tipo de métrica de tiempo StatsD. El Agente 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 X valores para una métrica HISTOGRAMA <METRIC_NAME> en un intervalo de tiempo dado, las siguientes métricas son producidas por el Agente por defecto:

<METRIC_NAME>.avg
Representa el promedio de esos X valores en el intervalo de tiempo.
Datadog In-App Type: GAUGE
<METRIC_NAME>.count
Representa el número de valores enviados durante el intervalo, X. El Agente envía este número como un RATE para que se muestre en la aplicación el valor de X/interval.
Datadog In-App Type: RATE
<METRIC_NAME>.median
Representa la mediana de esos X valores en el intervalo de tiempo.
Tipo In-App de Datadog: GAUGE
<METRIC_NAME>.95percentile
Representa el percentil 95 de esos X valores en el intervalo de tiempo.
Tipo In-App de Datadog: GAUGE
<METRIC_NAME>.max
Representa el valor máximo de esos X valores enviados durante el intervalo de tiempo.
Tipo en la aplicación de Datadog: GAUGE

Notas:

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

El tipo de envío de métrica de DISTRIBUCIÓN representa la distribución estadística global de un conjunto de valores calculados a través de toda su infraestructura distribuida en un intervalo de tiempo. Una DISTRIBUTION puede ser utilizada para instrumentar objetos lógicos, como servicios, independientemente de los servidores subyacentes.

A diferencia del tipo de métrica HISTOGRAM, que agrega en el Agente durante un intervalo de tiempo dado, una métrica de DISTRIBUTION envía todos los datos en bruto durante un intervalo de tiempo a Datadog. Las agregaciones ocurren del lado del servidor. Debido a que la estructura de datos subyacente representa datos en bruto, no agregados, las distribuciones proporcionan dos características principales:

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

Si envía X valores para una métrica de DISTRIBUCIÓN <METRIC_NAME> en un intervalo de tiempo dado, las siguientes agregaciones están disponibles para consulta por defecto:

avg:<METRIC_NAME>
Representa el promedio de esos X valores en el intervalo de tiempo.
Tipo en la aplicación de Datadog: GAUGE
count:<METRIC_NAME>
Representa el número de puntos enviados en el intervalo de tiempo, X. El Agente luego lo envía como un COUNT.
Tipo en la aplicación de Datadog: COUNT
max:<METRIC_NAME>
Representa el valor máximo de esos X valores enviados en el intervalo de tiempo.
Tipo en la aplicación de Datadog: GAUGE
min:<METRIC_NAME>
Representa el valor mínimo de aquellos X enviados en el intervalo de tiempo.
Tipo en la aplicación de Datadog: GAUGE
sum:<METRIC_NAME>
Representa la suma de todos los valores X enviados en el intervalo de tiempo.
Tipo en la aplicación de Datadog: COUNT

Nota: Mientras que las diferentes agregaciones de los valores de métricas de distribución están representadas como GAUGE o COUNT en la aplicación, la métrica en sí mantiene el tipo DISTRIBUTION.

Ejemplo

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

El Agente suma todos los valores recibidos en un intervalo de tiempo. Luego, envía el número total, en este caso 15, como el valor de la métrica CUENTA.

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

El Agente suma todos los valores recibidos en un intervalo de tiempo. Luego, envía el número total dividido por el número total de segundos en este intervalo de tiempo. En este caso, si el intervalo de flush es de 10 segundos, el valor enviado sería 1.5 como el valor de la métrica TASA.

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 flush: [71,71,71,71,71,71,71.5].

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

Por ejemplo, supongamos que estás enviando una métrica HISTOGRAM, request.response_time.histogram, desde un servidor web que reporta los valores [1,1,1,2,2,2,3,3] en un intervalo de tiempo de flush de 10 segundos. Por defecto, el Agente 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 de In-App de 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 DISTRIBUCIÓN, request.response_time.distribution, desde dos servidores web: webserver:web_1 y webserver:web_2. Supongamos que en un intervalo de tiempo de flush dado, webserver:web_1 informa la métrica con los valores [1,1,1,2,2,2,3,3], y webserver:web_2 informa la misma métrica con los valores [1,1,2]. Durante este intervalo de tiempo, las siguientes cinco agregaciones representarán la distribución estadística global de todos los valores recopilados de ambos servidores web:

Nombre de la métricaValorTipo In-App de 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 percentiles

Al igual que otros tipos de métricas, como GAUGE o HISTOGRAMA, el tipo de métrica de DISTRIBUCIÓN tiene las siguientes agregaciones disponibles: count, min, max, sum y avg. Las métricas de distribución se etiquetan inicialmente de la misma manera que otras métricas (con etiquetas personalizadas establecidas en el código).

Agregaciones percentiles adicionales (p50, p75, p90, p95, p99) se pueden agregar a las métricas de distribución desde el panel lateral de detalles de la métrica. Si agregas agregaciones percentiles a tu métrica DISTRIBUCIÓN en la aplicación, las siguientes cinco agregaciones adicionales están disponibles para consulta:

Nombre de MétricaValorTipo In-app de 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 percentiles añadidas durante un intervalo de tiempo dado, las siguientes 10 agregaciones están disponibles: count, sum, min, max, avg, p50, p75, p90, p95 y p99.

Nota: Mientras que las diferentes agregaciones de los valores de la métrica de distribución están representadas como gauges o cuentas en la aplicación, la métrica en sí mantiene el tipo DISTRIBUTION.

Personalización de etiquetas

Esta funcionalidad te permite controlar las etiquetas para métricas donde la granularidad a nivel de host no es necesaria. Aprende más sobre Métricas sin Límites™.

Nota: La exclusión de etiquetas no es compatible en la personalización de etiquetas basada en la lista permitida. No se aceptan etiquetas que comiencen con !.

Envío

Envía tus métricas de tipo CUENTA desde una de las siguientes fuentes:

Fuente de EnvíoMétodo de Envío (python)Tipo de EnvíoTipo In-App de Datadog
Verificación de agenteself.count(...)CUENTACUENTA
Verificación de agenteself.monotonic_count(...)CUENTACUENTA
APIapi.Metric.send(type="count", ...)CUENTACUENTA
DogStatsDdog.count(...)CUENTATASA
DogStatsDdog.increment(...)CUENTATASA
DogStatsDdog.decrement(...)CUENTATASA

Nota: Al enviar un tipo de métrica de CUENTA a través de DogStatsD, la métrica aparece como una TASA en la aplicación para asegurar una comparación relevante entre diferentes Agentes. En consecuencia, los conteos de StatsD pueden aparecer con un valor decimal dentro de Datadog (ya que están normalizados sobre un intervalo de tiempo para reportar unidades por segundo).

Envía tus métricas de tipo TASA desde una de las siguientes fuentes:

Fuente de envíoMétodo de envío (python)Tipo de envíoTipo en la aplicación de Datadog
Verificación de agenteself.rate(...)TASAGAUGE
APIapi.Metric.send(type="rate", ...)TASATASA

Nota: Para obtener métricas de TASA a través de DogStatsD, envía ya sea una métrica CUENTA [16] o HISTOGRAMA [18]. Los valores de la métrica CUENTA y los valores de <HISTOGRAM>.count son deltas normalizados en el tiempo del valor de la métrica durante el período de vaciado de StatsD.

Envía tus métricas de tipo GAUGE desde una de las siguientes fuentes:

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

Envía tus métricas de tipo HISTOGRAMA desde una de las siguientes fuentes:

Fuente de envíoMétodo de envío (Python)Tipo de envíoTipo In-App de Datadog
Verificación de agenteself.histogram(...)HISTOGRAMAGAUGE, RATE
DogStatsDdog.histogram(...)HISTOGRAMAGAUGE, RATE

Enviar una métrica TIMER al Agente de Datadog es equivalente a enviar una métrica HISTOGRAMA dentro de DogStatsD (no debe confundirse con los temporizadores en el StatsD estándar). DogStatsD TIMER representa solo datos de duración. Por ejemplo, la cantidad de tiempo que tarda una sección de código en ejecutarse o cuánto tiempo toma renderizar completamente una página.

Envía tus métricas de tipo DISTRIBUCIÓN desde la siguiente fuente:

Fuente de envíoMétodo de envío (Python)Tipo de envíoTipo In-App de Datadog
DogStatsDdog.distribution(...)DISTRIBUCIÓNGAUGE, COUNT
APIapi_instance.submit_distribution_points(...)DISTRIBUCIÓNGAUGE, COUNT

Nota: Mientras que las diferentes agregaciones de los valores de métrica de distribución se representan como gauges o COUNT en la aplicación, la métrica en sí retiene el tipo DISTRIBUTION.

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

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

Fuente de EnvíoMétodo de Envío (Python)Tipo de EnvíoTipos en la Aplicación de Datadog
Agent checkself.count(...)COUNTCOUNT
Agent checkself.monotonic_count(...)COUNTCOUNT
Agent checkself.gauge(...)GAUGEGAUGE
Agent checkself.histogram(...)HISTOGRAMGAUGE, RATE
Agent checkself.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ÓNDISTRIBUCIÓN
DogStatsDdog.count(...)COUNTRATE
DogStatsDdog.increment(...)COUNTRATE
DogStatsDdog.decrement(...)COUNTRATE
DogStatsDdog.set(...)SETGAUGE
DogStatsDdog.histogram(...)HISTOGRAMGAUGE, RATE

Nota: Mientras que las diferentes agregaciones de los valores métricos de distribución se representan como gauges o COUNT en la aplicación, la métrica en sí mantiene el tipo DISTRIBUTION. Consulte la sección de Definiciones de esta página para más información.

Lectura adicional