遥测功能

OpenTelemetry

  • OpenTelemetry Traces:所有服务都使用 OpenTelemetry 可用的仪器库进行仪表化。
  • OpenTelemetry Metrics:部分服务已使用 OpenTelemetry 可用的仪器库进行仪表化。随着相关 SDK 的发布,将添加更多。
  • OpenTelemetry Logs:部分服务已使用 OpenTelemetry 可用的仪器库进行仪表化。随着相关 SDK 的发布,将添加更多。
  • OpenTelemetry Collector:所有服务都已进行仪表化,并通过 gRPC 将生成的跟踪和指标发送到 OpenTelemetry Collector。接收到的跟踪随后导出到日志和 Jaeger;接收到的指标和示例导出到日志和 Prometheus。

可观测性解决方案

  • Grafana:所有指标仪表板都存储在 Grafana 中。
  • Jaeger:所有生成的跟踪都发送到 Jaeger。
  • OpenSearch:所有生成的日志都发送到 Data Prepper。OpenSearch 将用于集中来自服务的日志数据。
  • Prometheus:所有生成的指标和示例都由 Prometheus 抓取。

环境

  • Docker:可以使用 Docker 执行此分叉的示例。
  • Kubernetes:该应用程序设计用于在 Kubernetes 上运行(本地和云端),使用 Helm chart。

协议

  • gRPC:微服务使用大量 gRPC 调用进行相互通信。
  • HTTP:微服务在 gRPC 不可用或支持不佳的地方使用 HTTP。

其他组件

  • Envoy:Envoy 用作面向用户的前端、负载生成器和功能标志服务的反向代理。
  • Locust:一个后台作业,使用合成负载生成器在网站上创建真实的用法模式。
  • OpenFeature:一个功能标志 API 和 SDK,允许在应用程序中启用和禁用功能。
  • flagd:一个功能标志守护进程,用于管理演示应用程序中的功能标志。
  • llm:一个模拟的大型语言模型 (LLM),它遵循 OpenAI 的 Chat Completions API 格式,并回答有关产品的问题。