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 DD | Valor | Descripció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_ENV | tyk-demo-env | Define 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_ENABLED | true | Habilita la recopilación de logs para el Datadog Agent. |
DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL | true | Recopila logs de los contenedores. |
DD_DOGSTATSD_SOCKET | /var/run/docker.sock | Ruta al socket Unix a escuchar. Docker Compose crea esta ruta. |
DD_DOGSTATSD_ORIGIN_DETECTION | true | Activa la detección de contenedores y el etiquetado para métricas de socket Unix. |
DD_DOGSTATSD_NON_LOCAL_TRAFFIC | true | Escucha los paquetes DogStatsD de otros contenedores. (Necesario para enviar métricas personalizadas). |
DD_AGENT_HOST | dd-Agent | Nombre del host del Agent en Docker. |
DD_AC_EXCLUDE | redis | Excluye checks de Redis en Datadog. (opcional) |
DD_CONTAINER_EXCLUDE | true | Excluye 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:
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.