Code Monkey home page Code Monkey logo

featureprobe / featureprobe Goto Github PK

View Code? Open in Web Editor NEW
1.5K 24.0 112.0 228.43 MB

FeatureProbe is an open source feature management service. 开源的高效可视化『特性』管理平台,提供特性开关、灰度发布、AB实验全功能。

Home Page: https://www.featureprobe.com/

License: Apache License 2.0

Dockerfile 0.08% Java 31.15% Groovy 9.52% JavaScript 0.09% HTML 0.02% TypeScript 46.76% SCSS 6.52% CSS 0.14% Makefile 0.02% Rust 3.25% Kotlin 2.34% Shell 0.10%
configuration-management continuous-delivery feature-flags feature-toggle toggle-switch abtest abtesting configuration developer-tools experiment

featureprobe's Introduction

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.

🚀 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. You can use docker composer to set your own FeatureProbe service

    • Make sure you have git and docker installed. 。
    • Clone the repository to your server and boot up the services. Change the ports defined in docker-compose.yml as needed.
        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

featureprobe's People

Contributors

aliaksei-audonin avatar csh0101 avatar dengfeige avatar dependabot[bot] avatar dongliutony avatar fengshang avatar frankzhaopeng avatar gangb-tech avatar nanxijms avatar orlando-li avatar panchongyang avatar ssebo avatar wooden-robot avatar yuying-alice avatar zhangchaoltt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

featureprobe's Issues

[GLCC] GitLink Code Camp, Support C# Server SDK

The issue is about the GitLink Code Camp activity.

Requirement

We need a server-side C# SDK, which can work as other FeatureProbe server side SDKs, take Java SDK for example.

You need to be familiar with C#, have knowledge of network and multi-thread programming in C#.

Expectation

The C# SDK should work as Java SDK, including Targeting calculation and metrics report, and should pass all the acceptance tests including performance test.

Contact

@dengfeige
email: [email protected]

API should not be selected as a Approver

Describe the bug
image

To Reproduce
Steps to reproduce the behavior:

  1. Add a API token
  2. Click on 'Review setting'
  3. Scroll down Approver
  4. Select the API token.

Expected behavior
Only a human user should be selected as a approver.

Screenshots
If applicable, add screenshots to help explain your problem.
image

OpenAPI token management

Should have OpenAPI token for project and single user. And user should use GUI to manage their token.

Is there any roadmap ?

image
官方能不能也给一个类似Sentinel这样的ROADMAP,这里面规划了开源版本会支持的功能以及明确的时间点,通过这个图我们能够非常清晰的看到咱们的迭代计划。

Simple AB test

SDK track business event, Metric Management, AB test dashboard

Tasks

  • SDK support metrics
  • Metrics management
  • Event storage
  • Event Query
  • Experiment create
  • Analysis dashboard

[GLCC] GitLink Code Camp

The issue is about the first GitLink Code Camp activity.
Related link: https://mp.weixin.qq.com/s/upVI-2TQ0ezQGpzhDiF3Pg

Requirement

We need a server-side python SDK, which can work as other FeatureProbe server side SDKs, take Java SDK for example.

You need to be familiar with python, have knowledge of network and multi-thread programming in python.

Expectation

The python SDK should work as Java SDK, including Targeting calculation and metrics report, and should pass all the acceptance tests including performance test.

Contact

@dengfeige
email: [email protected]

Is there any performance benchmarking ?

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Keep the UI snapshot in README up to date.

Problem

As we are evolving fast, some UI snapshots and demo code in README.md and USER_GUIDE.md may be out dated. Please help us to keep the document up to date.

What you can do

Fork this repo, following the README instructions to run FeatureProbe with docker compose. Explore FeatureProbe webpage and try demo codes.

Find the different of what you see and the snapshot in README or USER_GUIDE, make a PR to update the document to what you have seen.

Detail instructions

The snapshot are locate in pictures dir, like pictures/feature_probe_ui.png for example. You can capture a new picture and replace this file.

For demo code change, you can update directly in README.md or USER_GUIDE.md file.

For GitHub very beginner

You can follow the instruction in this document to know basic Git command and how to create a PR.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.