Note
Load generator revert: This release restores the Locust-based load generator used prior to 3.0.0, replacing the
k6-based generator introduced in 3.0.0 due to a dependency licensing issue. The loadGeneratorTraffic and loadGeneratorVUs feature flags no longer exist; see the load generator README for the current configuration
options (#3873).
Breaking changes
currency: Bumpopentelemetry-cppto 1.28.0 and migrate the RPC span attributes it deprecates to the current semantic conventions (#3967)
rpc.systemis replaced byrpc.system.name,rpc.serviceis folded into a
fully-qualifiedrpc.method(for exampleoteldemo.CurrencyService/Convert),
and the integerrpc.grpc.status_codeis replaced by the string
rpc.response.status_code.
Enhancements
agent: Add aiSlowResponse and aiRunawayAgent feature flags to simulate LLM latency degradation and a runaway/looping agent (#3933)cart: Report health to the demo's OpAMP server when running with the observability stack (#3656)chatbot: Report health to the demo's OpAMP server when running with the agentic and observability stacks (#3808)checkout, product-catalog: Enable Go SDK self-observability metrics. (#3936)checkout, product-catalog: Bumpgo.opentelemetry.io/contribto the v1.46.0/v0.71.0 release line, picking up otelgrpc recordingerror.typeon RPC duration metrics for failed calls (#3901)collector: Add a data redaction/deletion example: delete, hash, and partially mask sensitive attributes with the transform processor, plus a documented redaction-processor fallback (#3662)collector: Gate raw PII emission (user.email,demo.payment.card_number,demo.payment.card_cvv) behind the newemitRawPiifeature flag (off by default) in checkout/payment, and layer the purpose-builtredactionprocessor alongsidetransform/redact_sensitive_dataas a key-name safety net (#3867)docker: Add environment terms tocompose.yamlto allow OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION to be overridden by .env.override. (#3961)flagd-ui: Add a scheduler that periodically activates randomly picked feature flags for a random duration, so failure scenarios appear and disappear on their own without external tooling (#2375)
Configurable interval, minimum and maximum hold duration, how many flags run
at once, per variant flag selection, and an optional seed for reproducible
patterns.grafana: Show service names in the event volume table. (#3937)grafana: Add SDK processor throughput panels to the self-observability dashboard. (#3935)load-generator: Revert #3564: replace k6 with the pre-k6 Locust-based load generator, removing the now-unusedloadGeneratorTrafficandloadGeneratorVUsfeature flags along with it (#3873)payment: Adderror.typeattribute to error spans incharge.jsandindex.jsto align with OpenTelemetry Semantic Conventions for errors (#3758)product-catalog: Add productCatalogLockContention flag to simulate database lock contention (#3930)product-catalog: Report health to the demo's OpAMP server when running with the observability stack. (#3807)python: Enable SDK self-observability metrics for the agent, chatbot, load-generator, MCP, and recommendation services (#3932)repo: Manage the changelog with per-PR.chloggenfragment files (chloggen) instead of hand-editing the sharedCHANGELOG.mdUnreleased section, eliminating changelog merge conflicts (#3926)
Contributors now runmake chlog-newto add a fragment; fragments are folded
into CHANGELOG.md at release time withmake chlog-update VERSION=x.x.x. See
CONTRIBUTING.md for the workflow.
Bug fixes
-
checkout: Bound order confirmation email requests so an unavailable email service cannot block orders until the caller deadline. (#3879) -
checkout: Fix synchronous srv.Serve call blocking signal handler registration, enabling graceful SIGTERM shutdown and preventing OpenTelemetry telemetry drops. (#3865) -
payment: Fix gRPC server not starting by callingserver.start()afterbindAsnc()(#3844)
The server bound to the port but was never started to accept connections,
causing the service to fail its health checks. -
podman: This work updates all dockerfiles to make them compatible with podman build (#3880)
Podman's buildah is stricter compared to Dockers buildkit. For example using EXPOSE
in Dockerfiles without specifying a ARG will work fine in Docker but in Podman this fails. -
recommendation: Align the recommendation request metric unit with its telemetry schema. (#3615)
Change the emitteddemo.recommendation.requestsunit from
recommendationsto{recommendation}. -
react-native-app: FixSessionGateway.setSessionValueto awaitgetSession(), preventing stored session corruption and loss ofuserId(#3765) -
react-native-app: Catch errors fromplaceOrderin the Cart screen and show an error toast so payment failures are visible to the user instead of being silently dropped (#3760) -
react-native-app: Render missingCityandStateinput fields inCheckoutForm(#3754) -
shipping: Fix floating-point truncation increate_quote_from_floatand add two-digit zero padding tofmt::Display for Quote(#3877)
New Contributors
- @Adii-45 made their first contribution in #3662
- @1265433359-hash made their first contribution in #3958
- @oleksandr-zhyhalo made their first contribution in #3964
- @TobiTomson made their first contribution in #3868
- @ywwg made their first contribution in #3961
Full Changelog: 3.0.0...3.1.0