diff --git a/.env b/.env index 185600390c..5f63239ee9 100644 --- a/.env +++ b/.env @@ -133,6 +133,7 @@ SHIPPING_DOCKERFILE=./src/shipping/Dockerfile # Flagd FLAGD_HOST=flagd FLAGD_PORT=8013 +FLAGD_OFREP_PORT=8016 # Flagd UI FLAGD_UI_HOST=flagd-ui diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ae0eb55b6..044fdbe551 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,9 @@ the release. * [quote] Updated open-telemetry/exporter-otlp to 1.2.1 which includes the fix for `IS_REMOTE` flag feature ([#2112](https://github.com/open-telemetry/opentelemetry-demo/pull/2112)) +* [load-generator] Change OpenFeature Evaluation to Remote Evaluation Protocol, + based on [this issue in OpenFeature/python-sdk-contrib](https://github.com/open-feature/python-sdk-contrib/issues/198) + ([#2114](https://github.com/open-telemetry/opentelemetry-demo/pull/2114)) ## 2.0.1 diff --git a/docker-compose.minimal.yml b/docker-compose.minimal.yml index a52755b0cc..b751a808f1 100644 --- a/docker-compose.minimal.yml +++ b/docker-compose.minimal.yml @@ -345,7 +345,7 @@ services: - PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python - LOCUST_WEB_HOST=0.0.0.0 - FLAGD_HOST - - FLAGD_PORT + - FLAGD_OFREP_PORT depends_on: frontend: condition: service_started @@ -522,7 +522,8 @@ services: "file:./etc/flagd/demo.flagd.json" ] ports: - - 8013 + - "${FLAGD_PORT}" + - "${FLAGD_OFREP_PORT}" volumes: - ./src/flagd:/etc/flagd logging: diff --git a/docker-compose.yml b/docker-compose.yml index 7013b1028f..d5ec0b79e6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -421,7 +421,7 @@ services: - PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python - LOCUST_WEB_HOST=0.0.0.0 - FLAGD_HOST - - FLAGD_PORT + - FLAGD_OFREP_PORT depends_on: frontend: condition: service_started @@ -608,7 +608,8 @@ services: "file:./etc/flagd/demo.flagd.json" ] ports: - - 8013 + - "${FLAGD_PORT}" + - "${FLAGD_OFREP_PORT}" volumes: - ./src/flagd:/etc/flagd logging: diff --git a/src/load-generator/locustfile.py b/src/load-generator/locustfile.py index 387ae5d152..4f86fe4b79 100644 --- a/src/load-generator/locustfile.py +++ b/src/load-generator/locustfile.py @@ -34,7 +34,7 @@ from opentelemetry.sdk.resources import Resource from openfeature import api -from openfeature.contrib.provider.flagd import FlagdProvider +from openfeature.contrib.provider.ofrep import OFREPProvider from openfeature.contrib.hook.opentelemetry import TracingHook from playwright.async_api import Route, Request @@ -69,7 +69,8 @@ logging.info("Instrumentation complete") # Initialize Flagd provider -api.set_provider(FlagdProvider(host=os.environ.get('FLAGD_HOST', 'flagd'), port=os.environ.get('FLAGD_PORT', 8013))) +base_url = f"http://{os.environ.get('FLAGD_HOST', 'localhost')}:{os.environ.get('FLAGD_OFREP_PORT', 8016)}" +api.set_provider(OFREPProvider(base_url=base_url)) api.add_hooks([TracingHook()]) def get_flagd_value(FlagName): diff --git a/src/load-generator/requirements.txt b/src/load-generator/requirements.txt index 18a6911ac9..81e773b20e 100644 --- a/src/load-generator/requirements.txt +++ b/src/load-generator/requirements.txt @@ -31,7 +31,7 @@ opentelemetry-sdk==1.30.0 opentelemetry-semantic-conventions==0.51b0 opentelemetry-util-http==0.51b0 openfeature-sdk==0.8.0 -openfeature-provider-flagd==0.1.5 +openfeature-provider-ofrep==0.1.1 openfeature-hooks-opentelemetry==0.2.0 protobuf==5.29.3 psutil==6.1.1