Kong

Supported OS Linux Mac OS Windows

Présentation

Le check Kong de l’Agent surveille le nombre total de requêtes, les codes de réponse, les connexions client et bien plus encore.

Configuration

Installation

Le check Kong est inclus avec le package de l’Agent Datadog : vous n’avez donc rien d’autre à installer sur vos serveurs Kong.

Configuration

Host

Pour configurer ce check lorsque l’Agent est exécuté sur un host :

Collecte de métriques
  1. Ajoutez le bloc de configuration suivant à votre fichier kong.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent pour commencer à recueillir vos métriques Kong. Consultez le fichier d’exemple kong.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

    init_config:
    
    instances:
      ## @param kong_status_url - string - required
      ## URL where Kong exposes its status.
      #
      - kong_status_url: http://localhost:8001/status/
    

    Avec l’Agent 7+, il est également possible d’utiliser une implémentation plus moderne :

    init_config:
    
    instances:
      ## @param openmetrics_endpoint - string - required
      ## The URL exposing metrics in the OpenMetrics format.
      #
      - openmetrics_endpoint: http://localhost:8001/metrics
    
  2. Redémarrez l’Agent.

Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

Les logs d’accès Kong sont générés par NGINX. L’emplacement par défaut est donc identique à celui des fichiers NGINX.

  1. La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans datadog.yaml :

    logs_enabled: true
    
  2. Ajoutez ce bloc de configuration à votre fichier kong.d/conf.yaml pour commencer à recueillir vos logs Kong :

    logs:
      - type: file
        path: /var/log/nginx/access.log
        service: '<SERVICE>'
        source: kong
    
      - type: file
        path: /var/log/nginx/error.log
        service: '<SERVICE>'
        source: kong
    

    Modifiez les valeurs des paramètres path et service et configurez-les pour votre environnement. Consultez le fichier d’exemple kong.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

  3. Redémarrez l’Agent.

Environnement conteneurisé

Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer les paramètres ci-dessous à un environnement conteneurisé.

Collecte de métriques
ParamètreValeur
<NOM_INTÉGRATION>kong
<CONFIG_INIT>vide ou {}
<CONFIG_INSTANCE>{"kong_status_url": "http://%%host%%:8001/status/"}
Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

La collecte des logs est désactivée par défaut dans l’Agent Datadog. Pour l’activer, consultez la section Collecte de logs avec Kubernetes.

ParamètreValeur
<CONFIG_LOG>{"source": "kong", "service": "<NOM_SERVICE>"}

Validation

Lancez la sous-commande de statut de l’Agent et cherchez kong dans la section Checks.

Données collectées

Métriques

kong.bandwidth.bytes.count
(count)
[OpenMetrics V2] (Kong v3+) The total bandwidth in bytes consumed per service/route in Kong
Shown as byte
kong.bandwidth.count
(count)
[OpenMetrics V2] (Kong < 3) The total bandwidth in bytes consumed per service/route in Kong
Shown as byte
kong.connections_accepted
(gauge)
[Legacy] Total number of accepted client connections.
Shown as connection
kong.connections_active
(gauge)
[Legacy] Current number of active client connections including Waiting connections.
Shown as connection
kong.connections_handled
(gauge)
[Legacy] Total number of handled connections. (Same as accepts unless resource limits were reached).
Shown as connection
kong.connections_reading
(gauge)
[Legacy] Current number of connections where Kong is reading the request header.
Shown as connection
kong.connections_waiting
(gauge)
[Legacy] Current number of idle client connections waiting for a request.
Shown as connection
kong.connections_writing
(gauge)
[Legacy] Current number of connections where nginx is writing the response back to the client.
Shown as connection
kong.http.consumer.status.count
(count)
[OpenMetrics V2] (Kong < 3) HTTP status codes for customer per service/route in Kong
Shown as request
kong.http.requests.count
(count)
[OpenMetrics V2] (Kong v3+) Http Status codes per service/route in Kong
Shown as request
kong.http.status
(count)
[OpenMetrics V2] (Kong < 3) HTTP status codes per service/route in Kong
Shown as request
kong.kong.latency.ms.bucket
(count)
[OpenMetrics V2] (Kong v3+) The latency of Kong specificially
Shown as millisecond
kong.kong.latency.ms.count
(count)
[OpenMetrics V2] (Kong v3+) The latency of Kong specifically
Shown as millisecond
kong.kong.latency.ms.sum
(count)
[OpenMetrics V2] (Kong v3+) The latency of Kong specifically
Shown as millisecond
kong.latency.bucket
(count)
[OpenMetrics V2] (Kong < 3) The latency added by Kong, total request time and upstream latency for each service/route in Kong
Shown as millisecond
kong.latency.count
(count)
[OpenMetrics V2] (Kong < 3) The latency added by Kong, total request time and upstream latency for each service/route in Kong
Shown as millisecond
kong.latency.sum
(count)
[OpenMetrics V2] (Kong < 3) The latency added by Kong, total request time and upstream latency for each service/route in Kong
Shown as millisecond
kong.memory.lua.shared_dict.bytes
(gauge)
[OpenMetrics V2] The allocated slabs in bytes in a shared_dict
Shown as byte
kong.memory.lua.shared_dict.total_bytes
(gauge)
[OpenMetrics V2] The total capacity in bytes of a shared_dict
Shown as byte
kong.memory.workers.lua.vms.bytes
(gauge)
[OpenMetrics V2] The allocated bytes in worker Lua VM
Shown as byte
kong.nginx.connections.total
(gauge)
[OpenMetrics V2] (Kong v3+) The number of HTTP and stream connections
Shown as connection
kong.nginx.http.current_connections
(gauge)
[OpenMetrics V2] (Kong < 3) The number of HTTP connections
Shown as connection
kong.nginx.requests.total
(gauge)
[OpenMetrics V2] (Kong v3+) The number of total Nginx connections
Shown as request
kong.nginx.stream.current_connections
(gauge)
[OpenMetrics V2] (Kong < 3) The number of stream connections
Shown as connection
kong.nginx.timers
(gauge)
[OpenMetrics v2] (Kong v2.8+) Total number of Nginx timers in Running or Pending state.
Shown as item
kong.request.latency.ms.bucket
(count)
[OpenMetrics V2] (Kong v3+) The latency added by Kong to requests
Shown as millisecond
kong.request.latency.ms.count
(count)
[OpenMetrics V2] (Kong v3+) The latency added by Kong to requests
Shown as millisecond
kong.request.latency.ms.sum
(count)
[OpenMetrics V2] (Kong v3+) The latency added by Kong to requests
Shown as millisecond
kong.session.duration.ms
(count)
[OpenMetrics V2] (Kong v3+) The duration of a Kong stream
Shown as millisecond
kong.stream.status.count
(count)
[OpenMetrics V2] The stream status codes per service/route in Kong
Shown as request
kong.total_requests
(gauge)
[Legacy] Total number of client requests.
Shown as request
kong.upstream.latency.ms.bucket
(count)
[OpenMetrics V2] (Kong v3+) The upstream latency added by Kong
Shown as millisecond
kong.upstream.latency.ms.count
(count)
[OpenMetrics V2] (Kong v3+) The upstream latency added by Kong
Shown as millisecond
kong.upstream.latency.ms.sum
(count)
[OpenMetrics V2] (Kong v3+) The upstream latency added by Kong
Shown as millisecond

Événements

Le check Kong n’inclut aucun événement.

Checks de service

kong.can_connect :
Renvoie CRITICAL si l’Agent ne parvient pas à se connecter à Kong pour recueillir des métriques. Si ce n’est pas le cas, renvoie OK.

Lorsque vous utilisez l’implémentation de l’Agent 7+ en définissant openmetrics_endpoint :

kong.openmetrics.health :
Renvoie CRITICAL si l’Agent ne parvient pas à se connecter à l’endpoint OpenMetrics. Si ce n’est pas le cas, renvoie OK.

kong.datastore.reachable :
Renvoie CRITICAL si Kong ne parvient pas à se connecter au datastore. Si ce n’est pas le cas, renvoie OK.

kong.upstream.target.health :
Renvoie CRITICAL lorsque la cible n’est pas saine. Si ce n’est pas le cas, renvoie OK.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.

Pour aller plus loin