MCPcopy Index your code
hub / github.com/FeatureProbe/FeatureProbe

github.com/FeatureProbe/FeatureProbe @2.7.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2.7.0 ↗ · + Follow
2,213 symbols 6,798 edges 647 files 4 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Feature Management Service, FeatureProbe

Last Commit Last Release Docker Pulls Apache-2.0 license Join FeatureProbe on Slack EN doc CN doc Twitter URL

TS React SpringBoot Rust

跳转到国内中文版

💎 FeatureProbe

FeatureProbe is an open source feature management service. It allows R&D, SRE and operation teams to launch new features or switch software implementations with confidence and lower risk. FeatureProbe eliminates manual delays through its practice in continuous delivery and is not hindered by the size of a team or the complexity of a product, which allows developers to maintain their velocity. It also enables the operation team to change online service parameters within seconds or roll out configurations progressively without effort.

With over 5 years of usage in a company of 5000+ developers, we have seen the remarkable difference FeatureProbe makes through the acceleration of daily development tasks. It also supports our million-user level product daily operations.

Now we are making this project open source to help more developers and operation people and contribute to the programming society.

Get started using FeatureProbe today!

🚀 Why you should use FeatureProbe

FeatureProbe brings about value to our daily development and operations in these aspects:

  1. Reducing development effort to merge branches. We can use feature toggles to set up gates for features on the main branch rather than creating branches for features. This can help us reduce time and effort from merging branches frequently and increase development velocity.
  2. Lowering down the time to recover. Feature toggles can separate and limit service issues from spreading by turning off the problematic services or carrying out service degradations. The SRE team can control the toggles on UI rather than waking up R&D on-call staff to do something.
  3. Saving testing environment cost. FeatureProbe makes it possible to test new features in the production environment by enabling them for a small portion of users and collecting feedback.
  4. One-stop configuration center for operation. FeatureProbe provides a comprehensive and user-friendly management portal for configuring and managing features, rollout, rollback, peer reviews, accounts and permissions, the operation team can use the portal solely to set up and send out specific features/versions to certain users based on their geolocation or other factors.
  5. Doing A/B testings to get insights. FeatureProbe helps the operation team do online A/B testing easily and gain insight from different marketing/sales strategies, which is one of the key factors in increasing the product or service's sales performance.
  6. And more! Discover all the amazing things FeatureProbe can accomplish.

🔎 UI Snapshot

  • Toggle Management List FeatureProbe screenshot

  • Target Setting targeting

  • Traffic Monitor traffic

  • Metric Analysis metric metric

🧩 Architecture of FeatureProbe

The overall architecture of FeatureProbe is shown in the following figure

FeatureProbe Architecture

🍭 Get Started in 2 Steps

1️⃣ Start FeatureProbe Central Service

  1. We provide a online FeatureProbe Service, so you don't have to deploy by yourself, just visit it Here.

  2. Or you can use docker composer to set your own FeatureProbe service

  3. Make sure you have git and docker installed. 。

  4. Clone the repository to your server and boot up the services. Change the ports defined in docker-compose.yml as needed.

bash git clone https://github.com/FeatureProbe/FeatureProbe.git cd FeatureProbe docker compose up * Visit the service on http://localhost:4009 with a browser and use the default credentials to log in. - username: admin - password: Pass1234

2️⃣ Use FeatureProbe SDK in your application

Import FeatureProbe SDK in your app, and check the Feature Toggle status in your code like the following pseudo-code:

FPUser user = new FPUser("user_id", "user_name", "user_email");

if (fpClient.boolValue(YOUR_TOGGLE_KEY, user, false)) {
  // Do some new thing;
} else {
  // Do the default thing;
}

We have SDKs for the following program languages, choose one for your application.

💻 Server Side SDK

📲 Client Side SDK

📚 More information

Please visit our Documentation

🙌 Contributing

We are working on continue evolving FeatureProbe core, making it flexible and easier to use. Development of FeatureProbe happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and improvements.

Please read CONTRIBUTING for details on our code of conduct, and the process for taking part in improving FeatureProbe.

📜 License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

🌈 Community and Sharing

We are growing a community to help newcomer to learn FeatureProbe. Don't hesitate to reach out for help.

If you want ask open questions about FeatureProbe, feature management or discuss these topics in general, join us on Join FeatureProbe on Slack

Or if you prefer to talk in Chinese, join our wechat group:

For Bug report or new feature requirement, create a GitHub issue for us.

🎢 Star History

Star History Chart

Extension points exported contracts — how you extend this code

TenantSupport (Interface)
(no doc) [24 implementers]
api/dao/src/main/java/io/featureprobe/api/dao/entity/TenantSupport.java
AccountValidator (Interface)
(no doc) [7 implementers]
api/admin/src/main/java/io/featureprobe/api/auth/AccountValidator.java
IHookRuleBuilder (Interface)
(no doc) [4 implementers]
api/base/src/main/java/io/featureprobe/api/base/hook/IHookRuleBuilder.java
HttpHandler (Interface)
(no doc) [2 implementers]
server/src/http/handler.rs
ProcessEnv (Interface)
(no doc)
ui/src/react-app-env.d.ts
MemberRepository (Interface)
(no doc) [1 implementers]
api/dao/src/main/java/io/featureprobe/api/dao/repository/MemberRepository.java
ServerDataSource (Interface)
(no doc) [5 implementers]
api/admin/src/main/java/io/featureprobe/api/server/ServerDataSource.java
ICallback (Interface)
(no doc) [3 implementers]
api/base/src/main/java/io/featureprobe/api/base/hook/ICallback.java

Core symbols most depended-on inside this repo

get
called by 376
api/base/src/main/java/io/featureprobe/api/base/cache/ICache.java
setValue
called by 167
ui/src/utils/hooks.ts
render
called by 85
ui/src/components/Diff/DiffServe.tsx
request
called by 83
ui/src/utils/request.ts
push
called by 82
api/base/src/main/java/io/featureprobe/api/base/hook/IHookQueue.java
ApplicationJson
called by 80
ui/src/constants/api/contentType.ts
save
called by 65
api/admin/src/main/java/io/featureprobe/api/service/MemberService.java
getName
called by 56
api/dao/src/main/java/io/featureprobe/api/dao/entity/ServerEventEntity.java

Shape

Method 1,061
Function 493
Class 314
Interface 307
Enum 38

Languages

Java57%
TypeScript33%
Kotlin5%
Rust5%

Modules by API surface

api/admin/src/main/java/io/featureprobe/api/service/TargetingService.java50 symbols
server/src/repo.rs33 symbols
ui/src/pages/targeting/hooks.tsx31 symbols
api/admin/src/main/java/io/featureprobe/api/service/ToggleService.java30 symbols
analysis/src/main/kotlin/com/featureprobe/api/analysis/AnalysisFunction.kt30 symbols
server/src/http/mod.rs27 symbols
ui/src/components/Diff/RulesDiffContent.tsx26 symbols
analysis/src/main/kotlin/com/featureprobe/api/analysis/AnalysisModel.kt26 symbols
api/admin/src/main/java/io/featureprobe/api/service/MemberService.java25 symbols
api/admin/src/main/java/io/featureprobe/api/service/TrafficChartService.java24 symbols
ui/src/interfaces/targeting.ts23 symbols
api/admin/src/main/java/io/featureprobe/api/service/BaseServerService.java23 symbols

Datastores touched

(mysql)Database · 1 repos
feature_probeDatabase · 1 repos
feature_probe_eventsDatabase · 1 repos
featureprobeDatabase · 1 repos
featureprobe-eventsDatabase · 1 repos
feature_probeDatabase · 1 repos

For agents

$ claude mcp add FeatureProbe \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page