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 27, 2024
2 parents 44d2807 + 6dc8f8e commit 193bcd7
Show file tree
Hide file tree
Showing 38 changed files with 391 additions and 315 deletions.
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,7 @@ benchmark/k6-scripts/test-results/
/.vs/featbit/v17/.wsuo

#Ignore dev logs
.logs/
.logs/

#Ignore IntelliJ IDEA files
.idea/
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,11 @@ But of course, you can finish your contribution and create a PR without notifyin
- **Step 1** - [Fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks) this repository.
- **Step 2** - Clone the repository to your local machine.
- **Step 3** - Add the changes to your repository.
- **Step 4** - Create a PULL Request from forked project to FeatBit. We may ask for changes to be made before a PR can be merge.
- **Step 4** - Create a PULL Request from forked project to FeatBit. We may ask for changes to be made before a PR can be merged.
- **Step 5** - Congratulations 🎉🎉 Your PR is approved and Merged !!!
- **Step 6** - FeatBit team thanks you. You becomes one of the contributor of FeatBit 🎉🎉 .
- **Step 6** - FeatBit team thanks you. You become one of the contributors of FeatBit 🎉🎉 .

If the steps above isn't very clear, you can search ["GitHub Forks and Pull Requests" on Youtube](https://www.youtube.com/watch?v=a_FLqX3vGR4).
If the steps above aren't very clear, you can search ["GitHub Forks and Pull Requests" on Youtube](https://www.youtube.com/watch?v=a_FLqX3vGR4).


----------------------------------------------------
Expand Down
6 changes: 3 additions & 3 deletions Development.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ npm run start:zh // Chinese, available at localhost:4201
FeatBit should be available to everyone everywhere, and we don't want language to be a barrier. So for this reason we
have implemented internationalization features into our codebase.

FeatBit UI uses offical [@angular/localize
FeatBit UI uses official [@angular/localize
](https://www.npmjs.com/package/@angular/localize) package to implement the i18n, please read
the [official doc](https://angular.io/guide/i18n-overview) for how to use it. The language resource files are under *
*modules/front-end/src/locale** folder, with following format messages.xx.xlf, xx is the language code.
Expand All @@ -81,8 +81,8 @@ Currently only English and Chinese are available, we would be very grateful to h
too.

If you put a text in the UI, at the end of the developing work, you need to put its translations into the corresponding
resource file. This work could be very tedius, we created
a [library](https://github.com/featbit/angular-locales-generator) to faciliate the job, you need to run the command
resource file. This work could be very tedious, we created
a [library](https://github.com/featbit/angular-locales-generator) to facilitate the job, you need to run the command

```bash
npm run i18n
Expand Down
72 changes: 48 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,35 +3,55 @@

<div id="header" align="center">
<div id="badges">
<a href="https://github.com/featbit/featbit/blob/main/LICENSE">
<img src="https://img.shields.io/static/v1?style=flat-square&label=license&message=MIT&color=brightgreen" />
</a>
<a href="https://twitter.com/RealFeatBit">
<img src="https://img.shields.io/badge/Twitter-1DA1F2?style=flat-square&logo=twitter&logoColor=white"/>
</a>
<a href="https://medium.com/@featbit">
<img src="https://img.shields.io/badge/Medium-grey?style=flat-square&logo=medium&logoColor=white" alt="Read about RATH on medium"/>
</a>
<a href="https://join.slack.com/t/featbit/shared_invite/zt-1ew5e2vbb-x6Apan1xZOaYMnFzqZkGNQ">
<img src="https://img.shields.io/badge/Slack-green?style=flat-square&logo=slack&logoColor=white" alt="Join FeatBit on Slack"/>
</a>
<a href="https://github.com/featbit/featbit/blob/main/LICENSE">
<img src="https://img.shields.io/static/v1?style=flat-square&label=license&message=MIT&color=brightgreen" />
</a>
<a href="https://twitter.com/RealFeatBit">
<img src="https://img.shields.io/badge/Twitter-1DA1F2?style=flat-square&logo=twitter&logoColor=white"/>
</a>
<a href="https://medium.com/@featbit">
<img src="https://img.shields.io/badge/Medium-grey?style=flat-square&logo=medium&logoColor=white" alt="Read about RATH on medium"/>
</a>
<a href="https://join.slack.com/t/featbit/shared_invite/zt-1ew5e2vbb-x6Apan1xZOaYMnFzqZkGNQ">
<img src="https://img.shields.io/badge/Slack-green?style=flat-square&logo=slack&logoColor=white" alt="Join FeatBit on Slack"/>
</a>
</div>
<div id="badges">
<a href="https://dotnet.microsoft.com/">
<img src="https://img.shields.io/badge/.NET-%3E=6.0-6E359E?style=flat-square&logo=csharp&logoColor=white"/>
</a>
<a href="https://www.python.org/">
<img src="https://img.shields.io/badge/Python-%3E=3.9-FFDD53?style=flat-square&logo=python&logoColor=white"/>
</a>
<a href="https://angular.io/">
<img src="https://img.shields.io/badge/Angular-16.0-DD0031?style=flat-square&logo=angular&logoColor=white"/>
</a>
</div>
<div id="badges">
<a href="https://dotnet.microsoft.com/">
<img src="https://img.shields.io/badge/.NET-%3E=6.0-6E359E?style=flat-square&logo=csharp&logoColor=white"/>
</a>
<a href="https://www.python.org/">
<img src="https://img.shields.io/badge/Python-%3E=3.9-FFDD53?style=flat-square&logo=python&logoColor=white"/>
</a>
<a href="https://angular.io/">
<img src="https://img.shields.io/badge/Angular-16.0-DD0031?style=flat-square&logo=angular&logoColor=white"/>
</a>
</div>

<br/>
<div id="links">
<a href="https://docs.featbit.co">
Documentation
</a>
|
<a href="https://join.slack.com/t/featbit/shared_invite/zt-1ew5e2vbb-x6Apan1xZOaYMnFzqZkGNQ">
Community (Slack)
</a>
|
<a href="https://www.linkedin.com/company/featbit">
LinkedIn
</a>
|
<a href="mailto:[email protected]">
Email
</a>
</div>


</div>

<br/>

🙏 If you are using FeatBit, we have launched the [**FeatBit Usage Survey**](https://forms.gle/gZT715wE9aMPpoBw8). It would be greatly appreciated and incredibly helpful if you could take the time to fill it out (5 questions).

## Try FeatBit Online

Expand Down Expand Up @@ -117,6 +137,8 @@ The above sections show you how to get up and running quickly and easily. When y

[Join our Online Slack Support & Community](https://join.slack.com/t/featbit/shared_invite/zt-1ew5e2vbb-x6Apan1xZOaYMnFzqZkGNQ)

[Connect with FeatBit on LinkedIn](https://www.linkedin.com/company/featbit)

Email us at [[email protected]](mailto:[email protected]) if Slack isn't your thing.

[Official Website](https://www.featbit.co)
Expand Down Expand Up @@ -157,6 +179,8 @@ FeatBit offers a range of features including:

- **[ChatGPT Tech Debt Reduction](https://github.com/featbit/featbit/tree/main/llm)** (experimental features): Utilize ChatGPT4 and FeatBit's VSCode extension to minimize technical debt associated with feature flagging.

- **[OpenTelemetry Integration](https://docs.featbit.co/integrations/observability/opentelemetry)**: Enhance system visibility with OpenTelemetry for logs, traces, and metrics.

- **[Helm Charts Installation](https://github.com/featbit/featbit-charts/)**, FeatBit can be installed on-premises, in the cloud, or in a hybrid environment through Helm Charts.

![featbit-readme-new-2](https://user-images.githubusercontent.com/68597908/211645725-391777fa-b5c0-4a0c-88e9-df9f05af9c61.gif)
Expand Down
13 changes: 10 additions & 3 deletions docker/composes/docker-compose-otel-collector-contrib.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: featbit-otel-collector
version: "3"
services:
otel-collector:
image: otel/opentelemetry-collector-contrib
image: otel/opentelemetry-collector-contrib:latest
container_name: otel-collector
volumes:
- ./infra/otel/otel-collector-config.yml:/etc/otelcol-contrib/config.yaml
Expand All @@ -25,7 +25,7 @@ services:
seq:
condition: service_started
jaeger:
image: jaegertracing/all-in-one:1.46.0
image: jaegertracing/all-in-one:latest
container_name: jaeger
environment:
- COLLECTOR_OTLP_ENABLED=true
Expand All @@ -38,10 +38,11 @@ services:
- "14250"

prometheus:
image: prom/prometheus:v2.42.0
image: prom/prometheus:latest
container_name: prometheus
volumes:
- ./infra/otel/prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus:/prometheus
networks:
- featbit-network
ports:
Expand All @@ -54,6 +55,8 @@ services:
ports:
- 8082:80
- 5341:5341
volumes:
- seq:/data
environment:
- ACCEPT_EULA=Y
networks:
Expand All @@ -63,3 +66,7 @@ networks:
ipam:
config:
- subnet: 172.10.0.0/16

volumes:
prometheus:
seq:
16 changes: 10 additions & 6 deletions docker/composes/docker-compose-otel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,9 @@ services:
dockerfile: ./deploy/Dockerfile
environment:
- SSOEnabled=true
env_file:
- ./infra/otel/env/otel-api.env
- ENABLE_OPENTELEMETRY=true
- OTEL_SERVICE_NAME=featbit-api
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317
depends_on:
- mongodb
- redis
Expand All @@ -47,8 +48,10 @@ services:
depends_on:
- mongodb
- redis
env_file:
- ./infra/otel/env/otel-els.env
environment:
- ENABLE_OPENTELEMETRY=true
- OTEL_SERVICE_NAME=featbit-els
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317
ports:
- "5100:5100"
networks:
Expand All @@ -73,8 +76,9 @@ services:
MONGO_URI: mongodb://admin:password@mongodb:27017
MONGO_INITDB_DATABASE: featbit
MONGO_HOST: mongodb
env_file:
- ./infra/otel/env/otel-das.env
ENABLE_OPENTELEMETRY: true
OTEL_SERVICE_NAME: featbit-das
OTEL_EXPORTER_OTLP_ENDPOINT: http://otel-collector:4317

mongodb:
image: mongo:5.0.14
Expand Down
24 changes: 0 additions & 24 deletions infra/otel/env/otel-api.env

This file was deleted.

15 changes: 0 additions & 15 deletions infra/otel/env/otel-das.env

This file was deleted.

24 changes: 0 additions & 24 deletions infra/otel/env/otel-els.env

This file was deleted.

35 changes: 12 additions & 23 deletions infra/otel/otel-collector-config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,32 +36,21 @@ processors:
- favicon\.ico
enabled_regex_matching: true
invert_match: true
# use the following to filter out traces from the api service
filter/api:
# exclude traces from otel-collector
filter/trace-denylist:
spans:
include:
match_type: strict
services:
- featbit-api
exclude:
match_type: regexp
match_type: strict
attributes:
- key: net.peer.name
value: otel-collector
# use the following to filter out traces from the das service
filter/das:
spans:
include:
match_type: strict
services:
- featbit-das
# use the following to filter out traces from the els service
filter/els:
spans:
include:
match_type: strict
services:
- featbit-els
# temporary measure until description is fixed in Python
# see: https://github.com/open-telemetry/opentelemetry-demo/pull/738
transform:
metric_statements:
- context: metric
statements:
- set(description, "Measures the duration of inbound HTTP requests") where name == "http.server.duration"

exporters:

Expand Down Expand Up @@ -134,11 +123,11 @@ service:
pipelines:
traces:
receivers: [otlp]
processors: [batch, tail_sampling, attributes/dev]
processors: [batch, tail_sampling, filter/trace-denylist, attributes/dev]
exporters: [file/traces, otlp/jaeger]
metrics:
receivers: [otlp]
processors: [batch, attributes/dev]
processors: [batch, transform, attributes/dev]
exporters: [file/metrics, prometheus]
logs:
receivers: [otlp]
Expand Down
3 changes: 2 additions & 1 deletion infra/otel/utils/otel-env-vars.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,5 @@ $ENV:DOTNET_ADDITIONAL_DEPS="$INSTALL_DIR\AdditionalDeps"
$ENV:DOTNET_SHARED_STORE="$INSTALL_DIR\store"
$ENV:DOTNET_STARTUP_HOOKS="$INSTALL_DIR\net\OpenTelemetry.AutoInstrumentation.StartupHook.dll"
$ENV:OTEL_DOTNET_AUTO_HOME="$INSTALL_DIR"
$ENV:OTEL_EXPORTER_OTLP_ENDPOINT_GRPC="http://localhost:4317"
$ENV:OTEL_EXPORTER_OTLP_PROTOCOL="grpc"
$ENV:OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4317"
2 changes: 1 addition & 1 deletion kubernetes/pro/Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ A working Kubernetes Cluster such as

- These files use known usernames and passwords as well as very basic configurations to facilitate an easy way to evaluate Featbit Professional on kubernetes, they should be changed for any other uses. DO NOT deploy to a production or otherwise public cluster without customizing them.

- The infrastructure folder contains manifests needed to setup single instances of mongodb, clickhouse, kafka, and redis, with the exception of the *-configMap files which are derived from the configuration files found in featbit/infra/ directory of the repo. These manifests are provided as a convenience, if you have support, installation, maintanance, configuration, clustering, or any other questions regarding infrastructure components, please check with those projects respectively.
- The infrastructure folder contains manifests needed to setup single instances of mongodb, clickhouse, kafka, and redis, with the exception of the *-configMap files which are derived from the configuration files found in featbit/infra/ directory of the repo. These manifests are provided as a convenience, if you have support, installation, maintenance, configuration, clustering, or any other questions regarding infrastructure components, please check with those projects respectively.

- The manifests in the ingress folder are provided as a convenience and assume that traefik is installed and properly configured. As such configurations are highly custom, we cannot support your specific configuration. If you need help with traefik, please seek support from that community and their documentation.

Expand Down
Loading

0 comments on commit 193bcd7

Please sign in to comment.