Skip to content

Commit

Permalink
Merge branch 'featbit:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
deleteLater authored Feb 5, 2024
2 parents 519b12d + fe20d9b commit 44d2807
Show file tree
Hide file tree
Showing 33 changed files with 756 additions and 127 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,6 @@ benchmark/k6-scripts/test-results/
.vs/
/.vs/VSWorkspaceState.json
/.vs/featbit/v17/.wsuo

#Ignore dev logs
.logs/
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ Email us at [[email protected]](mailto:[email protected]) if Slack isn't your

FeatBit offers a range of features including:

- **[SDKs](https://docs.featbit.co/sdk/overview)** for [**JavaScript**](https://github.com/featbit/featbit-js-client-sdk), [**C#**](https://github.com/featbit/dotnet-server-sdk), [**Java**](https://github.com/featbit/featbit-java-sdk), [**Python**](https://github.com/featbit/featbit-python-sdk), and [**Go**](https://github.com/featbit/featbit-go-sdk), with more to come.
- **[SDKs](https://docs.featbit.co/sdk/overview)** for [**.NET(C#)**](https://github.com/featbit/dotnet-server-sdk), [**JavaScript**](https://github.com/featbit/featbit-js-client-sdk), [**NodeJs**](https://github.com/featbit/featbit-node-server-sdk), [**Java**](https://github.com/featbit/featbit-java-sdk), [**Python**](https://github.com/featbit/featbit-python-sdk), [**Go**](https://github.com/featbit/featbit-go-sdk), and [**OpenFeature Providers**](https://docs.featbit.co/sdk/overview#openfeature-providers), with more to come.

- **[Managing Feature flags](https://docs.featbit.co/feature-flags/organizing-flags/the-flags-list)**: Create, manage, and filter feature flags.

Expand Down
65 changes: 65 additions & 0 deletions docker/composes/docker-compose-otel-collector-contrib.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
name: featbit-otel-collector
version: "3"
services:
otel-collector:
image: otel/opentelemetry-collector-contrib
container_name: otel-collector
volumes:
- ./infra/otel/otel-collector-config.yml:/etc/otelcol-contrib/config.yaml
- ./.logs/otel:/otel:rw
ports:
- 1888:1888 # pprof extension
- 8888:8888 # Prometheus metrics exposed by the Collector
- 8889:8889 # Prometheus exporter metrics
- 13133:13133 # health_check extension
- 4317:4317 # OTLP gRPC receiver
- 4318:4318 # OTLP http receiver
- 55679:55679 # zpages extension
networks:
- featbit-network
depends_on:
jaeger:
condition: service_started
prometheus:
condition: service_started
seq:
condition: service_started
jaeger:
image: jaegertracing/all-in-one:1.46.0
container_name: jaeger
environment:
- COLLECTOR_OTLP_ENABLED=true
networks:
- featbit-network
ports:
- "16686:16686" # Jaeger Web UI
# - "14317" # trace port
# - "14268"
- "14250"

prometheus:
image: prom/prometheus:v2.42.0
container_name: prometheus
volumes:
- ./infra/otel/prometheus.yml:/etc/prometheus/prometheus.yml
networks:
- featbit-network
ports:
- "9090:9090"
seq:
image: datalust/seq:latest
container_name: seq
networks:
- featbit-network
ports:
- 8082:80
- 5341:5341
environment:
- ACCEPT_EULA=Y
networks:
featbit-network:
name: featbit-network
driver: bridge
ipam:
config:
- subnet: 172.10.0.0/16
126 changes: 126 additions & 0 deletions docker/composes/docker-compose-otel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
name: featbit-otel
version: "3"
services:
ui:
image: featbit/ui:dev
container_name: ui
build:
context: ./modules/front-end
dockerfile: ./Dockerfile
environment:
- API_URL=http://localhost:5000
- DEMO_URL=http://localhost:5173
- EVALUATION_URL=http://localhost:5100
depends_on:
- api-server
- demo-dino-game-vue
ports:
- "8081:80"
networks:
- featbit-network

api-server:
image: featbit/api:dev
container_name: api
build:
context: ./modules/back-end
dockerfile: ./deploy/Dockerfile
environment:
- SSOEnabled=true
env_file:
- ./infra/otel/env/otel-api.env
depends_on:
- mongodb
- redis
- da-server
ports:
- "5000:5000"
networks:
- featbit-network

evaluation-server:
image: featbit/evaluation-server:dev
container_name: evaluation-server
build:
context: ./modules/evaluation-server
dockerfile: ./deploy/Dockerfile
depends_on:
- mongodb
- redis
env_file:
- ./infra/otel/env/otel-els.env
ports:
- "5100:5100"
networks:
- featbit-network

da-server:
image: featbit/data-analytics-server:dev
container_name: data-analytics-server
build:
context: ./modules/data-analytics
dockerfile: ./Dockerfile
depends_on:
- mongodb
- redis
ports:
- "8200:80"
networks:
- featbit-network
environment:
REDIS_HOST: redis
REDIS_PORT: 6379
MONGO_URI: mongodb://admin:password@mongodb:27017
MONGO_INITDB_DATABASE: featbit
MONGO_HOST: mongodb
env_file:
- ./infra/otel/env/otel-das.env

mongodb:
image: mongo:5.0.14
container_name: mongodb
restart: on-failure
ports:
- "27017:27017"
environment:
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=password
- MONGO_INITDB_DATABASE=featbit
volumes:
- mongodb:/data/db
- ./infra/mongodb/docker-entrypoint-initdb.d/:/docker-entrypoint-initdb.d/
networks:
- featbit-network

redis:
image: bitnami/redis:6.2.10
container_name: redis
restart: on-failure
environment:
- ALLOW_EMPTY_PASSWORD=yes
networks:
- featbit-network
ports:
- "6379:6379"
volumes:
- redis:/bitnami/redis/data

demo-dino-game-vue:
image: featbit/demo-dino-game-vue:latest
container_name: demo-dino-game-vue
networks:
- featbit-network
ports:
- "5173:80"

networks:
featbit-network:
name: featbit-network
driver: bridge
ipam:
config:
- subnet: 172.1.0.0/16

volumes:
mongodb:
redis:
24 changes: 24 additions & 0 deletions infra/otel/env/otel-api.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
ENABLE_OPENTELEMETRY=true

# OpenTelemetry .NET Automatic Instrumentation
CORECLR_ENABLE_PROFILING="1"
CORECLR_PROFILER='{918728DD-259F-4A6A-AC2B-B85E1B658318}'
CORECLR_PROFILER_PATH="/app/linux-x64/OpenTelemetry.AutoInstrumentation.Native.so"
DOTNET_ADDITIONAL_DEPS="/app/AdditionalDeps"
DOTNET_SHARED_STORE="/app/store"
DOTNET_STARTUP_HOOKS="/app/net/OpenTelemetry.AutoInstrumentation.StartupHook.dll"
OTEL_DOTNET_AUTO_HOME="/app"
# Uncomment the following lines to enable verbose logging of OpenTelemetry itself
# OTEL_LOG_LEVEL="debug"
# COREHOST_TRACE=1
# COREHOST_TRACEFILE=corehost_verbose_tracing.log

OTEL_SERVICE_NAME=featbit-api
OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318
OTEL_EXPORTER_OTLP_ENDPOINT_GRPC=http://otel-collector:4317
OTEL_EXPORTER_OTLP_ENDPOINT_HTTP=http://otel-collector:4318
OTEL_DOTNET_AUTO_LOGS_CONSOLE_EXPORTER_ENABLED="true"
OTEL_DOTNET_AUTO_METRICS_CONSOLE_EXPORTER_ENABLED="true"
OTEL_DOTNET_AUTO_TRACES_CONSOLE_EXPORTER_ENABLED="true"
OTEL_DOTNET_AUTO_TRACES_ADDITIONAL_SOURCES="Api"
OTEL_DOTNET_AUTO_METRICS_ADDITIONAL_SOURCES="Api"
15 changes: 15 additions & 0 deletions infra/otel/env/otel-das.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
ENABLE_OPENTELEMETRY=true

OTEL_SERVICE_NAME=featbit-das
OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317

OTEL_EXPORTER_OTLP_INSECURE=true

OTEL_TRACES_EXPORTER=otlp
OTEL_METRICS_EXPORTER=otlp
OTEL_LOGS_EXPORTER=otlp

OTEL_PYTHON_LOG_CORRELATION=true
OTEL_PYTHON_LOG_FORMAT="%(msg)s [span_id=%(span_id)s]"
OTEL_PYTHON_LOG_LEVEL=debug
OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED=true
24 changes: 24 additions & 0 deletions infra/otel/env/otel-els.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
ENABLE_OPENTELEMETRY=true

# OpenTelemetry .NET Automatic Instrumentation
CORECLR_ENABLE_PROFILING="1"
CORECLR_PROFILER='{918728DD-259F-4A6A-AC2B-B85E1B658318}'
CORECLR_PROFILER_PATH="/app/linux-x64/OpenTelemetry.AutoInstrumentation.Native.so"
DOTNET_ADDITIONAL_DEPS="/app/AdditionalDeps"
DOTNET_SHARED_STORE="/app/store"
DOTNET_STARTUP_HOOKS="/app/net/OpenTelemetry.AutoInstrumentation.StartupHook.dll"
OTEL_DOTNET_AUTO_HOME="/app"
# Uncomment the following lines to enable verbose logging of OpenTelemetry itself
# OTEL_LOG_LEVEL="debug"
# COREHOST_TRACE=1
# COREHOST_TRACEFILE=corehost_verbose_tracing.log

OTEL_SERVICE_NAME=featbit-els
OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318
OTEL_EXPORTER_OTLP_ENDPOINT_GRPC=http://otel-collector:4317
OTEL_EXPORTER_OTLP_ENDPOINT_HTTP=http://otel-collector:4318
OTEL_DOTNET_AUTO_LOGS_CONSOLE_EXPORTER_ENABLED="true"
OTEL_DOTNET_AUTO_METRICS_CONSOLE_EXPORTER_ENABLED="true"
OTEL_DOTNET_AUTO_TRACES_CONSOLE_EXPORTER_ENABLED="true"
OTEL_DOTNET_AUTO_TRACES_ADDITIONAL_SOURCES="Api"
OTEL_DOTNET_AUTO_METRICS_ADDITIONAL_SOURCES="Api"
Loading

0 comments on commit 44d2807

Please sign in to comment.