Este producto no es compatible con el sitio Datadog seleccionado. ().
Disponible para:

Métricas

Descripción general

El procesador Tag Cardinality Control limita la cantidad de valores de etiqueta para cada métrica. Por ejemplo, una métrica con claves de etiqueta sin límites, como userID, puede provocar que la cardinalidad de la métrica aumente drásticamente e impacte en los costos de ingesta e indexación. Para evitar estos picos inesperados, use el procesador para establecer un límite de cardinalidad para las métricas que coinciden con la consulta de filtro, y descarte las métricas recibidas después de alcanzar el límite o descarte las etiquetas de esas métricas.

Opcionalmente, también puede configurar anulaciones por métrica para establecer un límite para una métrica específica o para excluir la métrica de cualquier límite de cardinalidad. Para cada anulación por métrica, también puede establecer un límite personalizado para etiquetas individuales dentro de la métrica, o excluirlas del límite de cardinalidad por métrica.

Configuración

Para configurar el procesador Tag Cardinality Control:

  1. Defina una consulta de filtro. Consulte Sintaxis de búsqueda de métricas para obtener más información.
    • Solo se procesan las métricas que coinciden con el filtro.
    • Todas las métricas, independientemente de si coinciden con la consulta de filtro, se envían al siguiente paso de la canalización.
  2. Seleccione un Modo de seguimiento en el menú desplegable. Consulte la sección Modos exacto y probabilístico para obtener más información.
  3. Ingrese un límite de cardinalidad para la cantidad máxima de valores distintos por etiqueta. Este límite se aplica a todas las métricas que coinciden con la consulta de filtro.
  4. En el menú desplegable Cuando se alcanza el límite, seleccione si desea Descartar etiqueta o Descartar evento para las métricas que han excedido el límite de cardinalidad.
El procesador Tag Cardinality Control configurado con un límite de cardinalidad de 200 y para descartar la etiqueta cuando se alcanza el límite.

Configuración opcional de anulación por métrica

Si desea establecer un límite de cardinalidad para una métrica específica:

  1. Haga clic en Administrar anulaciones y luego en Agregar anulación de métrica en el panel lateral.
  2. Ingrese el nombre de la métrica.
  3. Seleccione el modo de anulación en el menú desplegable.
    • Límite personalizado: Establece un límite de cardinalidad para esta métrica.
    • Excluir del límite: Excluye esta métrica de ser contada para el límite de cardinalidad. Esto es útil cuando está rastreando una métrica importante y no desea descartar ninguna muestra o etiqueta debido a un límite de cardinalidad.
  4. En el menú desplegable Cuando se alcanza el límite, seleccione si desea Descartar etiqueta o Descartar evento para las métricas que han excedido el límite de cardinalidad.

Anulaciones por etiqueta

Para agregar anulaciones de etiqueta específicas para esta métrica:

  1. Haga clic en Agregar anulación de etiqueta.
  2. Ingrese la clave de etiqueta para la que desea establecer un límite.
  3. Seleccione el modo de anulación en el menú desplegable:
    • Límite personalizado: Establece un límite en el número de valores únicos por etiqueta. Por ejemplo, si se establece el límite de cardinalidad en 5, se utilizan los primeros cinco valores de etiqueta recibidos.
      • Nota: Los valores de etiqueta persisten hasta que el Worker se reinicia o se actualiza la configuración de la canalización. Cualquier actualización de la configuración de la canalización restablece los valores de etiqueta, incluso si la actualización no modifica el procesador Tag Cardinality Control.
    • Excluir del límite: Excluye las métricas con la etiqueta especificada de ser contadas para el límite de cardinalidad.
  4. Ingrese el límite para el número máximo de valores de clave de etiqueta.
  5. Haga clic en Agregar anulación.
El panel de anulación por métrica con un límite personalizado establecido en 100, con anulaciones por etiqueta para la etiqueta servidor excluida del límite y la etiqueta region limitada a cinco.

Cómo funciona el procesador

Modos exacto y probabilístico

El procesador Tag Cardinality Control admite dos modos para realizar el seguimiento de la cardinalidad de las etiquetas:

  • Exacto: Almacena los valores de las etiquetas como un hash de 8 bytes para optimizar el uso de la memoria, a costa de una probabilidad extremadamente pequeña de que dos valores distintos se conviertan en la misma huella digital.
  • Probabilístico: Utiliza filtros de Bloom para realizar el seguimiento de los valores vistos, lo que puede optimizar considerablemente el uso de la memoria a costa de falsos positivos ocasionales. Un falso positivo ocurre cuando se determina incorrectamente que un valor que aún no se ha visto ha sido visto, lo que hace que el procesador exceda ligeramente el límite de cardinalidad especificado.

Uso de memoria para el modo exacto

La siguiente fórmula calcula cuánta memoria utiliza el modo exacto:

$$A = \text"número total de métricas"\ \×\ \text"número promedio de claves de etiqueta por métrica"$$

$$B = \text"longitud promedio de cada clave de etiqueta"\ + (\text"value_limit"\ \×\ \text"longitud promedio de los valores de etiqueta")$$

$$\text"Uso de memoria" = A\ \×\ B$$

Dado que cada valor de etiqueta se almacena como una huella digital hash de 8 bytes, el average length of tag values es 8.

Uso de memoria para el modo probabilístico

El modo probabilístico utiliza filtros de Bloom para realizar el seguimiento de los valores vistos para cada par (métrica, etiqueta). Por ejemplo, si el nombre de la métrica es request.latency con las claves de etiqueta host y region, los pares rastreados son:

  • (request.latency, host)
  • (request.latency, region)

La siguiente fórmula estima el uso de memoria para el modo probabilístico:

$$A = \text"número total de métricas"\ \×\ \text"número promedio de claves de etiqueta por métrica"$$

$$B = \text"longitud promedio de los nombres de campo para las etiquetas"\ \+\ \text"cache_size_per_key"$$

$$\text"Uso de memoria" = A\ \×\ B$$

Puede calcular cache_size_per_key con una calculadora de filtros de Bloom utilizando una fórmula estándar, donde n es el límite de cardinalidad y la tasa de falsos positivos (p) está fijada en 0.1% en el Worker.

Puntos de referencia para el modo exacto frente al modo probabilístico

Las siguientes tablas muestran los puntos de referencia para el modo exacto y el modo probabilístico. A medida que aumenta el número de valores únicos para cada etiqueta, el modo probabilístico se vuelve más eficiente en cuanto a memoria. Los nombres de las métricas y los nombres de las etiquetas utilizados para estos benchmarks fueron cadenas de 20 bytes generadas aleatoriamente.

El tipo de máquina utilizado para el benchmarking es una instancia AWS M6gd.4xlarge.

Puntos de referencia para 10,000 métricas rastreadas

La siguiente tabla muestra el uso de memoria RSS del Worker para el modo probabilístico y exacto al rastrear 10,000 métricas.

10 etiquetas por métrica

Valores únicos por etiquetaModo probabilístico (GB)Modo exacto (GB)
5000.201.04
2500.130.56
1000.100.21

Puntos de referencia para 50,000 métricas rastreadas

La siguiente tabla muestra el uso de memoria RSS del Worker para el modo probabilístico y exacto al rastrear 50,000 métricas.

10 etiquetas por métrica

Valores únicos por etiquetaModo probabilístico (GB)Modo exacto (GB)
1000.350.92
2500.542.67
5000.835.06

50 etiquetas por métrica

Valores únicos por etiquetaModo probabilístico (GB)Modo exacto (GB)
1001.273.98
2502.0812.91
5003.3324.87

Puntos de referencia para 100,000 métricas rastreadas

La siguiente tabla muestra el uso de memoria RSS del Worker para el modo probabilístico y exacto al rastrear 100,000 métricas.

10 etiquetas por métrica

Valores únicos por etiquetaModo probabilístico (GB)Modo exacto (GB)
1000.661.79
2501.025.29
5001.6110.11

50 etiquetas por métrica

Valores únicos por etiquetaModo probabilístico (GB)Modo exacto (GB)
1002.497.86
2504.0825.74
5006.6147.15 (estimado)