MCPcopy Index your code
hub / github.com/cosmo0920/fluent-bit-go-s3

github.com/cosmo0920/fluent-bit-go-s3 @v0.7.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.7.2 ↗ · + Follow
89 symbols 193 edges 5 files 10 documented · 11%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

fluent-bit s3 output plugin

Build Status Build status

Windows binaries are available in release pages.

This plugin works with fluent-bit's go plugin interface. You can use fluent-bit-go-s3 to ship logs into AWS S3.

The configuration typically looks like:

fluent-bit --> AWS S3

Usage

$ fluent-bit -e /path/to/built/out_s3.so -c fluent-bit.conf

Or,

$ docker build . -t fluent-bit/s3-plugin

and then, specify configuration parameters as environment variables:

$ docker run -it -e="FLUENT_BIT_ACCESS_KEY_ID=yourawsaccesskey" \
                 -e="FLUENT_BIT_SECRET_ACCESS_KEY=yourawsaccesssecret" \
                 -e="FLUENT_BIT_BUCKET_NAME=yourbucketname" \
                 -e="FLUENT_BIT_S3_PREFIX=yours3prefix" \
                 -e="FLUENT_BIT_REGION=awsregion" \
                 fluent-bit/s3-plugin

Using docker image from docker hub.

$ docker pull cosmo0920/fluent-bit-go-s3:latest

Other released images are available in DockerHub's fluent-bit-go-s3 image tags.

Or, using helm:

helm install [YOURRELEASENAME] ./helm/fluent-bit

Prerequisites

  • Go 1.11+
  • gcc (for cgo)
  • make

Building

$ make

Configuration Options

Key Description Default value Note
Credential URI of AWS shared credential "" (See Credentials)
AccessKeyID Access key ID of AWS "" (See Credentials)
SecretAccessKey Secret access key ID of AWS "" (See Credentials)
Bucket Bucket name of S3 storage - Mandatory parameter
S3Prefix S3Prefix of S3 key - Mandatory parameter
SuffixAlgorithm Algorithm for naming S3 object suffix "" sha256 or no suffix("")
Region Region of S3 - Mandatory parameter
Compress Choose Compress method "" gzip or plainText("")
Endpoint Specify the endpoint URL "" URL with port or empty string
AutoCreateBucket Create bucket automatically false true/false
LogLevel Specify Log Level "info" trace/debug/info/warning/error/fatal/panic
TimeFormat Time format to add to the S3 path "20060102/15" Specify in Go's Time Format
TimeZone Specify TimeZone "" Specify TZInfo based region. e.g.) Asia/Tokyo

Example:

Add this section to fluent-bit.conf:

[Output]
    Name s3
    Match *
    # Credential    /path/to/sharedcredentialfile
    AccessKeyID     yourawsaccesskeyid
    SecretAccessKey yourawssecretaccesskey
    Bucket          yourbucketname
    S3Prefix yours3prefixname
    SuffixAlgorithm sha256
    Region us-east-1
    Compress gzip
    # Endpoint parameter is mainly used for minio.
    # Endpoint http://localhost:9000
    # TimeFormat 20060102/15
    # TimeZone Asia/Tokyo

Credentials

By default AWS credentials are loaded from their usual providers. See AWS CLI Configuration and Credential File Settings.

If the default credentials are not desired, this plugin supports the following credential providers.

Shared Credentials

Create the following file which includes credentials:

[default]
aws_access_key_id = YOUR_AWS_ACCESS_KEY_ID
aws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY

Then, specify the following parameter in fluent-bit configuration:

Credential    /path/to/sharedcredentialfile

Static Credentials

Specify the following parameters in fluent-bit configuration:

AccessKeyID     yourawsaccesskeyid
SecretAccessKey yourawssecretaccesskey

Useful links

Extension points exported contracts — how you extend this code

GoOutputPlugin (Interface)
(no doc) [2 implementers]
out_s3.go
S3Credential (Interface)
(no doc) [2 implementers]
s3.go
GoPluginContext (Interface)
(no doc) [2 implementers]
out_s3.go

Core symbols most depended-on inside this repo

PluginConfigKey
called by 13
out_s3.go
getS3Config
called by 11
s3.go
GenerateObjectKey
called by 8
out_s3.go
createJSON
called by 3
out_s3.go
GetRecord
called by 2
out_s3.go
NewDecoder
called by 2
out_s3.go
Exit
called by 2
out_s3.go
makeGzip
called by 2
out_s3.go

Shape

Function 41
Method 31
Struct 12
Interface 3
TypeAlias 2

Languages

Go100%

Modules by API surface

out_s3.go38 symbols
out_s3_test.go33 symbols
s3_test.go8 symbols
s3.go8 symbols
formatter.go2 symbols

For agents

$ claude mcp add fluent-bit-go-s3 \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page