Skip to content

Commit e8733df

Browse files
committed
Pipeline: filters: throttle: style:
Signed-off-by: Lynette Miles <[email protected]>
1 parent 2604a02 commit e8733df

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

pipeline/filters/throttle.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
# Throttle
22

3-
The _Throttle Filter_ plugin sets the average _Rate_ of messages per _Interval_, based on leaky bucket and sliding window algorithm. In case of overflood, it will leak within certain rate.
3+
The _Throttle_ filter plugin sets the average `Rate` of messages per `Interval`, based on the leaky bucket and sliding window algorithm. In case of flooding, it will leak at a certain rate.
44

5-
## Configuration Parameters
5+
## Configuration parameters
66

77
The plugin supports the following configuration parameters:
88

99
| Key | Value Format | Description |
1010
| :--- | :--- | :--- |
11-
| Rate | Integer | Amount of messages for the time. |
12-
| Window | Integer | Amount of intervals to calculate average over. Default 5. |
13-
| Interval | String | Time interval, expressed in "sleep" format. e.g 3s, 1.5m, 0.5h etc |
14-
| Print\_Status | Bool | Whether to print status messages with current rate and the limits to information logs |
11+
| `Rate` | `Integer` | Amount of messages for the time. |
12+
| `Window` | `Integer` | Amount of intervals to calculate average over. Default: `5`. |
13+
| `Interval` | `String` | Time interval, expressed in `sleep` format. For example, `3s`, `1.5m`, `0.5h`. |
14+
| `Print_Status` | `Bool` | Whether to print status messages with current rate and the limits to information logs. |
1515

1616
## Functional description
1717

@@ -23,7 +23,7 @@ Window 5
2323
Interval 1s
2424
```
2525

26-
You would received 1 message in the first second, 3 messages second, and 5 third.
26+
You would receive 1 message in the first second, 3 messages second, and 5 third.
2727
Disregard that Window is actually 5, because the configuration uses `slow` start
2828
to prevent flooding during the startup.
2929

@@ -35,7 +35,7 @@ to prevent flooding during the startup.
3535
+-----+
3636
```
3737

38-
But as soon as we reached Window size \* Interval, we will have true sliding window with aggregation over complete window.
38+
But as soon as you reach `Window size * Interval`, you will have true sliding window with aggregation over complete window.
3939

4040
```text
4141
+-------------+
@@ -45,7 +45,7 @@ But as soon as we reached Window size \* Interval, we will have true sliding win
4545
----------+
4646
```
4747

48-
When we have average over window is more than Rate, we will start dropping messages, so that
48+
When the average over window is more than `Rate`, Fluent Bit starts dropping messages, so the following:
4949

5050
```text
5151
+-------------+
@@ -65,11 +65,11 @@ will become:
6565
+---------+
6666
```
6767

68-
As you can see, last pane of the window was overwritten and 1 message was dropped.
68+
The last pane of the window was overwritten and 1 message was dropped.
6969

70-
### Interval vs Window size
70+
### Interval versus Window size
7171

72-
You might noticed possibility to configure _Interval_ of the _Window_ shift. It is counter intuitive, but there is a difference between two examples above:
72+
You might notice it's possible to configure the `Interval` of the `Window` shift. It's counter intuitive, but there is a difference between the two previous examples:
7373

7474
```text
7575
Rate 60
@@ -85,7 +85,7 @@ Window 300
8585
Interval 1s
8686
```
8787

88-
Even though both examples will allow maximum Rate of 60 messages per minute, first example may get all 60 messages within first second, and will drop all the rest for the entire minute:
88+
Even though both examples will allow maximum `Rate` of 60 messages per minute, the first example might get all 60 messages within first second, and will drop all the rest for the entire minute:
8989

9090
```text
9191
XX XX XX
@@ -97,24 +97,24 @@ XX XX XX
9797
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
9898
```
9999

100-
While the second example will not allow more than 1 message per second every second, making output rate more smooth:
100+
While the second example won't allow more than 1 message per second every second, making output rate more smooth:
101101

102102
```text
103103
X X X X X X
104104
XXXX XXXX XXXX XXXX XXXX XXXX
105105
+-+-+-+-+-+--+-+-+-+-+-+-+-+-+-+
106106
```
107107

108-
It may drop some data if the rate is ragged. I would recommend to use bigger interval and rate for streams of rare but important events, while keep _Window_ bigger and _Interval_ small for constantly intensive inputs.
108+
Fluent Bit might drop some data if the rate is ragged. Use bigger intervals and rates for streams of rare but important events, while keeping `Window` bigger and `Interval` smaller for constantly intensive inputs.
109109

110-
### Command Line
110+
### Command line
111111

112-
> Note: It's suggested to use a configuration file.
112+
It's suggested to use a configuration file.
113113

114-
The following command will load the _tail_ plugin and read the content of _lines.txt_ file. Then the _throttle_ filter will apply a rate limit and only _pass_ the records which are read below the certain _rate_:
114+
The following command will load the Tail plugin and read the content of the `lines.txt` file. Then, the Throttle filter will apply a rate limit and only pass the records which are read below the `rate`:
115115

116-
```text
117-
$ bin/fluent-bit -i tail -p 'path=lines.txt' -F throttle -p 'rate=1' -m '*' -o stdout
116+
```shell
117+
bin/fluent-bit -i tail -p 'path=lines.txt' -F throttle -p 'rate=1' -m '*' -o stdout
118118
```
119119

120120
### Configuration File
@@ -136,4 +136,4 @@ $ bin/fluent-bit -i tail -p 'path=lines.txt' -F throttle -p 'rate=1' -m '*' -o s
136136
Match *
137137
```
138138

139-
The example above will pass 1000 messages per second in average over 300 seconds.
139+
This example will pass 1000 messages per second in average over 300 seconds.

0 commit comments

Comments
 (0)