功能标志
该演示提供了几个功能标志,您可以使用它们来模拟不同的场景。这些标志由 flagd 管理,这是一个支持 OpenFeature 的简单功能标志服务。
运行演示时,可以通过 https://:8080/feature 提供的用户界面更改标志值。通过此用户界面更改的值将在 flagd 服务中得到反映。
通过用户界面更改功能标志时,有两种选择:
基本视图:一个用户友好的视图,其中可以为每个功能标志选择并保存默认变体(与通过原始文件配置时需要更改的选项相同)。目前,基本视图不支持分段定位。
高级视图:一个视图,其中加载原始配置文件 JSON 文件,并可以在浏览器中进行编辑。该视图提供了编辑原始 JSON 文件带来的灵活性,但同时也提供了模式检查,以确保 JSON 有效且提供的配置值正确。
已实现的功能标志
| 功能标志 | 服务 | 描述 |
|---|---|---|
adServiceFailure | 广告 | 大约 1/10 的时间为 GetAds 生成错误 |
adServiceManualGc | 广告 | 触发广告服务中的完整手动垃圾回收 |
adServiceHighCpu | 广告 | 在广告服务中触发高 CPU 负载。如果要演示 CPU 限制,请设置 CPU 资源限制 |
cartServiceFailure | 购物车 | 在每次调用 EmptyCart 时生成一个错误 |
emailMemoryLeak | 电子邮件 | 模拟 email 服务中的内存泄漏。 |
llmInaccurateResponse | LLM | 模拟的 LLM 服务为产品 ID L9ECAV7KIM 返回了不准确的产品评论摘要。 |
llmRateLimitError | LLM | 模拟的 LLM 服务间歇性地返回带有 HTTP 状态码 429 的 RateLimitError。 |
productCatalogFailure | 产品目录 | 为产品 ID:OLJCESPC7Z 的 GetProduct 请求生成错误 |
recommendationServiceCacheFailure | 推荐 | 由于指数级增长的缓存而导致内存泄漏。1.4 倍增长,50% 的请求触发增长。 |
paymentServiceFailure | 支付 | 调用 charge 方法时生成错误。 |
paymentServiceUnreachable | 结账 | 调用 PaymentService 时使用错误的地址,使其看起来 PaymentService 不可用。 |
loadgeneratorFloodHomepage | 负载生成器 | 开始以大量的请求淹没主页,可以通过更改 flagd JSON 来配置状态。 |
kafkaQueueProblems | Kafka | 使 Kafka 队列过载,同时引入消费者延迟,导致滞后峰值。 |
imageSlowLoad | 前端 | 利用 envoy 故障注入,导致前端产品图像加载延迟。 |
引导式调试场景
recommendationServiceCacheFailure 场景有一个 专用演练文档,以帮助理解如何使用 OpenTelemetry 调试内存泄漏。
功能标志架构
有关 flagd 工作原理的更多信息,请参阅 flagd 文档,有关 OpenFeature 工作原理的更多信息,请访问 OpenFeature 网站,以及 OpenFeature API 的文档。