The FeatureProbe User Guide provides an overview of FeatureProbe, instructions on how to set up accounts and projects, and complete examples of adding, editing and using feature toggles.
New features launching or version release are the most common use of FeatureProbe. When we launch a new feature or update the service, we can enable them for a small fraction of the users in the first place to make sure things go smoothly without impacting the majority of users. If those users don't complain or even give good feedback, we can populate the changes to more users, and repeat the procedure till all users update to the new version.
Further more, there are many other scenarios where we can use FeatureProbe.
Many companies periodically carry out promotion activities to boost sales. These activities use similar templates in most cases, and the operation team just need to modify several parameters to create a new promotion.
-
Use Case: An online shopping platform carries out a Black Friday sales gala and needs to change prices for many items. In the past, the R&D team change items prices and launch the changes with a long workflow. Now they can use FeatureProbe to toggle the items price and make them effective within a second.
-
Operation Procedure
- The online sales operation team adds a new project named "My First Project" and adds a feature toggle named "commodity_spike_activity" for the "online" environment. Shown in below picture:
- The developer imports the FeatureProbe SDK in the code base (Java code as an example), and uses the "commodity_spike_activity" toggle by setting the sdk Key which is assigned by FeatureProbe to "My First Project" "online" environment. The variations type is number, and the user parameter is "city".
FPUser user = new FPUser(user_id); user.with("city", city_name); double discount = fpClient.numberValue("commodity_spike_activity", user, 1.0); discountSetTo(discount);
- The developer launches code base. Then operation people enable the toggle to make the city based pricing incentive policy get effective.
- If the operation team needs to change prices, they can change the price variation settings on the FeatureProbe UI easily.
When the online service encounters extremely high demands that impact some dependency services or there is something goes wrong (for example, a backend service gets inaccessible unexpectedly), we need to guarantee the essential services work without disruption by using the cached data rather than fetching data from those problem services.
-
Use Case: The ecommerce service needs to call an inventory stocking service to show the product stocking information. If the stocking service encounters some issue and is not available, the operation team can make use of FeatureProbe to get stocking data from the cached content within a second and carry out the time costly application fallback operation or switch over to a backup service without interrupt the online service.
-
Operation Procedure
- The R&D team adds a new project named "My First Project" and adds a feature toggle named "store_service_fallback" for the "online" environment. Shown in below picture:
- The developer imports the FeatureProbe SDK in the code base (Java code as an example), and uses the "store_service_fallback" toggle by setting the sdk Key which is assigned by FeatureProbe to "My First Project" "online" environment. The variations type is boolean, and its result enables or disables the degradation.
FPUser user = new FPUser(user_id); boolean fallback = fpClient.boolValue("store_service_fallback", user, false); if (fallback) { // Do something. } else { // Do normal process. }
- When there is something wrong with the dependency services, the operation team can change the variation from False to True to enable the degradation with cached/staled data to prevent service from being interrupted.
Design several solutions for a specific service, try them all and find out the most optimal/popular one.
-
Use Case 1: Decide a button's color. Mike, the product manager, wants to change a "Buy" button for their ecommerce platform in Paris. The original color is in red, and he believes the Paris people would like blue, and he also wants to try green. He uses FeatureProbe to do the A/B testing to find out the better choice.
-
Operation Procedure
- The operation team adds a new project named "My First Project" and adds a feature toggle named "color_ab_test" for the "online" environment. Shown in below picture:
- The developer imports the FeatureProbe SDK in the code base (Java code as an example), and uses the "color_ab_test" toggle by setting the sdkKey which is assigned by FeatureProbe to "My First Project" "online" environment. The variations type is string, and the user parameter is "city".
FPUser user = new FPUser(user_id); user.with("city", city_name); String color = fpClient.stringValue("color_ab_test", user, "red"); setButtonColor(color);
- The developer launches code base. Then operation people enable the toggle to make the city based color setting get effective.
- After several days of testing, Mike finds out that Paris people click the purchase button more when it is in blue, and he carries our the configuration to show blue button for all Paris customers.
One More Thing: We provide a small trick in the demo project that enables you to display different logos for different browsers. Try to find it out and make your website a little more interesting.
You can use a valid account and its password to log in the FeatureProbe portal.
If it is the first time you log in a FeatureProbe service, you can use the default administrator account as
Admin/Pass1234
. Remember to change the password after you log in for the first time.
Use an Administrator account to log in the FeatureProbe portal and create new accounts at the Account Settings
page with below steps:
- Click the
+ Member
button in blue. - Fill in account name in the
Accounts
field. You can massively create accounts by filling multiple accounts and separating them with commas. - By default, FeatureProbe assigns a default password to a newly created account.
- Or you can uncheck the
Default Password
and use your own password. - Click
Add
button in the upper right corner to finish account creation.
Note: new accounts will get effective immediately after they are created.
The default "Admin" account cannot be edited by any account, and it can edit any other account.
You can edit an account's password and save it to make the edit effective.
Node: the account member will be automatically logged out if you edit its password and there is no activities of the logged in account.
The default "Admin" account cannot be deleted by any account, and it can delete any other account.
Click delete
button and Confirm
to delete it on the pop-up window.
Note: Once an account has been deleted, you cannot create another account by using the same name.
It is highly recommended changing an account's default password immediately after it is created with below steps:
- Fill in the old password
- Fill in the new password
- Fill in the new password again and make sure the two new passwords are identical.
- Click "Save" button to finish changing password.
One FeatureProbe account can manage multiple business objects by setting up Projects. For example, you can create a
project named "mobile client side app" and another project named "server side app", and set up its unique environments
and toggles respectively. The FeatureProbe system provides a default initial project named "My First Project" and it has
two environments, test
and online
. You can add more projects in the Projects
tab.
Here are the steps to add a new project:
- Click
Projects
tab to enter the projects page. - Click the
+ Project
button in the top-right corner and open a new drawer page on the right to create a project. - Enter new project's name.
- Enter key. It is a unique value to define a project and cannot be changed once the project is created.
- Enter project descriptions.
- Create the project by clicking the
Create
button at the top of the drawer window. Now the project is created, and it cannot be deleted. - Click a card (a card has the name of a specific environment, such as
test
oronline
) under a project to enter a specific environment page and see the toggles.
You can choose to edit a project by clicking the three-vertical-dot icon in the top-right corner of a project.
You can modify the selected project's name or/and description and save to make the changes into effective.
You can add new environments for your project and make the toggles accessible for different environment.
Here are the steps to add a new environment:
- Click the three-vertical-dot icon in the top-right corner of a project and choose the
Add environment
menu item. - Fill in the environment name.
- Fill in a key. It must be unique within a project, and it cannot be changed once an environment is created.
- Click
Confirm
button to create the environment. It cannot be deleted once created.
Note: A newly created environment shares the toggles of all the environments under the same project. But you need to set a toggle's configuration for a specific environment.
You can choose to edit an environment by clicking the three-vertical-dot icon in the top-right corner of an environment.
You can only change an environment's name at this time.
The FeatureProbe service provides powerful feature toggles management. You can manipulate the release of your business services or applications by changing the volume portion, controlling enabled features, and watching over the metrics with different toggles settings to ramp up new configurations until enabling it for everyone. The toggles setting works for different environment individually, and you can switch among different environments easily by using the drop-down menu in the upper-left corner inside a project page.
- The picture is the toggle list of the
My First Project
online
environment. - There is environment switch at the top of left side navigator. Click the drop-down menu to select an environment.
- There are three filter fields and a search field to help to find out toggles quickly.
You can add new toggles for your project on the project page.
Here are the steps to add a new toggle:
- Fill in the toggle's name.
- Fill in the toggle's Key. It is unique within a project and cannot be changed once created.
- Fill in the toggle's description.
- Create or select tags from the list.
- Select SDK.
- Select a return type. Now there are four types (Boolean, String, Number, JSON). The return type cannot be edited later.
- Fill in Variations.
- For Boolean return type: There are two default variations, and their values are
true
andfalse
respectively. You cannot change the variations number. You cannot change variations value (only "true" and "false" are allowed), and you can change their name and description. - For other return types: There are two default variations, and the initial values are Null. You can add or delete variations and change their value, name, and description.
- For Boolean return type: There are two default variations, and their values are
- Fill in
Disabled return value
. It is the default value to be return when the toggle is disabled. By default, this value will be set as variation1's disabled return value. You can change it. - Click
Create
button in the upper-right corner.
Note: When a new toggle is created, the system will create a toggle template based on the new toggle automatically. And all environments under the same project share that template.
You can edit an existing toggle template. That operation will not change the existing toggle configuration and will be used for the new toggles that will be created in the future.
You can set up a toggle's configuration for a specific environment. A toggle must be configured for all environments individually, and the configuration doesn't shared among environments. You need to first select and enter a specific environment page and set up the toggle configuration afterward.
Here are the steps to configure a toggle:
- Status: It is the toggle's status of enabled or disabled. If it is disabled, the
Disabled return value
is effective, otherwise, theRules
andDefault Rule
are effective. - Variations: They are synced from the toggle template and are changeable.
- Rules: They are the rules to be matched to make the toggle evaluations effective for specific users based on their
attributes. Multiple rules work together with the logical
OR
operation. An example: return special values for specific users.- Click
Add rule
and fill in the rule name (you will see a placeholder reads "Rule 1" and please use your rule name to replace it). - Fill in the
Add Subject
,Select an operator
, andEnter some values
fields to set up a condition. - You can add more conditions if needed.
- Select the variate that will be served if the conditions are matched. Or you can set the proportions of the variations which are defined in a percent form. The sum of all variations' percent portions must be 100%.
- You can re-order the rules by click and drag a rule on the six-dot icon on the right end of a rule card.
- You can delete a rule if it is not relevant anymore.
- Click
- Default Rule: set up a default return value for the people who are not specified. You can choose to server a pre-defined variation, or the portions of variations.
- Disabled return value: By default, this value uses the value in the toggle template, and it is changeable.
- Click the
publish
button and a diff of configurations will pop out. - Click
confirm
to make the configuration effective.
The FeatureProbe provides a graphic report of toggles' accessing/usage information and the evaluation results. The report is environment specific.
Here are the key information of the reports:
- Variation counts: This is to report the variations hitting statistics.
- Scope and granularity: By default, you can see the past 24 hours statistics with a granularity of 2 hours. You can change to see the past 7 days' report with a daily granularity.