|
1 | 1 | # Upgrade Notes
|
2 | 2 |
|
3 |
| -The following article covers the relevant compatibility changes for users upgrading |
4 |
| -from previous Fluent Bit versions. |
| 3 | +The following article covers the relevant compatibility changes for users upgrading from previous Fluent Bit versions. |
5 | 4 |
|
6 |
| -For more details about changes on each release, refer to the |
7 |
| -[Official Release Notes](https://fluentbit.io/announcements/). |
| 5 | +For more details about changes on each release, refer to the [Official Release Notes](https://fluentbit.io/announcements/). |
8 | 6 |
|
9 |
| -Release notes will be prepared in advance of a Git tag for a release. An official |
10 |
| -release should provide both a tag and a release note together to allow users to |
11 |
| -verify and understand the release contents. |
| 7 | +Release notes will be prepared in advance of a Git tag for a release. An official release should provide both a tag and a release note together to allow users to verify and understand the release contents. |
12 | 8 |
|
13 |
| -The tag drives the binary release process. Release binaries (containers and packages) |
14 |
| -will appear after a tag and its associated release note. This lets users to expect |
15 |
| -the new release binary to appear and allow/deny/update it as appropriate in their |
16 |
| -infrastructure. |
| 9 | +The tag drives the binary release process. Release binaries (containers and packages) will appear after a tag and its associated release note. This lets users to expect the new release binary to appear and allow/deny/update it as appropriate in their infrastructure. |
17 | 10 |
|
18 | 11 | ## Fluent Bit v1.9.9
|
19 | 12 |
|
20 |
| -The `td-agent-bit` package is no longer provided after this release. |
21 |
| -Users should switch to the `fluent-bit` package. |
| 13 | +The `td-agent-bit` package is no longer provided after this release. Users should switch to the `fluent-bit` package. |
22 | 14 |
|
23 | 15 | ## Fluent Bit v1.6
|
24 | 16 |
|
25 |
| -If you are migrating from previous version of Fluent Bit, review the following |
26 |
| -important changes: |
| 17 | +If you are migrating from previous version of Fluent Bit, review the following important changes: |
27 | 18 |
|
28 | 19 | ### Tail Input Plugin
|
29 | 20 |
|
30 |
| -By default, the tail input plugin follows a file from the end after the service starts, |
31 |
| -instead of reading it from the beginning. Every file found when the plugin starts is |
32 |
| -followed from it last position. New files discovered at runtime or when files rotate |
33 |
| -are read from the beginning. |
| 21 | +By default, the tail input plugin follows a file from the end after the service starts, instead of reading it from the beginning. Every file found when the plugin starts is followed from it last position. New files discovered at runtime or when files rotate are read from the beginning. |
34 | 22 |
|
35 | 23 | To keep the old behavior, set the option `read_from_head` to `true`.
|
36 | 24 |
|
37 | 25 | ### Stackdriver Output Plugin
|
38 | 26 |
|
39 |
| -The `project_id` of |
40 |
| -[resource](https://cloud.google.com/logging/docs/reference/v2/rest/v2/MonitoredResource) |
41 |
| -in [LogEntry](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry) |
42 |
| -sent to Google Cloud Logging would be set to the `project_id` rather than the project |
43 |
| -number. To learn the difference between Project ID and project number, see |
44 |
| -[Creating and managing projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects#before_you_begin). |
| 27 | +The `project_id` of [resource](https://cloud.google.com/logging/docs/reference/v2/rest/v2/MonitoredResource) in [LogEntry](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry) sent to Google Cloud Logging would be set to the `project_id` rather than the project number. To learn the difference between Project ID and project number, see [Creating and managing projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects#before_you_begin). |
45 | 28 |
|
46 | 29 | If you have existing queries based on the resource's `project_id,` update your query accordingly.
|
47 | 30 |
|
48 | 31 | ## Fluent Bit v1.5
|
49 | 32 |
|
50 | 33 | The migration from v1.4 to v1.5 is pretty straightforward.
|
51 | 34 |
|
52 |
| -- The `keepalive` configuration mode has been renamed to `net.keepalive`. Now, |
53 |
| - all Network I/O keepalive is enabled by default. To learn more about this and other |
54 |
| - associated configuration properties read the |
55 |
| - [Networking Administration](https://docs.fluentbit.io/manual/administration/networking#tcp-keepalive) |
56 |
| - section. |
57 |
| -- If you use the Elasticsearch output plugin, the default value of `type` |
58 |
| - [changed from `flb_type` to `_doc`](https://github.com/fluent/fluent-bit/commit/04ed3d8104ca8a2f491453777ae6e38e5377817e#diff-c9ae115d3acaceac5efb949edbb21196). |
59 |
| - Many versions of Elasticsearch tolerate this, but Elasticsearch v5.6 through v6.1 |
60 |
| - require a `type` without a leading underscore. See the |
61 |
| - [Elasticsearch output plugin documentation FAQ entry](https://docs.fluentbit.io/manual/pipeline/outputs/elasticsearch#faq-underscore) for more. |
| 35 | +- The `keepalive` configuration mode has been renamed to `net.keepalive`. Now, all Network I/O keepalive is enabled by default. To learn more about this and other associated configuration properties read the [Networking Administration](https://docs.fluentbit.io/manual/administration/networking#tcp-keepalive) section. - If you use the Elasticsearch output plugin, the default value of `type` [changed from `flb_type` to `_doc`](https://github.com/fluent/fluent-bit/commit/04ed3d8104ca8a2f491453777ae6e38e5377817e#diff-c9ae115d3acaceac5efb949edbb21196). Many versions of Elasticsearch tolerate this, but Elasticsearch v5.6 through v6.1 require a `type` without a leading underscore. See the [Elasticsearch output plugin documentation FAQ entry](https://docs.fluentbit.io/manual/pipeline/outputs/elasticsearch#faq-underscore) for more. |
62 | 36 |
|
63 | 37 | ## Fluent Bit v1.4
|
64 | 38 |
|
65 | 39 | If you are migrating from Fluent Bit v1.3, there are no breaking changes.
|
66 | 40 |
|
67 | 41 | ## Fluent Bit v1.3
|
68 | 42 |
|
69 |
| -If you are migrating from Fluent Bit v1.2 to v1.3, there are no breaking changes. |
70 |
| -If you are upgrading from an older version, review the following incremental changes: |
| 43 | +If you are migrating from Fluent Bit v1.2 to v1.3, there are no breaking changes. If you are upgrading from an older version, review the following incremental changes: |
71 | 44 |
|
72 | 45 | ## Fluent Bit v1.2
|
73 | 46 |
|
74 | 47 | ### Docker, JSON, Parsers and Decoders
|
75 | 48 |
|
76 | 49 | Fluent Bit v1.2 fixed many issues associated with JSON encoding and decoding.
|
77 | 50 |
|
78 |
| -For example, when parsing Docker logs, it's no longer necessary to use decoders. The |
79 |
| -new Docker parser looks like this: |
| 51 | +For example, when parsing Docker logs, it's no longer necessary to use decoders. The new Docker parser looks like this: |
80 | 52 |
|
81 |
| -```python |
82 |
| -[PARSER] |
83 |
| - Name docker |
84 |
| - Format json |
85 |
| - Time_Key time |
86 |
| - Time_Format %Y-%m-%dT%H:%M:%S.%L |
87 |
| - Time_Keep On |
88 |
| -``` |
| 53 | +```python [PARSER] Name docker Format json Time_Key time Time_Format %Y-%m-%dT%H:%M:%S.%L Time_Keep On ``` |
89 | 54 |
|
90 | 55 | ### Kubernetes Filter
|
91 | 56 |
|
92 |
| -Fluent Bit made improvements to Kubernetes Filter handling of stringified `log` |
93 |
| -messages. If the `Merge_Log` option is enabled, it will try to handle the log content |
94 |
| -as a JSON map, if so, it will add the keys to the root map. |
| 57 | +Fluent Bit made improvements to Kubernetes Filter handling of stringified `log` messages. If the `Merge_Log` option is enabled, it will try to handle the log content as a JSON map, if so, it will add the keys to the root map. |
95 | 58 |
|
96 |
| -In addition, fixes and improvements were made to the `Merge_Log_Key` option. If a |
97 |
| -merge log succeed, all new keys will be packaged under the key specified by this |
98 |
| -option. A suggested configuration is as follows: |
| 59 | +In addition, fixes and improvements were made to the `Merge_Log_Key` option. If a merge log succeed, all new keys will be packaged under the key specified by this option. A suggested configuration is as follows: |
99 | 60 |
|
100 |
| -```python |
101 |
| -[FILTER] |
102 |
| - Name Kubernetes |
103 |
| - Match kube.* |
104 |
| - Kube_Tag_Prefix kube.var.log.containers. |
105 |
| - Merge_Log On |
106 |
| - Merge_Log_Key log_processed |
107 |
| -``` |
| 61 | +```python [FILTER] Name Kubernetes Match kube.* Kube_Tag_Prefix kube.var.log.containers. Merge_Log On Merge_Log_Key log_processed ``` |
108 | 62 |
|
109 | 63 | As an example, if the original log content is the following map:
|
110 | 64 |
|
111 |
| -```javascript |
112 |
| -{"key1": "val1", "key2": "val2"} |
113 |
| -``` |
| 65 | +```javascript {"key1": "val1", "key2": "val2"} ``` |
114 | 66 |
|
115 | 67 | the final record will be composed as follows:
|
116 | 68 |
|
117 |
| -```javascript |
118 |
| -{ |
119 |
| - "log": "{\"key1\": \"val1\", \"key2\": \"val2\"}", |
120 |
| - "log_processed": { |
121 |
| - "key1": "val1", |
122 |
| - "key2": "val2" |
123 |
| - } |
124 |
| -} |
125 |
| -``` |
| 69 | +```javascript { "log": "{\"key1\": \"val1\", \"key2\": \"val2\"}", "log_processed": { "key1": "val1", "key2": "val2" } } ``` |
126 | 70 |
|
127 | 71 | ## Fluent Bit v1.1
|
128 | 72 |
|
129 |
| -If you are upgrading from Fluent Bit 1.0.x or earlier, review the following relevant |
130 |
| -changes when switching to Fluent Bit v1.1 or later series: |
| 73 | +If you are upgrading from Fluent Bit 1.0.x or earlier, review the following relevant changes when switching to Fluent Bit v1.1 or later series: |
131 | 74 |
|
132 | 75 | ### Kubernetes filter
|
133 | 76 |
|
134 |
| -Fluent Bit introduced a new configuration property called `Kube_Tag_Prefix` to help |
135 |
| -Tag prefix resolution and address an unexpected behavior in previous versions. |
| 77 | +Fluent Bit introduced a new configuration property called `Kube_Tag_Prefix` to help Tag prefix resolution and address an unexpected behavior in previous versions. |
136 | 78 |
|
137 |
| -During the `1.0.x` release cycle, a commit in the Tail input plugin changed the |
138 |
| -default behavior on how the Tag was composed when using the wildcard for expansion |
139 |
| -generating breaking compatibility with other services. Consider the following |
140 |
| -configuration example: |
| 79 | +During the `1.0.x` release cycle, a commit in the Tail input plugin changed the default behavior on how the Tag was composed when using the wildcard for expansion generating breaking compatibility with other services. Consider the following configuration example: |
141 | 80 |
|
142 |
| -```python |
143 |
| -[INPUT] |
144 |
| - Name tail |
145 |
| - Path /var/log/containers/*.log |
146 |
| - Tag kube.* |
147 |
| -``` |
| 81 | +```python [INPUT] Name tail Path /var/log/containers/*.log Tag kube.* ``` |
148 | 82 |
|
149 | 83 | The expected behavior is that Tag will be expanded to:
|
150 | 84 |
|
151 |
| -```text |
152 |
| -kube.var.log.containers.apache.log |
153 |
| -``` |
| 85 | +```text kube.var.log.containers.apache.log ``` |
154 | 86 |
|
155 |
| -The change introduced in the 1.0 series switched from absolute path to the base |
156 |
| -filename only: |
| 87 | +The change introduced in the 1.0 series switched from absolute path to the base filename only: |
157 | 88 |
|
158 |
| -```text |
159 |
| -kube.apache.log |
160 |
| -``` |
| 89 | +```text kube.apache.log ``` |
161 | 90 |
|
162 |
| -THe Fluent Bit v1.1 release restored the default behavior and now the Tag is |
163 |
| -composed using the absolute path of the monitored file. |
| 91 | +THe Fluent Bit v1.1 release restored the default behavior and now the Tag is composed using the absolute path of the monitored file. |
164 | 92 |
|
165 |
| -Having absolute path in the Tag is relevant for routing and flexible configuration |
166 |
| -where it also helps to keep compatibility with Fluentd behavior. |
| 93 | +Having absolute path in the Tag is relevant for routing and flexible configuration where it also helps to keep compatibility with Fluentd behavior. |
167 | 94 |
|
168 |
| -This behavior switch in Tail input plugin affects how Filter Kubernetes operates. |
169 |
| -When the filter is used it needs to perform local metadata lookup that comes from the |
170 |
| -file names when using Tail as a source. With the new `Kube_Tag_Prefix` option |
171 |
| -you can specify the prefix used in the Tail input plugin. For the previous configuration |
172 |
| -example the new configuration will look like: |
| 95 | +This behavior switch in Tail input plugin affects how Filter Kubernetes operates. When the filter is used it needs to perform local metadata lookup that comes from the file names when using Tail as a source. With the new `Kube_Tag_Prefix` option you can specify the prefix used in the Tail input plugin. For the previous configuration example the new configuration will look like: |
173 | 96 |
|
174 |
| -```python |
175 |
| -[INPUT] |
176 |
| - Name tail |
177 |
| - Path /var/log/containers/*.log |
178 |
| - Tag kube.* |
| 97 | +```python [INPUT] Name tail Path /var/log/containers/*.log Tag kube.* |
179 | 98 |
|
180 |
| -[FILTER] |
181 |
| - Name kubernetes |
182 |
| - Match * |
183 |
| - Kube_Tag_Prefix kube.var.log.containers. |
184 |
| -``` |
| 99 | +[FILTER] Name kubernetes Match * Kube_Tag_Prefix kube.var.log.containers. ``` |
185 | 100 |
|
186 |
| -The proper value for `Kube_Tag_Prefix` must be composed by Tag prefix set in Tail |
187 |
| -input plugin plus the converted monitored directory replacing slashes with dots. |
| 101 | +The proper value for `Kube_Tag_Prefix` must be composed by Tag prefix set in Tail input plugin plus the converted monitored directory replacing slashes with dots. |
0 commit comments