Tipos de métricas

Descripción general

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 realizar consultas, así como las posibilidades de graficado asociadas dentro de Datadog mediante el uso de modificadores y funciones adicionales. El tipo de una métrica se muestra en el panel lateral de detalles de la métrica dada en la página de Metrics Summary.

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 podría hacer que los datos históricos carezcan de sentido.

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

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

  • RECUENTO
  • TASA
  • GAUGE
  • DISTRIBUCIÓN
  • HISTOGRAMA (Explícito, Exponencial)

Nota: Si envía 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 cambiarse a otro tipo en la aplicación hasta que se envíe un tipo de métrica inicial.

Envío frente al tipo en la aplicación

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

La mayor parte de los datos que recibe Datadog se envían a través del Agent, ya sea mediante una comprobación 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 vaciado. El Agent combina estos valores en un único valor de métricas representativo para ese intervalo. Este valor combinado se almacena con una única marca de tiempo en Datadog.

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

Lea la sección Tipos de envío y tipos de métricas en la aplicación de Datadog para obtener información sobre cómo se asignan 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 realizar un seguimiento del número total de conexiones realizadas a una base de datos o del número total de solicitudes a un punto de conexión. Este número de eventos puede acumularse o disminuir con el tiempo; no aumenta de forma monótona.

Nota: Un COUNT es diferente del tipo de métrica RATE, que representa el número de ocurrencias de eventos normalizado por segundo dado 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 realizar un seguimiento de la frecuencia con la que sucede algo, como la frecuencia de las 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 representativo es el último valor enviado al Agent durante un intervalo de tiempo. Un GAUGE se puede utilizar para tomar una medida de algo que se informa continuamente, como el espacio en disco disponible o la memoria utilizada.

El tipo de envío de métrica HISTOGRAM representa la distribución estadística de un conjunto de valores calculados en el lado del Agent en un intervalo de tiempo. El tipo de métrica HISTOGRAM de Datadog 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ía X valores para una métrica HISTOGRAM <METRIC_NAME> en un intervalo de tiempo determinado, el Agent produce las siguientes métricas de forma predeterminada:

<METRIC_NAME>.avg
Representa el promedio de esos X valores en el intervalo de tiempo.
Tipo en la aplicación de Datadog: GAUGE
<METRIC_NAME>.count
Representa la cantidad de valores enviados durante el intervalo, X. El Agent envía este número como RATE, por lo que mostraría en la aplicación el valor de X/interval.
Tipo en la aplicación de Datadog: RATE
<METRIC_NAME>.median
Representa la mediana de esos X valores en el intervalo de tiempo.
Tipo en la aplicación de Datadog: GAUGE
<METRIC_NAME>.95percentile
Representa el percentil 95 de esos X valores en el intervalo de tiempo.
Tipo en la aplicación 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:

  • Configure qué agregaciones desea enviar a Datadog con el parámetro histogram_aggregates en su archivo de configuración datadog.yaml. De forma predeterminada, solo se envían a Datadog las agregaciones max, median, avg y count. sum y min también están disponibles.
  • Configure qué agregación de percentil desea enviar a Datadog con el parámetro histogram_percentiles en su archivo de configuración datadog.yaml. De forma predeterminada, solo se envía 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 su infraestructura distribuida en un intervalo de tiempo. Una DISTRIBUTION se puede utilizar para instrumentar objetos lógicos, como servicios, independientemente de los hosts subyacentes.

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

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

Si envía X valores para una métrica DISTRIBUTION <METRIC_NAME> en un intervalo de tiempo determinado, las siguientes agregaciones están disponibles para consulta de forma predeterminada:

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 la cantidad de puntos enviados en el intervalo de tiempo, X. El Agent 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 esos 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: Si bien las diferentes agregaciones de valores de métricas de distribución se representan como gauges o counts en la aplicación, la métrica en sí conserva el tipo DISTRIBUTION.

Ejemplo

Suponga que está enviando una métrica COUNT, notifications.sent, desde un solo servidor que ejecuta el Datadog Agent. Este servidor emite los siguientes valores en un intervalo de tiempo de vaciado: [1,1,1,2,2,2,3,3].

El Agent 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 COUNT.

Suponga que está enviando una métrica RATE, queue_messages.rate, desde un solo servidor que ejecuta el Datadog Agent. Este servidor emite los siguientes valores en un intervalo de tiempo de vaciado: [1,1,1,2,2,2,3,3].

El Agent 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 vaciado es de 10 segundos, el valor enviado sería 1.5 como el valor de la métrica RATE.

Suponga que está enviando una métrica GAUGE, temperature, desde un solo servidor que ejecuta el Datadog Agent. Este servidor emite los siguientes valores en un intervalo de tiempo de vaciado: [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 la métrica GAUGE.

Por ejemplo, suponga que está 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 vaciado de 10 segundos. De forma predeterminada, el Agent envía las siguientes métricas a Datadog, las cuales representan la distribución estadística de estos valores en este intervalo de tiempo:

Nombre de la métricaValorTipo en la aplicación 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

Suponga que está enviando una métrica de DISTRIBUCIÓN, request.response_time.distribution, desde dos servidores web: webserver:web_1 y webserver:web_2. Suponga que en un intervalo de tiempo de vaciado determinado, 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 en la aplicación de Datadog
avg:request.response_time.distribution1.73GAUGE
count:request.response_time.distribution11RECUENTO
max:request.response_time.distribution3GAUGE
min:request.response_time.distribution1GAUGE
sum:request.response_time.distribution19RECUENTO

Cálculo de agregaciones de percentiles

Al igual que otros tipos de métricas, como GAUGE o HISTOGRAM, el tipo de métrica DISTRIBUTION tiene disponibles las siguientes agregaciones: 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 configuradas en el código).

Se pueden agregar agregaciones de percentiles adicionales (p50, p75, p90, p95, p99) a las métricas de distribución desde el panel lateral de detalles de la métrica. Si agregara agregaciones de percentiles a su métrica de distribución en la aplicación, las siguientes cinco agregaciones adicionales estarían disponibles para consulta:

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

Nota: Si bien las diferentes agregaciones de valores de métricas de distribución se representan como gauges o counts en la aplicación, la métrica en sí conserva el tipo DISTRIBUTION.

Personalización de etiquetas

Esta funcionalidad le permite controlar el etiquetado de métricas donde no es necesaria la granularidad a nivel de servidor. Obtenga más información sobre Metrics without Limits™.

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

Envío

Envíe sus métricas de tipo COUNT 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 del agenteself.count(...)COUNTCOUNT
Verificación del agenteself.monotonic_count(...)COUNTCOUNT
APIapi.Metric.send(type="count", ...)COUNTCOUNT
DogStatsDdog.count(...)COUNTRATE
DogStatsDdog.increment(...)COUNTRATE
DogStatsDdog.decrement(...)COUNTRATE

Nota: Al enviar un tipo de métrica de COUNT a través de DogStatsD, la métrica aparece como una RATE en la aplicación para garantizar una comparación relevante entre diferentes agentes. En consecuencia, los COUNT de StatsD pueden aparecer con un valor decimal dentro de Datadog (ya que se normalizan durante un intervalo de tiempo para informar unidades por segundo).

Envíe sus métricas de tipo RATE desde una de las siguientes fuentes:

FuenteMétodo de envío (python)Tipo de envíoTipo en la aplicación Datadog
Verificación del Agentself.rate(...)RATEGAUGE
APIapi.Metric.send(type="rate", ...)RATERATE

Nota: Para obtener métricas de RATE a través de DogStatsD, envíe una métrica de [COUNT][16] o [HISTOGRAM][18]. Los valores de las métricas COUNT y <HISTOGRAM>.count son deltas normalizados por tiempo del valor de la métrica durante el período de vaciado de StatsD.

Envíe sus métricas de tipo GAUGE desde una de las siguientes fuentes:

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

Envíe sus métricas de tipo HISTOGRAM desde una de las siguientes fuentes:

FuenteMétodo de envío (Python)Tipo de envíoTipos de Datadog en la aplicación
Agent checkself.histogram(...)HISTOGRAMGAUGE, RATE
DogStatsDdog.histogram(...)HISTOGRAMGAUGE, RATE

El envío de una métrica TIMER al Datadog Agent es equivalente al envío de un tipo de métrica HISTOGRAM dentro de DogStatsD (no confundir con los timers en el StatsD estándar). DogStatsD TIMER representa solo datos de duración. Por ejemplo, la cantidad de tiempo que tarda en ejecutarse una sección de código o cuánto tiempo tarda en renderizarse completamente una página.

Envíe sus métricas de tipo DISTRIBUTION desde la siguiente fuente:

FuenteMétodo de envío (Python)Tipo de envíoTipos de Datadog en la aplicación
DogStatsDdog.distribution(...)DISTRIBUTIONGAUGE, COUNT
APIapi_instance.submit_distribution_points(...)DISTRIBUTIONGAUGE, COUNT

Nota: Si bien las diferentes agregaciones de valores de métricas de distribución se representan como gauges o counts en la aplicación, la métrica en sí conserva el tipo DISTRIBUTION.

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

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 de métricas correspondiente y los tipos en la aplicación:

Fuente de envíoMétodo de envío (Python)Tipo de envíoTipos de Datadog en la aplicación
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", ...)CONTADORCONTADOR
APIapi.Metric.send(type="gauge", ...)GAUGEGAUGE
APIapi.Metric.send(type="rate", ...)RATERATE
DogStatsDdog.gauge(...)GAUGEGAUGE
DogStatsDdog.distribution(...)DISTRIBUTIONDISTRIBUTION
DogStatsDdog.count(...)COUNTRATE
DogStatsDdog.increment(...)COUNTRATE
DogStatsDdog.decrement(...)COUNTRATE
DogStatsDdog.set(...)SETGAUGE
DogStatsDdog.histogram(...)HISTOGRAMGAUGE, RATE

Nota: Si bien las diferentes agregaciones de valores de métricas de distribución se representan como gauges o counts en la aplicación, la métrica en sí conserva el tipo DISTRIBUTION. Consulte la sección Definiciones de esta página para obtener más información.

Lecturas adicionales