Nouvelles annonces sur les technologies sans serveur et réseau ainsi que sur le RUM (Real-User Monitoring) dévoilées à la conférence Dash ! Nouvelles annonces dévoilées à la conférence Dash !

Métriques custom

Présentation

Si une métrique n’est pas envoyée depuis l’une des plus de 350 intégrations Datadog, elle est considérée comme une métrique custom. Remarque : certaines intégrations standard génèrent des métriques custom.

Une métrique custom désigne une combinaison unique de nom de métrique, de host et de valeurs de tag. En général, les métriques envoyées par StatsD, par DogStatsD ou par des extensions de l’Agent Datadog sont des métriques custom.

Attribution

Un certain nombre de métriques custom vous est attribué en fonction de votre offre tarifaire Datadog :

  • Pro : 100 métriques custom par host
  • Entreprise : 200 métriques custom par host

Ces attributions sont calculées sur l’ensemble de votre infrastructure. Par exemple, si vous utilisez l’offre Pro avec 3 hosts, 300 métriques custom vous sont attribuées. Ces 300 métriques custom peuvent être réparties équitablement entre chaque host ou toutes être attribuées à un seul host.

Pour cet exemple, le graphique ci-dessous indique des scénarios respectant le nombre de métriques custom attribuées :

Aucune limite de débit fixe n’est appliquée lors de l’envoi des métriques custom. Si vous dépassez votre nombre de métriques par défaut, vous serez facturé conformément à la politique de facturation de Datadog pour les métriques custom.

Suivi

Les administrateurs peuvent afficher le nombre total de métriques custom par heure et les 500 principales métriques custom pour leur compte depuis la page des détails d’utilisation. Consultez la documentation sur les détails d’utilisation pour en savoir plus.

Compte

L’utilisation de tags sur des métriques custom peut modifier le nombre total de combinaisons uniques de tags, ce qui change le nombre total de métriques custom créées. Les exemples ci-dessous indiquent comment le compte de métriques custom est calculé.

Host unique

Dans cet exemple, nous supposons que vous envoyez une métrique COUNT(auth.exceptionCount) sur un host unique.

  • Votre instrumentation de code envoie les différents tags suivants associés à cette métrique : method:X, method:Y, exception:A, exception:B.
  • Le tagging de votre métrique suit alors la logique suivante :

  • Ici, vous disposez de 6 métriques distinctes. Les métriques uniques pour un host unique sont :

MétriqueTags
auth.exceptionCountmethod:X
auth.exceptionCountmethod:Y
auth.exceptionCountmethod:X, exception:A
auth.exceptionCountmethod:X, exception:B
auth.exceptionCountmethod:Y, exception:A
auth.exceptionCountmethod:Y, exception:B

Remarque : l’ordre des tags n’a pas d’influence sur le compte de métriques. Les métriques suivantes ne sont pas uniques :

  • auth.exceptionCount avec les tags method:X et exception:A
  • auth.exceptionCount avec les tags exception:A et method:X

Hosts multiples

Une métrique custom se distingue de par sa combinaison unique de nom de métrique, de host et de valeurs de tag. Par conséquent, la transmission d’une métrique custom à partir de plusieurs hosts génère plusieurs combinaisons de valeurs de tag uniques.

Par exemple, vous créez la métrique service.request.count pour surveiller différents services dans votre infrastructure.

  • Pour surveiller les réussites et échecs, vous créez le tag status qui prend deux valeurs :
    • status:success
    • status:failure
  • Vous surveillez la métrique pour chaque service s’exécutant sur votre infrastructure :
    • service:database
    • service:api
    • service:webserver
  • Votre métrique suit alors la logique suivante :

Dans cet exemple, seul un sous-ensemble des services et des statuts est envoyé. Vous possédez trois hosts :

  • host1 transmet toutes les configurations possibles.
  • host2 transmet uniquement les réussites de tous les services.
  • host3 transmet les réussites et les échecs pour les services de base de données et de serveur Web.

Vos trois hosts envoient alors 13 métriques (séries temporelles) distinctes :

Remarque : si tous les services transmettent les deux statuts, vous disposez de 1 x 2 x 3 = 6 métriques custom par host.

Résumé des métriques

La page Metric Summary affiche le nombre de métriques distinctes, équivalent au nombre de séries temporelles distinctes associées au nom de la métrique, au host et aux valeurs de tag. Par exemple, service.request.count avec 1 host, 2 statuts et 3 services donne lieu à 6 métriques distinctes :

Si vous ajoutez un deuxième host avec 3 services et 1 statut, vous obtenez 9 métriques distinctes :

Si vous ajoutez un troisième host avec 2 services et 2 statuts ; vous obtenez 13 métriques distinctes :

Éditeur de requête

Vous pouvez compter vos métriques custom en utilisant l’agrégateur count: dans l’éditeur de requête. Pour compter le nombre de métriques pour l’exemple précédent, la requête count:service.request.count{*} est utilisée :

Métriques gauges, counts, histograms et rates

Supposons que vous souhaitiez mesurer la temperature moyenne dans l’État de Floride. La temperature est enregistrée en tant que métrique de type GAUGE dans Datadog. Vous recueillez les mesures de température suivantes toutes les 10 secondes au cours de la dernière minute pour Orlando, Miami, Boston, New York et Seattle. Chaque mesure est taguée avec les informations relatives à city, state, region et country.

Tags0 à 10 s10 à 20 s20 à 30 s30 à 40 s40 à 50 s50 à 60 s
Orlando, FL, Southeast, USA808080808181
Miami, FL, Southeast, USA828282828282
Boston, MA, Northeast, USA787878787879
New York, NY, Northeast, USA797979797979
Seattle, WA, Northwest, USA757575757575

Il y a au total 5 métriques custom associées à la métrique temperature. Chaque combinaison de tag unique entre city, state, region et country est considérée comme une métrique custom :

MétriqueTags
temperaturecity:orlando, state:fl, region:southeast, country:usa
temperaturecity:miami, state:fl, region:southeast, country:usa
temperaturecity:boston, state:ma, region:northeast, country:usa
temperaturecity:new_york, state:ny, region:northeast, country:usa
temperaturecity:seattle, state:wa, region:northwest, country:usa

À partir des cinq séries temporelles ci-dessus, il est possible de déterminer la temperature moyenne aux États-Unis, dans le Nord-Est ou en Floride au moment de la requête.

Remarque : la méthode utilisée pour calculer le nombre de métriques custom est la même que celle utilisée pour calculer les métriques de type COUNT, HISTOGRAM et RATE.

Ignorer des tags

Imaginons que vous supprimiez le tag country de la métrique temperature. Les données contiennent encore cinq combinaisons de valeur de tag uniques pour les tags city, state et region. Au total, cinq métriques custom sont générées à partir de la métrique temperature :

MétriqueTags
temperaturecity:orlando, state:fl, region:southeast
temperaturecity:miami, state:fl, region:southeast
temperaturecity:boston, state:ma, region:northeast
temperaturecity:new_york, state:ny, region:northeast
temperaturecity:seattle, state:wa, region:northwest

Supposons que vous supprimiez le tag city de la métrique temperature. Cela regroupe les données d’Orlando et de Miami :

Tags0 à 10 s10 à 20 s20 à 30 s30 à 40 s40 à 50 s50 à 60 s
FL, Southeast8181818181.581.5
MA, Northeast787878787879
NY, Northeast797979797979
WA, Northwest757575757575

Les données de temperature contiennent désormais quatre combinaisons de valeurs de tag uniques. Par conséquent, il y a au total quatre métriques custom :

MétriqueTags
temperaturestate:fl, region:southeast
temperaturestate:ma, region:northeast
temperaturestate:ny, region:northeast
temperaturestate:wa, region:northwest

Distributions

Une métrique de distribution récupère toutes les valeurs de l’ensemble des hosts générant des valeurs de métriques dans un intervalle de dix secondes. Les distributions émettent un nombre de métriques custom proportionnel au nombre de métriques custom émises par GAUGE. Les distributions génèrent cinq séries temporelles pour chaque combinaison de tag unique qui apparaît dans les données : sum, count, min, max et avg (calculé à partir de sum/count).

Supposons que vous souhaitiez mesurer la métrique age maximale dans l’État de New York. Elle est envoyée en tant que métrique de distribution avec les tags city et state :

TagsValeurs par intervalle de 10 secondesSommeTotalMinimumMaximumMoyenne
Rochester, NY23, 29, 33, 55, 41, 36, 12, 672968126737
New York, NY18, 22, 26, 31, 29, 40, 23, 352158184028

Le nombre total de métriques custom ou de séries temporelles émises à partir de la métrique de distribution age est de dix (5 x 2). Pour les deux combinaisons de valeurs de tags uniques ci-dessus (Rochester, NY et New York, NY), Datadog conserve cinq séries temporelles (sum, count, min, max et avg).

Pour obtenir l’âge maximal dans l’État de New York, agrégez les séries temporelles ci-dessus : âge maximal à New York = max (max (Rochester, NY), max (New York, NY)) = 67.

Métriques de distribution avec agrégations en centile

Après avoir envoyé une métrique de distribution à Datadog, vous avez la possibilité d’ajouter des agrégations de centiles à une distribution depuis l’interface Distributions. Les distributions avec agrégations en centile sont calculées différemment des types de métriques énumérés ci-dessus, car les centiles ne peuvent pas être réagrégés mathématiquement.

Supposons que vous souhaitiez calculer l’age médian dans l’État de New York, où la métrique de distribution age est associée aux tags city et state.

TagsValeurs par intervalle de 10 secondesSommeTotalMinMaxMoyennep50p75p90p95p99
Rochester, NY23, 33, 55, 41, 36, 12, 6626671266383655666666
New York, NY18, 26, 31, 29, 40, 23, 3620371840292936404040

Contrairement aux âges maximum ci-dessus, les centiles ne peuvent PAS être réagrégés. L’âge médian à New York n’est pas égal à median(median(Rochester, NY), median(New York, NY)).

Par conséquent, pour vous fournir les agrégations de centile statistiquement valides, Datadog doit précalculer cinq séries temporelles (p50, p75, p90, p95 et p99) pour chaque combinaison de valeurs de tags pouvant faire l’objet d’une requête. Dans l’exemple de New York, les combinaisons de valeurs de tags city et state pouvant faire l’objet d’une requête sont les suivantes :

Tag cityTag state
Rochesterempty
RochesterNY
New Yorkempty
New YorkNY
emptyNY
emptyempty

Le nombre de valeurs pouvant faire l’objet d’une requête est de trois pour le tag city {Rochester, New York, empty} et de deux pour le tag state : {NY, empty}.

Pour aller plus loin

Documentation, liens et articles supplémentaires utiles: