Giter VIP home page Giter VIP logo

fluent-bit-docs's Introduction

description
High Performance Telemetry Agent for Logs, Metrics and Traces

Fluent Bit v3.0 Documentation

Fluent Bit is a Fast and Lightweight Telemetry Agent for Logs, Metrics, and Traces for Linux, macOS, Windows, and BSD family operating systems. It has been made with a strong focus on performance to allow the collection and processing of telemetry data from different sources without complexity.

Features

  • High Performance: High throughput with low resources consumption
  • Data Parsing
  • Metrics Support: Prometheus and OpenTelemetry compatible
  • Reliability and Data Integrity
  • Networking
    • Security: built-in TLS/SSL support
    • Asynchronous I/O
  • Pluggable Architecture and Extensibility: Inputs, Filters and Outputs
  • Monitoring: expose internal metrics over HTTP in JSON and Prometheus format
  • Stream Processing: Perform data selection and transformation using simple SQL queries
    • Create new streams of data using query results
    • Aggregation Windows
    • Data analysis and prediction: Timeseries forecasting
  • Portable: runs on Linux, macOS, Windows and BSD systems

Fluent Bit, Fluentd and CNCF

Fluent Bit is a CNCF graduated sub-project under the umbrella of Fluentd. Fluent Bit is licensed under the terms of the Apache License v2.0.

Fluent Bit was originally created by Eduardo Silva. As a CNCF-hosted project, it is a fully vendor-neutral and community-driven project.

fluent-bit-docs's People

Contributors

agup006 avatar alexakreizinger avatar claych avatar cnorris-cs avatar cosmo0920 avatar dependabot[bot] avatar donbowman avatar drewzhang13 avatar edsiper avatar elenacbc avatar fluent-bot avatar franciscovalentecastro avatar fujimotos avatar ialidzhikov avatar jeffluoo avatar l2dy avatar lecaros avatar leonardo-albertovich avatar matthewfala avatar michiel avatar mickeypash avatar nigels-com avatar nokute78 avatar patrick-stephens avatar pettitwesley avatar pwhelan avatar ricardoaad avatar ryanohnemus avatar youssefrizkalla avatar zhonghui12 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fluent-bit-docs's Issues

detail on how the fields are being written into the output plugin and how to add or modify one

If we talk specifically about systemd as input plugin and es as ouput pluging. Below are all the fields that being written to the elastic search cluster

@timestamp
CONTAINER_ID
CONTAINER_ID_FULL
CONTAINER_NAME
CONTAINER_TAG
MESSAGE
PRIORITY
_BOOT_ID
_CAP_EFFECTIVE
_CMDLINE
_COMM
_EXE
_GID
_HOSTNAME
_MACHINE_ID
_PID
_SELINUX_CONTEXT
_SOURCE_REALTIME_TIMESTAMP
_SYSTEMD_CGROUP
_TRANSPORT
_UID
_id
_index
_score
_type

among the fields above below are all the fields that are being generated by journald itself

CONTAINER_ID
CONTAINER_ID_FULL
CONTAINER_NAME
CONTAINER_TAG
MESSAGE

Now my suggestion is to have more details on how the other fields are being generated and how can be add or modify one, and we should have it documented on the docs somewhere.

Fluent-bit dns usage question

Hi, can you give some light on dns resolving question.
We have a fluentd with dns name like fluentd.our.domain (ip x.x.x.x). this dns name is set in fluent-bit config, so everything works flawlessly.
Now we want to switch ip to a new one. do we have to restart fluent-bit in order to re-resolve to new ip or it will just resolve as soon as the dns will propagate changes? Or does it take system-wide resolving info?

td-agent-bit default parsers is broken

The default parsers.conf available in /etc/td-agent-bit/ now contains a new entry crio which fails validation.

Starting td-agent-bit with the following params throws an error:

/opt/td-agent-bit/bin/td-agent-bit -c fluentbit.conf -R /etc/td-agent-bit/parsers.conf
[2018/07/30 07:11:31] [error] [parser:crio] Invalid format Regex

Ubuntu Package File Placement

I didn't find a proper repo for the fluent-bit ubuntu package (td-agent-bit), so posting here.

Packages (debian and ubuntu atleast, but probably other distros too), should not install stuff in /opt.

Instead /usr/share, /usr/lib, /usr/bin etc should be used. It would be great if the td-agent and td-agent-bit packages would adhere to this principle.

dpkg-query -L td-agent-bit will list the current install locations. Can also be used to understand where other packages are storing their files.

Config option Mem_Buf_Limit should be documented for systemd input

We experienced situations where fluent-bit OOM'd with the systemd input plugin due to lots of data in the systemd journal.
When we looked at the code for fluent-bit we noticed that the systemd plugin supports the Mem_Buf_Limit option, but it is not documented.
Adding Mem_Buf_Limit with appropriate value to our fluent-bit config solved our OOM problems.

Any reasons this option has been left out of the systemd plugin docs?

grep filter does not seem to work

I have included the following in the conf file

[FILTER]
    Name         grep
    Match        *
    Exclude      log [0-9]*\(space)
    Exclude      log 2019

The filter does not seem to do anything. It passes everything through. What is the right way to use the grep filter. Does it support standard regex patterns or a specific set of custom regex?

Standardize and improve documentation of plugins

Take the Regex parser for example.

There's no list of all the possible parameters (aka, settings). There should be.

The plugins that do have full lists do not indicate in a separate column which parameters are required and which are optional. Docs should have that.

Documentation fails to say what happens if a Regex doesn't match. Is the record dropped? Is it kept under a certain key? Something else entirely? Who knows?

Location of configuration file is unclear.

The section which describes the configuration file omits the following important information -

  • Where the configuration file is located
  • How to specify a non-default location to the fluent-bit executable

Variables not working on parsers.conf

Hi everyone,

Is this configuration supposed to work?

/fluent-bit/etc/parsers.conf

[PARSER]
    Name my_parser`
    Format regex`
    Regex ${MY_REGEX}

I'm trying to inject the regex via environment variable but it does not seem to work.

export MY_REGEX='^(?<dummy>.+)$'
/fluent-bit/bin/fluent-bit -R /fluent-bit/etc/parsers.conf -i forward -F parser -p 'Match=*' -p 'Key_Name=log' -p 'Parser=my_parser' -o stdout -p 'Match=*'

If I hardcode the regex the parser works just fine:

[PARSER]
    Name my_parser
    Format regex
    Regex ^(?<dummy>.+)$

Thanks in advance.

deprecated pluing

in_xbee is deprecated from v0.12.
So how do we treat in_xbee?

  • remove all documents
  • or, add caution to headline of in_xbee. (DEPRECATED or something)

Unit Tests documentation is out of date

When I was trying to write my own unit test I found that the unit test documentation is out of date.
First I had to set -DFLB_TESTS_RUNTIME=ON instead of -DFLB_TESTS=ON and after that, I had to run make before entering make test because the binaries were missing

Monitoring page doesn't contain a description of what each number means

The page about monitoring https://github.com/fluent/fluent-bit-docs/blob/master/configuration/monitoring.md contains information about how to access the metrics, but it doesn't explain what each of the numbers actually means.

For some of them, it is fairly obvious (e.g. input record count). I got a bit confused about the output metrics though. The errors and retries I assume have the same meaning as https://github.com/fluent/fluent-bit-docs/blob/master/configuration/scheduler.md (would be nice if this page was linked from the metrics page).

What is fluentbit_output_retries_total though? Number of all retries, or just successful retries (given that there is a separate number for failed retries)? What about fluentbit_output_proc_records_total? Does it include the records that were not successfully delivered?

Does the number of failed retries mean number of records for which the retry limit was reached, or is it the number of the individual retry attemps that have failed? Is there some way to see or calculate the total number of undelivered (given up on) records?

The monitoring page doesn't answer any of these questions.

Missing Param

The following parameter is supported (and quite usefull) but not documented

Parser | Specify the name of a parser to interpret the entry as a structured message

No documentation on output:firehose

Docker image:
FROM fluent/fluent-bit:1.2-debug

output:
[OUTPUT]
Name firehose
Match *
delivery_stream stream-name
region us-east-1

Now I'm not complaining that it works, it works to transmit, just that i need extra configuration and there's no documentation on what the output params are.

tail logrotate copytruncate documentation

From discussions in fluent/fluent-bit#375, it seems that tail has worked with logrotate copytruncate option with fluent-bit version 0.12.15

The current documentation (https://docs.fluentbit.io/manual/v/1.2/input/tail, accessed on 2019-06-28 17:21:52 ET) seems to indicate that logrotate copytruncate mode is not supported.

I could not find any mention of trunc in the release announcements since 0.12.16:

for v in v0.12.{16..19} v0.13.{0..8} v0.14.{0..9} v.1.0.{0..6} v1.1.{0..3} v.1.2.0; do 
    curl -s https://fluentbit.io/announcements/$v/ | grep trunc ; 
done

git log -p input/tail.md seems to indicate that the copytruncate line has never been updated to reflect that it was supported with version v0.12.15.

If logrotate copytruncate is supported now, may we update the documentation?

https://fluentbit.io/ Certificate Expiry

The certificate for fluentbit.io has expired. Please consider automating renewal.

/tmp » date                                                                                      /tmp  
Mon 10 Dec 2018 06:12:55 GMT
/tmp » openssl s_client -connect packages.fluentbit.io:443 -showcerts                            /tmp  
CONNECTED(00000005)
depth=2 O = Digital Signature Trust Co., CN = DST Root CA X3
verify return:1
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify return:1
depth=0 CN = fluentbit.io
verify error:num=10:certificate has expired
notAfter=Dec 10 03:18:55 2018 GMT
verify return:1
depth=0 CN = fluentbit.io
notAfter=Dec 10 03:18:55 2018 GMT
verify return:1

Conditionally disable plugin

Is it possible to disable/enable the tail plugin based on an evironment varibale or an other setting?
I want to be do this for the tail plugin to customize the log tailing.

Point propper repo for ver 1.0

I've used repo "https://packages.fluentbit.io/ubuntu/xenial xenial main" and expect version v1.0 but it was installed v0.14.9

`
root@jenkins:/tmp# service td-agent-bit status
● td-agent-bit.service - TD Agent Bit
Loaded: loaded (/lib/systemd/system/td-agent-bit.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2018-12-14 04:22:38 PST; 5min ago
Main PID: 44848 (td-agent-bit)
CGroup: /system.slice/td-agent-bit.service
└─44848 /opt/td-agent-bit/bin/td-agent-bit -c /etc//td-agent-bit/td-agent-bit.conf

Dec 14 04:22:38 jenkins systemd[1]: Started TD Agent Bit.
Dec 14 04:22:38 jenkins td-agent-bit[44848]: Fluent-Bit v0.14.9
Dec 14 04:22:38 jenkins td-agent-bit[44848]: Copyright (C) Treasure Data
Dec 14 04:22:38 jenkins td-agent-bit[44848]: [2018/12/14 04:22:38] [ info] [engine] started (pid=44848)
Dec 14 04:22:38 jenkins td-agent-bit[44848]: [2018/12/14 04:22:38] [ info] [in_syslog] UDP buffer size set to 32768 bytes
root@jenkins:/tmp#
`

Config_Watch documented but seems unimplemented

On the service documentation page there is a documented option Config_Watch that does not appear to work from my testing. It does appear to be a requested option though as I know I would love it for watching kubernetes configmap changes: fluent/fluent-bit#365

I did a bit of research and while my C isn't very good, I don't think that this config value is actually defined or implemented in the code: https://github.com/fluent/fluent-bit/blob/master/src/flb_config.c

I assume this should be removed, but I'm not familiar enough with the project to know for sure.

Output template format can't show the original content

I collect verbose log and want to write in to a file. Default(out_file) and plain format work for me, but I don't want to change the format(no tag and timestamp). I try to use template format. However, it cannot show the original content.

My config of output part:

[OUTPUT]
    Name file
    Format template 
    #Template {message} (default: '{time} {message}')
    Path result.txt

result.txt

1573528176.966284 {message}
1573528176.966291 {message}
1573528176.966298 {message}
1573528176.966305 {message}
1573528176.966311 {message}

[2020/02/10 01:24:27] [error] [src/flb_config.c:128 errno=12] Cannot allocate memory

[root@k8s-master src]# docker run -ti fluent/fluent-bit:1.3 /fluent-bit/bin/fluent-bit -i cpu -o stdout -f 1
: Unsupported system page size
: Unsupported system page size
: Unsupported system page size
: Unsupported system page size
: Unsupported system page size
[2020/02/10 01:24:27] [error] [src/flb_config.c:128 errno=12] Cannot allocate memory

[root@k8s-master src]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (AltArch)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.