Características de telemetría

OpenTelemetry

  • Trazas de OpenTelemetry: todos los servicios están instrumentados usando las bibliotecas de instrumentación disponibles de OpenTelemetry.
  • Métricas de OpenTelemetry: servicios seleccionados están instrumentados usando las bibliotecas de instrumentación disponibles de OpenTelemetry. Se añadirán más a medida que se publiquen los SDKs relevantes.
  • Logs de OpenTelemetry: servicios seleccionados están instrumentados usando las bibliotecas de instrumentación disponibles de OpenTelemetry. Se añadirán más a medida que se publiquen los SDKs relevantes.
  • OpenTelemetry Collector: todos los servicios están instrumentados y envían las trazas y métricas generadas al OpenTelemetry Collector vía gRPC. Las trazas recibidas se exportan a los logs y a Jaeger; las métricas y exemplars recibidos se exportan a logs y Prometheus.

Soluciones de observabilidad

  • Grafana: todos los dashboards de métricas se almacenan en Grafana.
  • Jaeger: todas las trazas generadas se envían a Jaeger.
  • OpenSearch: todos los logs generados se envían a Data Prepper. OpenSearch se utiliza para centralizar los datos de logging de los servicios.
  • Prometheus: todas las métricas y exemplars generados son recolectados por Prometheus.

Entornos

  • Docker: este ejemplo puede ejecutarse con Docker.
  • Kubernetes: la aplicación está diseñada para ejecutarse en Kubernetes (tanto localmente como en la nube) usando un chart de Helm.

Protocolos

  • gRPC: los microservicios utilizan un alto volumen de llamadas gRPC para comunicarse entre sí.
  • HTTP: los microservicios utilizan HTTP donde gRPC no está disponible o no está bien soportado.

Otros componentes

  • Envoy: Envoy se utiliza como proxy inverso para las interfaces web orientadas al usuario, como el frontend, el generador de carga y el servicio de feature flags.
  • Locust: un trabajo en segundo plano que crea patrones de uso realistas en el sitio web usando un generador de carga sintético.
  • OpenFeature: una API y SDK de feature flagging que permite habilitar y deshabilitar características en la aplicación.
  • flagd: un daemon de feature flagging que se utiliza para gestionar feature flags en la aplicación de demostración.
  • llm: un Large Language Model (LLM) simulado que sigue el formato de la API de Chat Completions de OpenAI y responde preguntas sobre un producto.