Limites de débit

De nombreux endpoints d’API ont une limite de débit. Lorsque vous dépassez un certain nombre de requêtes dans un intervalle donné, Datadog renvoie une erreur.

Si vous dépassez la limite de débit, vous recevez un code de réponse 429. Vous pouvez soit patienter pendant la durée correspondant à X-RateLimit-Period avant d’effectuer à nouveau des appels, soit effectuer des appels à une fréquence légèrement plus faible que X-RateLimit-Limit ou X-RateLimit-Period.

Pour revoir à la hausse les limites de débit par défaut, contactez l’assistance Datadog.

Quelques précisions concernant la politique de limitation de débit des API :

  • Datadog n’applique aucune limite de débit lors de l’envoi de points de données/métriques (consultez la section relative aux métriques pour en savoir plus sur le traitement du débit d’envoi des métriques). Les limites appliquées dépendent de la quantité de métriques custom prévue dans votre contrat.
  • L’API utilisée pour envoyer des logs n’a pas de limite de débit.
  • Le taux limite de soumission d’événements est de 250,000 événements par minute et par organisation.
  • Les limites de débit varient selon les endpoints et sont précisées dans les en-têtes détaillés ci-dessous. Il est possible d’augmenter ces limites sur demande.
La liste ci-dessus ne répertorie pas toutes les limites de débit applicables aux API Datadog. Si votre débit est limité, contactez l'assistance pour en savoir plus sur l'API que vous utilisez et sur ses limites.
En-têtes de limites de débitDescription
X-RateLimit-LimitNombre de requêtes autorisées sur une période donnée
X-RateLimit-PeriodDurée en secondes pour les réinitialisations (alignées sur le calendrier)
X-RateLimit-RemainingNombre de requêtes autorisées restantes pour la période en cours
X-RateLimit-ResetDélai en secondes avant la prochaine réinitialisation
X-RateLimit-Namenom de la limite de débit pour les requêtes d’augmentation.

Métriques d’utilisation des API Datadog

Toutes les API Datadog ont une limite d’utilisation sur une période donnée. Chaque API peut avoir son propre compartiment de limitation de débit ou partager un compartiment commun selon les ressources sollicitées. Par exemple, l’API de statut des monitors dispose d’une limite qui restreint le nombre de requêtes par minute effectuées par un humain ou un script automatisé. En cas de dépassement, le point de terminaison (endpoint) renvoie un code 429 et indique d’attendre la fin de la période de réinitialisation. Les métriques d’utilisation de l’API permettent aux utilisateurs Datadog de consulter et auditer eux-mêmes la consommation des limites de débit pour les endpoints d’API (à l’exception des endpoints de soumission de métriques, logs et événements). Ces métriques offrent une visibilité sur les requêtes autorisées et bloquées, avec les dimensions et tags disponibles suivants :

     

Métriques disponibles

DimensionMétrique d'utilisationDescriptionTags disponibles
Organisationdatadog.apis.usage.per_orgLimite de débit globale sur les requêtes vers un endpoint donné pour l'organisation.
  • app_key_id
  • child_org (parent uniquement)
  • limit_count
  • limit_name
  • limit_period
  • rate_limit_status
  • user_uuid
datadog.apis.usage.per_org_ratioRatio entre les requêtes effectuées (par dimensions disponibles) et le total autorisé (limit_count).
  • app_key_id
  • child_org (parent uniquement)
  • limit_count
  • limit_name
  • limit_period
  • rate_limit_status
  • user_uuid
Utilisateur (UUID)datadog.apis.usage.per_userNombre de requêtes effectuées vers un endpoint donné, limité par utilisateur.
  • app_key_id
  • child_org (parent uniquement)
  • limit_count
  • limit_name
  • limit_period
  • rate_limit_status
  • user_uuid
datadog.apis.usage.per_user_ratioRatio entre les requêtes effectuées et le total autorisé (limit_count).
  • app_key_id
  • child_org (parent uniquement)
  • limit_count
  • limit_name
  • limit_period
  • rate_limit_status
  • user_uuid
API Keydatadog.apis.usage.per_api_keyNombre de requêtes effectuées vers un endpoint donné, limité par clé d'API.
  • app_key_id
  • child_org (parent uniquement)
  • limit_count
  • limit_name
  • limit_period
  • rate_limit_status
  • user_uuid
datadog.apis.usage.per_api_key_ratioRatio entre les requêtes effectuées et le total autorisé (limit_count).
  • app_key_id
  • child_org (parent uniquement)
  • limit_count
  • limit_name
  • limit_period
  • rate_limit_status
  • user_uuid

Clé de tag

Nom du tagRôle
app_key_idIdentifiant de la clé d’application utilisée. Peut valoir N/A pour les utilisateurs web, mobiles ou les endpoints publics.
child_orgNom de l’organisation fille, si affiché depuis l’organisation parent. Sinon, vaut N/A. Ne s’applique qu’au sein d’un même datacenter.
limit_countNombre de requêtes autorisées pour chaque nom de limite pendant une période donnée.
limit_nameNom de la limite. Plusieurs endpoints peuvent partager le même nom.
limit_periodDurée (en secondes) avant réinitialisation de la consommation.
rate_limit_statuspassed : requête autorisée.
blocked : requête bloquée (limite atteinte).
user_uuidUUID de l’utilisateur à l’origine de la requête.

Agrégation dans les widgets

Les visualisations de métriques doivent en général être agrégées à la minute avec sum(60s) pour obtenir le total de requêtes par minute.

Les métriques de ratio sont déjà normalisées par rapport à limit_period.

Exemples de cas d’utilisation
Requêtes par nom de limite de débit
Créez un graphique représentant la somme de datadog.apis.usage.per_org, datadog.apis.usage.per_user et datadog.apis.usage.per_api_key par limit_name

Exemple : default_zero(sum:datadog.apis.usage.per_org{*} by {limit_name}) + default_zero(sum:datadog.apis.usage.per_user{*} by {limit_name}) + default_zero(sum:datadog.apis.usage.per_api_key{*} by {limit_name})
Bloquées par nom de limite de débit
Créez un graphique représentant la somme de datadog.apis.usage.per_org, datadog.apis.usage.per_user et datadog.apis.usage.per_api_key par limit_name avec rate_limit_status:blocked

Exemple : default_zero(sum:datadog.apis.usage.per_org{rate_limit_status:blocked} by {limit_name}) + default_zero(sum:datadog.apis.usage.per_user{rate_limit_status:blocked} by {limit_name}) + default_zero(sum:datadog.apis.usage.per_api_key{rate_limit_status:blocked} by {limit_name})
Endpoint bloqué par utilisateur
Créez un graphique représentant la somme de datadog.apis.usage.per_org, datadog.apis.usage.per_user et datadog.apis.usage.per_api_key par user_uuid avec rate_limit_status:blocked et limit_name:example

Exemple : default_zero(sum:datadog.apis.usage.per_org{rate_limit_status:blocked,limit_name:example} by {user_uuid}) + default_zero(sum:datadog.apis.usage.per_user{rate_limit_status:blocked,limit_name:example} by {user_uuid}) + default_zero(sum:datadog.apis.usage.per_api_key{rate_limit_status:blocked,limit_name:example} by {user_uuid})
Endpoint bloqué par ID de clé d’application
Créez un graphique représentant la somme de datadog.apis.usage.per_org, datadog.apis.usage.per_user et datadog.apis.usage.per_api_key par app_key_id avec rate_limit_status:blocked et limit_name:example

Exemple : default_zero(sum:datadog.apis.usage.per_org{rate_limit_status:blocked,limit_name:example} by {app_key_id}) + default_zero(sum:datadog.apis.usage.per_user{rate_limit_status:blocked,limit_name:example} by {app_key_id}) + default_zero(sum:datadog.apis.usage.per_api_key{rate_limit_status:blocked,limit_name:example} by {app_key_id})
Ratio des limites de débit utilisées par nom de limite
Créez un graphique représentant la somme de datadog.apis.usage.per_org_ratio, datadog.apis.usage.per_user_ratio et datadog.apis.usage.per_api_key_ratio par limit_name

Exemple : default_zero(max:datadog.apis.usage.per_org_ratio{*} by {limit_name}) + default_zero(max:datadog.apis.usage.per_user_ratio{*} by {limit_name}) + default_zero(max:datadog.apis.usage.per_api_key_ratio{*} by {limit_name})

Augmenter votre limite de débit

Vous pouvez demander une augmentation des limites de débit en créant un ticket d’assistance contenant les informations ci-dessous dans Help > New Support Ticket. Une fois la demande reçue, l’équipe Support Engineering l’examine au cas par cas et, si nécessaire, collabore avec les équipes d’ingénierie internes pour évaluer la faisabilité de l’augmentation demandée.

Titre :
    Demande d'augmentation de la limite de débit pour l'endpoint : X

Détails :
    Nous souhaitons demander une augmentation de la limite de débit pour l'endpoint de l'API : X
    Exemples de cas d'utilisation ou de requêtes :
        Exemple d'appel API sous forme de cURL ou d'URL avec une charge utile d'exemple

    Motivation de la demande d'augmentation :
        Exemple - Notre organisation utilise cet endpoint pour ajuster la taille d'un conteneur avant le déploiement. Ce déploiement a lieu toutes les X heures ou jusqu'à Y fois par jour.

    Limite cible souhaitée :
        Astuce - Avoir en tête une augmentation précise ou un pourcentage d'augmentation souhaité permet à l'équipe Support Engineering de transmettre plus rapidement la demande aux équipes d'ingénierie internes pour examen.

Une fois le cas d’utilisation examiné et approuvé par l’équipe Support de Datadog, l’augmentation de la limite de débit peut être appliquée en arrière-plan. Notez qu’en raison de la nature SaaS de Datadog, il existe une limite maximale à l’augmentation possible. L’équipe Support de Datadog se réserve le droit de refuser une demande d’augmentation selon le cas d’utilisation et les recommandations de l’équipe Engineering.

Logs d’audit

Les limites d’API et les métriques d’utilisation fournissent des informations sur les schémas d’utilisation et les requêtes bloquées. Si vous avez besoin de détails supplémentaires, Audit Trail offre une visibilité plus fine sur l’activité de l’API.

Avec Audit Trail, vous pouvez consulter des données telles que :

  • Adresse IP et géolocalisation – Identifiez l’origine des requêtes API.
  • Type d’acteur – Identifiez s’il s’agit d’un compte de service ou d’un compte utilisateur.
  • Authentification par clé d’API ou par utilisateur – Vérifiez si les requêtes ont été effectuées via une clé d’API ou directement par un utilisateur.
  • Événements corrélés – Affichez les autres événements survenus au même moment, comme des modifications de configuration ou des actions liées à la sécurité.

Audit Trail peut aider les équipes à résoudre les problèmes liés aux limites de débit en fournissant davantage de contexte sur la consommation de l’API et les requêtes bloquées. Il permet également de suivre l’utilisation de l’API à l’échelle de l’organisation à des fins de sécurité et de conformité.

Pour une visibilité plus détaillée sur l’activité de l’API, envisagez d’utiliser Audit Trail.