Tyk

Supported OS Linux Mac OS Windows

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.

Configurer l’Agent 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 DatadogValeurDescription
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_ENVtyk-demo-envDé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_ENABLEDtrueActive la collecte de logs pour l’Agent Datadog.
DD_LOGS_CONFIG_CONTAINER_COLLECT_ALLtrueRecueille des logs à partir des conteneurs.
DD_DOGSTATSD_SOCKET/var/run/docker.sockLe chemin vers le socket Unix à écouter. Docker Compose monte ce chemin.
DD_DOGSTATSD_ORIGIN_DETECTIONtrueActive la détection de conteneurs et le tagging pour les métriques de socket Unix.
DD_DOGSTATSD_NON_LOCAL_TRAFFICtrueEffectue une écoute des paquets DogStatsD issus d’autres conteneurs. Requis pour envoyer des métriques custom.
DD_AGENT_HOSTdd-agentLe nom du host de l’Agent dans Docker.
DD_AC_EXCLUDEredisExclut les checks redis Datadog (facultatif).
DD_CONTAINER_EXCLUDEtrueExclut 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 :

Exemple de dashboard analytique Tyk

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.