Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[aws-for-fluent-bit] Add helm chart high performance kinesis stream plugin #951

Merged
merged 18 commits into from
Jul 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion stable/aws-for-fluent-bit/Chart.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
apiVersion: v1
name: aws-for-fluent-bit
description: A Helm chart to deploy aws-for-fluent-bit project
version: 0.1.27
version: 0.1.28
appVersion: 2.31.11
home: https://github.com/aws/eks-charts
icon: https://raw.githubusercontent.com/aws/eks-charts/master/docs/logo/aws.png
Expand Down
11 changes: 11 additions & 0 deletions stable/aws-for-fluent-bit/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,17 @@ helm delete aws-for-fluent-bit --namespace kube-system
| `firehose.timeKey` | Add the timestamp to the record under this key. By default the timestamp from Fluent Bit will not be added to records sent to Kinesis. | |
| `firehose.timeKeyFormat` | strftime compliant format string for the timestamp; for example, `%Y-%m-%dT%H:%M:%S%z`. This option is used with `time_key`. | |
| `firehose.extraOutputs` | Append extra outputs with value | `""` |
| `kinesis_streams.enabled` | It has all the core features of the [documentation](https://github.com/aws/amazon-kinesis-streams-for-fluent-bit) Golang Fluent Bit plugin released in 2019. The Golang plugin was named `kinesis`; this new high performance and highly efficient kinesis plugin is called `kinesis_streams` to prevent conflicts/confusion, [details](https://docs.fluentbit.io/manual/pipeline/outputs/kinesis) | `false` | ✔
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This reads a bit awkward. I'd do:

"Enable the high performance kinesis plugin; it has all the core features of the Golang Fluent Bit plugin..

| `kinesis_streams.region` | The AWS region. | ✔
| `kinesis_streams.stream` | The name of the Kinesis Streams Delivery Stream that you want log records send to. | ✔
| `kinesis_streams.endpoint` | Specify a custom endpoint for the Kinesis Streams API. | |
| `kinesis_streams.role_arn` | ARN of an IAM role to assume (for cross account access). | |
| `kinesis_streams.sts_endpoint` | Custom endpoint for the STS API. | |
| `kinesis_streams.time_key` | Add the timestamp to the record under this key. By default the timestamp from Fluent Bit will not be added to records sent to Kinesis. | |
| `kinesis_streams.time_key_format` | strftime compliant format string for the timestamp; for example, the default is `%Y-%m-%dT%H:%M:%S`. Supports millisecond precision with `%3N` and supports nanosecond precision with `%9N` and `%L`; for example, adding `%3N` to support millisecond `%Y-%m-%dT%H:%M:%S.%3N`. This option is used with `time_key`. | |
| `kinesis_streams.log_key` | By default, the whole log record will be sent to Kinesis. If you specify a key name with this option, then only the value of that key will be sent to Kinesis. For example, if you are using the Fluentd Docker log driver, you can specify `log_key log` and only the log message will be sent to Kinesis. | |
| `kinesis_streams.auto_retry_requests` | Immediately retry failed requests to AWS services once. This option does not affect the normal Fluent Bit retry mechanism with backoff. Instead, it enables an immediate retry with no delay for networking errors, which may help improve throughput when there are transient/random networking issues. This option defaults to `true`. | |
| `kinesis_streams.external_id` | Specify an external ID for the STS API, can be used with the role_arn parameter if your role requries an external ID. | |
| `kinesis.enabled` | Whether this plugin should be enabled or not, [details](https://github.com/aws/amazon-kinesis-streams-for-fluent-bit) | `false` | ✔
| `kinesis.match` | The log filter | `"*"` | ✔
| `kinesis.region` | The region which your Kinesis Data Stream is in. | `"us-east-1"` | ✔
Expand Down
32 changes: 32 additions & 0 deletions stable/aws-for-fluent-bit/templates/configmap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,38 @@ data:
{{- end }}
{{- end }}

{{- if .Values.kinesis_streams.enabled }}
[OUTPUT]
Name kinesis_streams
Match {{ .Values.kinesis_streams.match }}
region {{ .Values.kinesis_streams.region }}
stream {{ .Values.kinesis_streams.stream }}
{{- if .Values.kinesis_streams.role_arn }}
role_arn {{ .Values.kinesis_streams.role_arn }}
{{- end }}
{{- if .Values.kinesis_streams.endpoint }}
endpoint {{ .Values.kinesis_streams.endpoint }}
{{- end }}
{{- if .Values.kinesis_streams.sts_endpoint }}
sts_endpoint {{ .Values.kinesis_streams.sts_endpoint }}
{{- end }}
{{- if .Values.kinesis_streams.time_key }}
time_key {{ .Values.kinesis_streams.time_key }}
{{- end }}
{{- if .Values.kinesis_streams.time_key_format }}
time_key_format {{ .Values.kinesis_streams.time_key_format }}
{{- end }}
{{- if .Values.kinesis_streams.external_id }}
time_key_format {{ .Values.kinesis_streams.external_id }}
{{- end }}
{{- if .Values.kinesis_streams.auto_retry_requests }}
time_key_format {{ .Values.kinesis_streams.auto_retry_requests }}
{{- end }}
{{- if .Values.kinesis_streames.log_key }}
log_key {{ .Values.kinesis_streams.log_key }}
{{- end }}
{{- end }}

{{- if .Values.elasticsearch.enabled }}
[OUTPUT]
Name es
Expand Down
14 changes: 14 additions & 0 deletions stable/aws-for-fluent-bit/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,20 @@ kinesis:
# extraOutputs: |
# ...

kinesis_streams:
enabled: false
match: "*"
region: "us-east-1"
stream: "my-kinesis-stream-name"
role_arn:
endpoint:
sts_endpoint:
time_key:
time_key_format:
external_id:
auto_retry_requests:
log_key:

elasticsearch:
enabled: false
match: "*"
Expand Down