Présentation
Datadog peut recueillir et afficher les erreurs, le temps de réponse, la durée ainsi que la latence et surveiller les performances du trafic d’API dans Tyk pour identifier des problèmes concernant vos API ou vos consommateurs.
Tyk inclut par défaut une intégration Datadog qui recueille des métriques à partir de la passerelle API Tyk.
La passerelle API Tyk enregistre des données sur tout le trafic qu’elle traite, les envoie à Datadog et conçoit des dashboards basés sur ces données.
Fonctionnement
La pompe Tyk écrit des métriques d’application custom et les envoie à Datadog via DogStatsD, le service d’agrégation de métriques inclus avec l’Agent Datadog. DogStatsD implémente le protocole StatsD qui ajoute quelques extensions spécifiques à Datadog, notamment le type de métrique histogram utilisé par Tyk-gateway
.
Tyk-gateway
utilise Tyk-pump
pour envoyer les analyses effectuées à Datadog.
Lors de l’exécution de l’Agent Datadog, DogStatsD récupère en temps réel la métrique request_time
à partir de Tyk-pump
pour chaque requête. Vous pouvez ainsi mieux comprendre votre utilisation des API et agréger plusieurs paramètres, comme la date, la version, le code renvoyé ou la méthode, pour gagner en flexibilité.
La métrique custom utilisée par Tyk correspond au type DD_HISTOGRAM_AGGREGATES.
Configuration
L’intégration Tyk est incluse avec le package tyk-pump
: vous devez donc uniquement définir une configuration dans pump.conf
. Vous n’avez rien d’autre à installer sur votre plateforme Tyl.
Installation
Installation
Pour cette intégration, vous devez avoir installé au préalable Tyk. Vous pouvez installer le logiciel Tyk autogéré ou open source. tyk-pump
est inclus avec ces deux installations.
Installer l’Agent Datadog
Installez l’Agent Datadog dans votre environnement.
Exécutez l’Agent Datadog dans votre cluster Kubernetes, sous la forme d’un conteneur Docker sur votre Mac, ou à l’aide de toute autre approche permettant à Tyk pump
d’accéder à l’Agent.
Consultez la documentation relative aux modèles d’intégration Autodiscovery pour obtenir plus d’informations pour les environnements conteneurisés. Pour vérifier que vos modifications ont été appliquées, exécutez la sous-commande status de l’Agent.
Procédure à suivre
Tyk-pump
Pour configurer une pompe Datadog, suivez les instructions de la section DogStatsD du fichier README de la pompe (en anglais).
Voici un exemple de configuration de pompe Datadog dans pump.conf
:
pump.conf:
...
"dogstatsd": {
"type": "dogstatsd",
"meta": {
"address": "dd-agent:8126",
"namespace": "tyk",
"async_uds": true,
"async_uds_write_timeout_seconds": 2,
"buffered": true,
"buffered_max_messages": 32,
"sample_rate": 0.9999999999,
"tags": [
"method",
"response_code",
"api_version",
"api_name",
"api_id",
"org_id",
"tracked",
"path",
"oauth_id"
]
}
},
Cet exemple provient de Tyk-demo, un projet open source qui permet de lancer en une seule commande l’intégralité de la plateforme Tyk et propose plusieurs exemples clés en main, notamment pour Datadog. Pour exécuter cette intégration, utilisez la commande up.sh analytics-datadog
.
L’intégration Tyk repose sur DogStatsD, le service d’agrégation de métriques fourni avec l’Agent Datadog. DogStatsD implémente le protocole StatsD
et ajoute quelques extensions spécifiques à Datadog. Tyk utilise le type de métrique Histogram
.
Configurez les variables d’environnement Datadog et DogStatsD suivantes dans votre environnement :
Variable d’environnement Datadog | Valeur | Description |
---|
DD_API_KEY | {votre-clé-api-datadog} | Permet à l’Agent Datadog de se connecter au portail Datadog. Votre clé d’API est indiquée dans les paramètres de votre compte. |
DD_ENV | tyk-demo-env | Définit le nom de l’environnement. |
DD_DOGSTATSD_TAGS | “env:tyk-demo” | Les tags supplémentaires à ajouter à l’ensemble des métriques, événements et checks de service reçus par ce serveur DogStatsD. |
DD_LOGS_ENABLED | true | Active la collecte de logs pour l’Agent Datadog. |
DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL | true | Recueille des logs à partir des conteneurs. |
DD_DOGSTATSD_SOCKET | /var/run/docker.sock | Le chemin vers le socket Unix à écouter. Docker Compose monte ce chemin. |
DD_DOGSTATSD_ORIGIN_DETECTION | true | Active la détection de conteneurs et le tagging pour les métriques de socket Unix. |
DD_DOGSTATSD_NON_LOCAL_TRAFFIC | true | Effectue une écoute des paquets DogStatsD issus d’autres conteneurs. Requis pour envoyer des métriques custom. |
DD_AGENT_HOST | dd-agent | Le nom du host de l’Agent dans Docker. |
DD_AC_EXCLUDE | redis | Exclut les checks redis Datadog (facultatif). |
DD_CONTAINER_EXCLUDE | true | Exclut les checks Docker pour l’Agent Datadog. |
Une fois les variables d’environnement ci-dessus définies, configurez l’Agent afin d’utiliser DogStatsD.
Redémarrez l’Agent une fois la configuration terminée.
Validation
Créez un dashboard ou importez l’échantillon et ajoutez un widget. Dans la section Graph your data, sous le champ metric, commencez à saisir l’espace de nommage que vous avez choisi pour la pompe dans la configuration pump.conf
sous dogstatsd.namespace
.
Dans l’exemple ci-dessus, il s’agit de tyk
. Commencez à saisir du texte pour afficher toutes les métriques disponibles.
Données collectées
Métriques
tyk.request_time.95percentile (gauge) | the 95th percentile of request time values in the time interval Shown as millisecond |
tyk.request_time.count (rate) | Represents the number of values submitted during the interval. Represents the number of values submitted during the interval, X. The Agent submits this number as a RATE so it would show in app the value of X/interval Shown as millisecond |
tyk.request_time.avg (gauge) | Represents the average of request time values in the time interval Shown as millisecond |
tyk.request_time.max (gauge) | Represents the maximum value of request time values sent during the time interval Shown as millisecond |
tyk.request_time.median (gauge) | Represents the median of request time values in the time interval Shown as millisecond |
Dashboards
Datadog vous permet de créer des dashboards qui représentent des statistiques à propos de vos services API et de leur utilisation.
Voici un exemple de dashboard :
Remarque : vous pouvez importer ce dashboard et l’utiliser comme exemple ou référence pour votre propre dashboard.
Événements
L’intégration Tyk n’inclut aucun événement.
Checks de service
L’intégration Tyk n’inclut aucun check de service.
Dépannage
Besoin d’aide ? Contactez l’assistance Datadog.