La OpenTelemetry Demo es una aplicación de demostración de microservicios desarrollada por la comunidad para demostrar la instrumentación de OpenTelemetry (OTel)
y sus capacidades de observabilidad. Se trata de una página web de comercio electrónico compuesto por múltiples microservicios que se comunican entre sí a través de HTTP y gRPC. Todos los servicios están instrumentados con OpenTelemetry y producen trazas, métricas y logs.
Esta página te guiará a través de los pasos necesarios para desplegar la OpenTelemetry Demo y enviar sus datos a Datadog.
Puedes desplegar la demostración con Docker o Kubernetes (con Helm). Elige el método de despliegue que prefieras y asegúrate de tener instaladas las herramientas necesarias:
services:otelcol:command:- "--config=/etc/otelcol-config.yml"- "--config=/etc/otelcol-config-extras.yml"- "--feature-gates=exporter.datadogexporter.UseLogsAgentExporter"environment:- DD_SITE_PARAMETER=<Your API Site>- DD_API_KEY=<Your API Key>
Para configurar el OpenTelemetry Collector, abre src/otelcollector/otelcol-config-extras.yml y añade lo siguiente al archivo:
Por defecto, el Collector de la aplicación de demostración fusiona la configuración de dos archivos:
src/otelcollector/otelcol-config.yml: contiene la configuración por defecto para el Collector.
src/otelcollector/otelcol-config-extras.yml: utilizado para añadir más configuración al Collector.
When merging YAML values, objects are merged and arrays are replaced.
That's why there are more components specified in the pipelines than actually configured.
The previous configuration does not replace the values configured in the main otelcol-config file.
Crea un secreto llamado dd-secrets para almacenar los secretos del sitio de Datadog y la clave de API:
kubectl create secret generic dd-secrets --from-literal="DD_SITE_PARAMETER=<Your API Site>" --from-literal="DD_API_KEY=<Your API Key>"
Añade el Helm chart de OpenTelemetry a tu repositorio para gestionar y desplegar la OpenTelemetry Demo:
When merging YAML values, objects are merged and arrays are replaced.
That's why there are more components specified in the pipelines than actually configured.
The previous configuration does not replace the values configured in the main otelcol-config file.
Cuando se ejecuta OTel Demo, el generador de carga incorporado simula el tráfico en la aplicación.
Al cabo de un par de segundos puedes ver los datos que llegan a Datadog.
Selecciona Map (Mapa) para ver cómo están conectados los servicios. Cambia la Map layout (Disposición del mapa) a Cluster (Clúster) o Flow (Flujo) para ver el mapa en distintos modos.
Selecciona la vista List (Lista) y, a continuación, selecciona un servicio para ver un resumen del rendimiento en el panel lateral.
Desde Performance > Setup Guidance (Rendimiento > Guía de configuración), haz clic en View traces (Ver trazas) para abrir el Trace Explorer, con el servicio seleccionado aplicado como filtro.
Selecciona un tramo (span) indexado para ver los detalles completos de traza de esta transacción.
Navega por las pestañas para ver detalles adicionales:
Métricas de infraestructura para los servicios que informan métricas de host.
Métricas de tiempo de ejecución para los servicios que ya se han implementado.
Datadog te permite filtrar y agrupar los datos de OpenTelemetry recibidos. Por ejemplo, para encontrar todas las transacciones de un usuario específico, puedes utilizar Consultas de traza.
La OTel Demo envía user.id como etiquetas de tramo, por lo que puedes utilizarlo para filtrar todas las transacciones activadas por el usuario:
Desde Info (Información) en el panel lateral, pasa el ratón por encima de la línea con el ID de usuario, haz clic en el icono de engranaje y selecciona filter by @app.user.id: (filtrar por @app.user.id:).
Elimina cualquier filtro anterior, dejando solo @app.user.id aplicado para ver todas las transacciones que contengan tramos con el ID de usuario especificado.
La OpenTelemetry Demo incluye flagd, un motor de evaluación de indicadores de características para simular escenarios de error.
Abre el archivo src/flagd/demo.flagd.json y establece defaultVariant en on para uno de los casos. Consulta la documentación de OpenTelemetry Demo para ver los casos disponibles.
Cuando la demostración empiece a producir errores, podrás visualizar y localizar los servicios afectados en Datadog.