Skip to content

Commit

Permalink
docs: add multi-schedule content (#118)
Browse files Browse the repository at this point in the history
  • Loading branch information
htessaro authored Jul 29, 2024
1 parent de45d24 commit 701da51
Show file tree
Hide file tree
Showing 14 changed files with 139 additions and 43 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,18 +38,43 @@ Refer to the [Experiments](/feature-flags/testing-with-flags/experiments) and [E

To add an event rate condition to a feature flag, you need to follow the steps below:

1. Go to the **Auto Operation** page.
2. Click the **+ Add** button.
3. The operation setting panel will appear. Choose the **Kill Switch** option.
4. Select **Event Rate**.
5. Set up the conditions. Define the variation, goal, condition, threshold, and minimum count.
6. Click **Submit**.
1. Go to the **Auto Operation** tab on the feature Flag page details.
2. Click the **+ New Operation** and select **Event Rate**.
3. Set up the conditions. Define the variation, goal, condition, threshold, and minimum count.
4. Click **Submit**.

The image below presents an example of event rate configuration. The current configuration's objective is to turn off the feature flag in case of a high error rate above 5%. A minimum count of 500 is used to avoid misleading turn-offs.

<CenteredImg
imgURL="img/feature-flags/auto-ops-rules/event-rate-condition-v3.png"
imgURL="img/feature-flags/auto-ops-rules/event-rate-condition-v4.png"
alt="Create event rate condition"
wSize="400px"
borderWidth="1px"
/>
/>

## Managing event rates

After creating an event rate, it becomes active and is available in the Auto Operation panel. You can identify it by the **Event Rate** tag or the **Kill Switch Operation** type. The event rate progress information visually displays the current event rate percentage and includes:

- The associated goal.
- The minimum goal count.
- The total goal count events.
- The current event rate value.

The following image shows an example of progress information for a running event rate:

<CenteredImg
imgURL="img/feature-flags/auto-ops-rules/event-rate-condition-panel.png"
alt="Event rate progress information"
borderWidth="1px"
/>

While active, you can edit, stop, or delete the event rate:

- **Edit Kill Switch**: Allows you to change the variation, goal, condition, threshold, and minimum count associated with the event rate.
- **Stop Kill Switch**: Stops the event rate and moves it to the Finished tab.
- **Delete Kill Switch**: Stops and removes the event rate information from the server. Use this option carefully. Only logs related to that event rate will be reported on the Audit Logs page.

## Event rate lifecycle

When you create an event rate, it will be active and available in the **Active** tab of the Auto Operation panel. The event rate (kill switch operation) continuously monitors the flag operation, counting every condition defined at its creation. When the threshold is reached, it will kill the flag, turning it off. Afterward, the event rate moves to the **Finished** tab.
Original file line number Diff line number Diff line change
Expand Up @@ -30,25 +30,26 @@ On the first day of the rollout, 10% of your users will see the new content. On
To add a rollout to a feature flag, you need to follow the steps below:

1. Go to the **Auto Operation** tab on the feature Flag page details.
2. Click the **+ Add** button.
3. Choose the **Enable** operation and select **Progressive Rollout**.
4. Configure the rollout and submit.
2. Click the **+ New Operation** and select **Progressive Rollout**.
3. Configure the rollout and click **Submit**. Check the [Template rollout](#template-rollout) or [Manual rollout](#manual-rollout) sections to learn how to configure the rollout.

:::caution Restrictions

The progressive rollout only works for flags with **two variations** and no **running experiment**.

You can have only one active rollout out for each feature flag.

:::

:::info Disabled Flag behavior

If the flag is disabled when a progressive rollout is created, the progressive rollout automatically enables the flag as soon as it starts.

Please remember that the progressive rollout will be stopped in the following actions:
Please remember that the progressive rollout will be stopped in the following scenarios:

- If you disable the flag manually.
- If a Schedule is configured to disable the flag.
- If the Kill Switch is configured and matches the conditions to disable the flag.
- If a Kill Switch is configured and matches the conditions to disable the flag.
:::

The rollout provides two main options when setting it up:
Expand All @@ -68,9 +69,9 @@ If you choose to use the Template rollout, you need to define the following conf
Notice that when using the Template rollout, all phases increment the percentage of users accessing the new variation by the same amount, defined by the **Increment** parameter. The image below summarizes an example of a configuration using the Template configuration.

<CenteredImg
imgURL="img/feature-flags/auto-ops-rules/template-rollout.png"
imgURL="img/feature-flags/auto-ops-rules/template-rollout-v2.png"
alt="Template rollout"
wSize="400px"
wSize="380px"
borderWidth="1px"
/>

Expand All @@ -89,9 +90,47 @@ Another important point related to the Manual option is that you don't need to r
The image below summarizes an example of a configuration using the Manual configuration.

<CenteredImg
imgURL="img/feature-flags/auto-ops-rules/manual-rollout.png"
imgURL="img/feature-flags/auto-ops-rules/manual-rollout-v2.png"
alt="Template rollout"
wSize="400px"
wSize="380px"
borderWidth="1px"
/>

## Managing rollouts

After creating a rollout, it becomes active and is available in the Auto Operation panel. You can identify the rollout by the **Progressive Rollout** tag or the **Enable Operation** type. The rollout progress information displays all rollout phases, including the respective dates, times, and the total percentage released at each phase. The progress information also includes:

- **Increment**: The percentage increment used at each rollout release phase (only available for Template rollouts).
- **Start Date**: The date when the progressive rollout will start.
- **Variation**: The flag variation being released.
- **Frequency**: The frequency of each rollout phase (hourly, daily, weekly), (only available for Template rollouts).

The following image shows an example of progress information for a progressive rollout:

<CenteredImg
imgURL="img/feature-flags/auto-ops-rules/template-rollout-panel-template.png"
alt="Progressive rollout progress information"
borderWidth="1px"
/>

:::info Updating a Rollout

Updating or editing a progressive rollout is not supported in Bucketeer. You can only delete or stop the rollout.

:::

While active, you can stop or delete the rollout:

- **Stop Progressive Rollout**: Stops the rollout, moving it to the finished tab, where you can check the last rollout state or use it as a reference for future rollouts.
- **Delete Rollout**: Stops and removes the rollout information from the server. Use this option carefully. Only logs will be reported on the operations related to that rollout on the Audit Logs page.

## Roullout lifecycle

When you create a rollout, it will be active and available in the **Active** tab of the Auto Operation panel. The first rollout stage (0%) displays the date and time of its creation. As each stage is reached, the progress information panel updates, providing clear visual information about the current rollout progress. After all rollout stages are completed, the rollout moves to the **Finished** tab. The following image presents an example of progress information for a running rollout.

<CenteredImg
imgURL="img/feature-flags/auto-ops-rules/running-rollout.png"
alt="Running rollout example"
borderWidth="1px"
/>

Expand Down Expand Up @@ -124,16 +163,6 @@ If you need to update a flag that has a running progressive rollout associated w
- The default strategy on the [Targeting](/feature-flags/creating-feature-flags/targeting) tab can't be modified.
- You're not able to add or remove variations to the flag. However, you can edit the values, names, and descriptions of the existing variations.

:::info Updating a rollout

Updating a running progressive rollout is not supported in Bucketeer. You can delete or stop the rollout.

If you delete the rollout, no historical data will be stored. Only logs will be reported on the operations related to that rollout on the Audit Logs page.

When you stop the rollout, it will move to the finished tab, where you can check the last rollout state or use it as a reference for future rollouts.

:::

### Other Auto Operations

Progressive rollouts can be created for flags, whether they're enabled or disabled.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,84 @@
title: Schedule
# sidebar_position:
slug: /feature-flags/creating-feature-flags/auto-operation/schedule
description: 'Check how the schedule features works in bucketeer. Use it to release or remove a flag variation.'
description: 'Learn how the schedule feature works in Bucketeer. Use it to release or remove a flag variation.'
tags: ['guide', 'automation', 'schedule', 'feature-flag']
---

import CenteredImg from '@site/src/components/centered-img/CenteredImg';

The Schedule solution is designed to deliver or remove a feature at a specific date and time. Therefore, you can use it to release a new feature for holidays or special promotions, for example. The same solution can be used to remove the temporary feature after the holidays or to turn off a beta feature after a certain period.
The Schedule feature allows you to deliver or remove a feature at a specific date and time. This is useful for releasing new features during holidays or special promotions and removing temporary features afterwards.

## How the schedule works

When using the Bucketeer Auto Operation along with the Schedule condition, you can manage your flags based on the specific date and time you define. Once the Bucketeer receives the SDK request, the schedule condition evaluates whether the specified date and time have been reached. If it has, the operation to enable or kill a flag variation is executed.
When using Bucketeer Auto Operation with the Schedule condition, you can manage your flags based on specific dates and times. Once Bucketeer receives the SDK request, the schedule condition checks if the specified date and time have been reached. If they have, the operation to enable or disable a flag variation is executed.

:::info Schedule requisites and restrictions
:::info Schedule requisites

To use the schedule condition, you always need to use a future date and time to schedule the operation.

You can only have two active operations based on schedule conditions. One will define when to enable and the other when to kill the flag. However, you aren't required to use both operations. For example, you can use only the enable option.
To use the schedule condition, you must always select a future date and time to schedule the operation.

:::

The schedule feature supports multi-scheduling, allowing you to create a chain of scheduled operations. This makes it easier to visualize and configure the flag schedule. For example, you can enable the flag (turn it On) on weekends and disable it (turn it Off) on weekdays.

## Setting up auto operation with schedule

To release or kill a feature flag using the schedule option, you need to follow the steps below:
To enable or disable a feature flag using the schedule option, follow these steps:

1. Go to the **Auto Operation** page.
2. Click the **+ Add** button.
3. The operation setting panel will appear. Choose the **Enable** operation to release or **Kill Switch** to remove a flag.
4. Select **Schedule**.
5. Set up the date and time. Remember, you need to select a future date and time.
6. Click **Submit**.
2. Click the **+ New Operation** button and select **Schedule**.
3. The **Create Operation** panel will appear, displaying the current flag state (On or Off).
4. Under **Schedule**, select the operation's final flag state (On or Off) and set up the date and time. Remember, you need to choose a future date and time.
5. (Optional) Add more schedules using the **+ Add Schedule** button.
6. After adding all the schedules, click **Submit**.

:::info Multi-schedule

Bucketeer does not restrict the flag state selection when using multi-schedule. You can add multiple schedule operations in a row to enable the flag, and Bucketeer will not show any warnings. Ensure you are selecting the correct states when creating a schedule.

:::

The image below presents an example of schedule configuration for enabling a feature flag.
The image below shows an example of a multi-schedule configuration. Notice that two On operations were used in sequence without errors or warnings.

<CenteredImg
imgURL="img/feature-flags/auto-ops-rules/schedule-condition-v3.png"
alt="Create an enable operation using schedule"
imgURL="img/feature-flags/auto-ops-rules/schedule-condition-v4.png"
alt="Create a schedule operation"
wSize="400px"
borderWidth="1px"
/>

## Managing schedules

After creating a schedule, it will be active and available in the Auto Operation panel. Each schedule displays the created date and all associated operations, with the respective flag state and date and time for each schedule. The following image shows the progress information for the schedule created in the previous section:

<CenteredImg
imgURL="img/feature-flags/auto-ops-rules/schedule-operation.png"
alt="Schedule operation progress information"
borderWidth="1px"
/>

While active, you can edit, stop, or delete the schedule:

- **Edit Schedule**: Change each operation's status or date and time. After submitting the modifications, the schedule remains active, displaying the last update date and time.
- **Stop Schedule**: Stops the schedule, preventing future scheduled operations from being performed. The schedule is finished.
- **Delete Schedule**: Stops and removes the schedule information from the server. Use this option carefully.

## Schedule lifecycle

When you create a schedule, it will be active and available in the **Active** tab in the Auto Operation panel.

When the first scheduled operation is executed, the flag state is changed, and the schedule progress information is updated. Instead of showing the creation date and time, it displays the last flag state update date and time. The same happens for multi-schedule after each operation.

<CenteredImg
imgURL="img/feature-flags/auto-ops-rules/schedule-operation-3.png"
alt="Schedule operation updated"
borderWidth="1px"
/>

After performing all operations, the schedule moves to the **Finished** tab. In the Finished tab, you can view operation details, listing all operations performed throughout the schedule lifecycle, or delete the schedule.

<CenteredImg
imgURL="img/feature-flags/auto-ops-rules/schedule-operation-2.png"
alt="Schedule operation finished"
borderWidth="1px"
/>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 701da51

Please sign in to comment.