Skip to content

Commit 168c2bf

Browse files
authored
Merge pull request #1836 from fluent/lynettemiles/sc-136207/update-fluent-bit-docs-pipeline-inputs-tcp
2 parents d3aeb14 + 95bfdb1 commit 168c2bf

File tree

1 file changed

+36
-31
lines changed

1 file changed

+36
-31
lines changed

pipeline/inputs/tcp.md

Lines changed: 36 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,45 @@
11
# TCP
22

3-
The **tcp** input plugin allows to retrieve structured JSON or raw messages over a TCP network interface (TCP port).
3+
The _TCP_ input plugin lets you retrieve structured JSON or raw messages over a TCP network interface (TCP port).
44

55
## Configuration Parameters
66

77
The plugin supports the following configuration parameters:
88

99
| Key | Description | Default |
1010
| ------------ | ----------- | ------- |
11-
| Listen | Listener network interface. | 0.0.0.0 |
12-
| Port | TCP port where listening for connections | 5170 |
13-
| Buffer\_Size | Specify the maximum buffer size in KB to receive a JSON message. If not set, the default size will be the value of _Chunk\_Size_. | |
14-
| Chunk\_Size | By default the buffer to store the incoming JSON messages, do not allocate the maximum memory allowed, instead it allocate memory when is required. The rounds of allocations are set by _Chunk\_Size_ in KB. If not set, _Chunk\_Size_ is equal to 32 (32KB). | 32 |
15-
| Format | Specify the expected payload format. It support the options _json_ and _none_. When using _json_, it expects JSON maps, when is set to _none_, it will split every record using the defined _Separator_ (option below). | json |
16-
| Separator | When the expected _Format_ is set to _none_, Fluent Bit needs a separator string to split the records. By default it uses the breakline character (LF or 0x10). | |
17-
| Source\_Address\_Key| Specify the key where the source address will be injected. | |
18-
| Threaded | Indicates whether to run this input in its own [thread](../../administration/multithreading.md#inputs). | `false` |
11+
| `Listen` | Listener network interface. | `0.0.0.0` |
12+
| `Port` | TCP port to listen for connections. | `5170` |
13+
| `Buffer_Size` | Specify the maximum buffer size in KB to receive a JSON message. If not set, the default is the value of `Chunk_Size`. | `Chunk_Size` |
14+
| `Chunk_Size` | The default buffer to store the incoming JSON messages. It doesn't allocate the maximum memory allowed; instead it allocates memory when required. The rounds of allocations are set by `Chunk_Size`. If not set, `Chunk_Size` is equal to 32 (32KB). | `32` |
15+
| `Format` | Specify the expected payload format. Supported values: `json` and `none`. When set to `json` it expects JSON maps. When set to `none`, every record splits using the defined `Separator`. | `json` |
16+
| `Separator` | When `Format` is set to `none`, Fluent Bit needs a separator string to split the records. | `LF` or `0x10` (break line) |
17+
| `Source_Address_Key`| Specify the key to inject the source address. | _none_ |
18+
| `Threaded` | Indicates whether to run this input in its own [thread](../../administration/multithreading.md#inputs). | `false` |
1919

20-
## Getting Started
20+
## Get started
2121

22-
In order to receive JSON messages over TCP, you can run the plugin from the command line or through the configuration file:
22+
To receive JSON messages over TCP, you can run the plugin from the command line or through the configuration file.
2323

24-
### Command Line
24+
### Command line
2525

26-
From the command line you can let Fluent Bit listen for _JSON_ messages with the following options:
26+
From the command line you can let Fluent Bit listen for JSON messages with the following options:
2727

28-
```shell
29-
$ fluent-bit -i tcp -o stdout
28+
```bash
29+
fluent-bit -i tcp -o stdout
3030
```
3131

32-
By default the service will listen an all interfaces (0.0.0.0) through TCP port 5170, optionally you can change this directly, e.g:
32+
By default the service will listen an all interfaces (`0.0.0.0`) through TCP port `5170`. Optionally you can change this directly:
3333

34-
```shell
35-
$ fluent-bit -i tcp://192.168.3.2:9090 -o stdout
34+
```bash
35+
fluent-bit -i tcp://192.168.3.2:9090 -o stdout
3636
```
3737

38-
In the example the JSON messages will only arrive through network interface under 192.168.3.2 address and TCP Port 9090.
38+
In the example the JSON messages will only arrive through the network interface at `192.168.3.2` address and TCP Port `9090`.
3939

40-
### Configuration File
40+
### Configuration file
4141

42-
In your main configuration file append the following _Input_ & _Output_ sections:
42+
In your main configuration file append the following sections:
4343

4444
{% tabs %}
4545
{% tab title="fluent-bit.yaml" %}
@@ -79,21 +79,26 @@ pipeline:
7979
{% endtab %}
8080
{% endtabs %}
8181

82-
## Testing
82+
## Test the configuration
8383

84-
Once Fluent Bit is running, you can send some messages using the _netcat_:
84+
When Fluent Bit is running, you can send some messages using `netcat`:
8585

86-
```shell
87-
$ echo '{"key 1": 123456789, "key 2": "abcdefg"}' | nc 127.0.0.1 5170
86+
```bash
87+
echo '{"key 1": 123456789, "key 2": "abcdefg"}' | nc 127.0.0.1 5170
8888
```
8989

90-
In [Fluent Bit](http://fluentbit.io) we should see the following output:
90+
Run Fluent Bit:
9191

9292
```shell
93-
$ bin/fluent-bit -i tcp -o stdout -f 1
93+
bin/fluent-bit -i tcp -o stdout -f 1
94+
```
95+
96+
You should see the following output:
9497

95-
Fluent Bit v4.0.3
96-
* Copyright (C) 2015-2025 The Fluent Bit Authors
98+
```bash
99+
Fluent Bit v1.x.x
100+
* Copyright (C) 2019-2020 The Fluent Bit Authors
101+
* Copyright (C) 2015-2018 Treasure Data
97102
* Fluent Bit is a CNCF sub-project under the umbrella of Fluentd
98103
* https://fluentbit.io
99104

@@ -118,8 +123,8 @@ ______ _ _ ______ _ _ ___ _____
118123
[0] tcp.0: [1570115975.581246030, {"key 1"=>123456789, "key 2"=>"abcdefg"}]
119124
```
120125

121-
## Performance Considerations
126+
## Performance considerations
122127

123128
When receiving payloads in JSON format, there are high performance penalties. Parsing JSON is a very expensive task so you could expect your CPU usage increase under high load environments.
124129

125-
To get faster data ingestion, consider to use the option `Format none` to avoid JSON parsing if not needed.
130+
To get faster data ingestion, consider to use the option `Format none` to avoid JSON parsing if not needed.

0 commit comments

Comments
 (0)