Tyk

Supported OS

Información general

Datadog puede recopilar y mostrar errores, tiempo de respuesta, duración, latencia, así como monitorizar el rendimiento del tráfico de API en Tyk para descubrir problemas en tus API o consumidores.

Tyk tiene una integración Datadog incorporada que recopila métricas de la pasarela API de Tyk.

La pasarela API de Tyk registra todo el tráfico que procesa. Luego, envía esa información a Datadog y crea dashboards en torno a ella.

Cómo funciona

La bomba Tyk escribe métricas de aplicaciones personalizadas y las envía a Datadog enviándolas a DogStatsD, un servicio de agregación de métricas incluido en el Datadog Agent. DogStatsD implementa el protocolo StatsD, que añade algunas extensiones específicas de Datadog, incluido el tipo de métrica Histogram, utilizado por Tyk-gateway.

Tyk-gateway utiliza Tyk-pump para enviar los análisis que ha generado a Datadog.

Cuando se ejecuta el Datadog Agent, DogStatsD obtiene una métrica request_time de Tyk-pump en tiempo real, por solicitud, para que puedas comprender el uso de tus API y obtener la flexibilidad de agregar según varios parámetros como fecha, versión, código devuelto, método, etc.

La métrica personalizada que Tyk está utilizando es de tipo DD_HISTOGRAM_AGGREGATES.

Configuración

La integración Tyk está incluida en el paquete tyk-pump, por lo que sólo tienes que realizar la configuración en pump.conf (y no es necesario instalar nada en tu plataforma Tyk).

Instalación

Instalación

Para esta integración necesitas tener una instalación Tyk en ejecución. Puedes instalar Tyk autogestionado o Tyk OSS. Ambas opciones incluyen tyk-pump.

Instalación del Datadog Agent

Instala el Datadog Agent en tu entorno.

Ejecuta el Datadog Agent en tu clúster K8s, como un contenedor Docker, en tu Mac o de cualquier forma, siempre que Tyk pump pueda acceder a él.

Para entornos contenedorizados, consulta las plantillas de la integración Autodiscovery para obtener más información. Para verificar que los cambios se han aplicado, ejecuta los subcomandos de estado del Agent.

Configuración

Bomba-Tyk

Para configurar una bomba Datadog, sigue las instrucciones de la sección DogStatsD del LÉEME de la bomba.

El siguiente es un ejemplo de configuración de una bomba de Datadog en 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"
        ]
      }
    },

Este ejemplo se ha tomado del proyecto Tyk-demo, un proyecto de código abierto que pone en marcha una plataforma Tyk completa con un solo comando y ofrece ejemplos listos para utilizar, incluido el ejemplo de Datadog. Para ejecutar esta integración, utiliza up.sh analytics-datadog.

Configuración del Datadog Agent

La integración Tyk utiliza DogStatsD. Se trata de un servicio de agregación de métricas incluido con el Datadog Agent. DogStatsD implementa el protocolo StatsD y añade algunas extensiones específicas de Datadog. Tyk utiliza Histogram metric type.

Configura las siguientes variables de entorno de Datadog y DogStatsD en tu entorno:

Variable de entorno DDValorDescripción
DD_API_KEY{tu_clave_de_api_datadog}Para que el Datadog Agent se conecte con el portal DD. Tu clave API se encuentra en Configuración de la cuenta.
DD_ENVtyk-demo-envDefine el nombre del entorno.
DD_DOGSTATSD_TAGS“env:tyk-demo”Etiquetas (tags) adicionales para añadir a todas las métricas, eventos y checks de servicio recibidos por este servidor DogStatsD.
DD_LOGS_ENABLEDtrueHabilita la recopilación de logs para el Datadog Agent.
DD_LOGS_CONFIG_CONTAINER_COLLECT_ALLtrueRecopila logs de los contenedores.
DD_DOGSTATSD_SOCKET/var/run/docker.sockRuta al socket Unix a escuchar. Docker Compose crea esta ruta.
DD_DOGSTATSD_ORIGIN_DETECTIONtrueActiva la detección de contenedores y el etiquetado para métricas de socket Unix.
DD_DOGSTATSD_NON_LOCAL_TRAFFICtrueEscucha los paquetes DogStatsD de otros contenedores. (Necesario para enviar métricas personalizadas).
DD_AGENT_HOSTdd-AgentNombre del host del Agent en Docker.
DD_AC_EXCLUDEredisExcluye checks de Redis en Datadog. (opcional)
DD_CONTAINER_EXCLUDEtrueExcluye checks de Docker del Datadog Agent.

Después de configurar las variables de entorno enumeradas anteriormente, configura el Agent con DogStatsD.

Reinicia el Agent después de la configuración.

Validación

Crea un dashboard o importa la muestra y añade un widget. En la sección Graph your data (Haz gráficos de tus datos), en la opción métrica, empieza a escribir el espacio de nombres que elegiste para la bomba en la configuración pump.conf endogstatsd.namespace.

En el ejemplo anterior, es tyk. Una vez que empieces a escribir, se mostrarán todas las métricas disponibles.

Datos recopilados

Métricas

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

Con Datadog, puedes crear dashboards que muestren estadísticas sobre tus servicios API y su consumo.

El siguiente es un ejemplo de este tipo de dashboard:

Tyk Analytics dashboard example

Nota: Puedes importar el dashboard anterior y utilizarlo como ejemplo o referencia para tu propio dashboard.

Eventos

La integración Tyk no incluye eventos.

Checks de servicio

La integración Tyk no incluye checks de servicio.

Solucionar problemas

¿Necesitas ayuda? Ponte en contacto con el servicio de asistencia de Datadog.