# gofluent **Repository Path**: syk2wly/gofluent ## Basic Information - **Project Name**: gofluent - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-10 - **Last Updated**: 2023-11-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README gofluent ======== [![wercker status](https://app.wercker.com/status/1908429c90a6d7bd437a63210fb1a97f/s "wercker status")](https://app.wercker.com/project/bykey/1908429c90a6d7bd437a63210fb1a97f) This program is something acting like fluentd rewritten in Go. Table of Contents ================= * [Introduction](#introduction) * [Architecture](#architecture) * [Implementation](#implementation) * [Overview](#overview) * [Data flow](#data-flow) * [Plugins](#plugins) * [Tail Input Plugin](#tail-input-plugin) * [Httpsqs Output Plugin](#httpsqs-output-plugin) * [Stdout Output Plugin](#stdout-output-plugin) * [Mongodb Output Plugin](#mongodb-output-plugin) Introduction ============ Fluentd is originally written in CRuby, which has too many dependecies. I hope fluentd to be simpler and cleaner, as its main feature is simplicity and rubostness. Architecture ============ ``` +---------+ +---------+ +---------+ +---------+ | server1 | | server2 | | server3 | | serverN | |---------| |---------| |---------| |---------| | | | | | | | | |---------| |---------| |---------| |---------| |gofluent | |gofluent | |gofluent | |gofluent | +---------+ +---------+ +---------+ +---------+ | | | | ----------------------------------------------- | | HTTP POST V +-----------------+ | | | Httpmq | | | +-----------------+ | | HTTP GET V +-----------------+ +-----------------+ | | | | | Preprocessor | --------------> | Storage | | | | | +-----------------+ +-----------------+ ``` Implementation ============== Overview -------- ``` Input -> Router -> Output ``` Data flow --------- ``` -------<-------- | | V | generate pool InputRunner.inputRecycleChan | recycling | | | ^ | ------->------- \ | ^ ^ \ InputRunner.inChan | | \ | | | \ | | | \ consume | | | \ V | | \ Input(Router.inChan) ----> Router ----> (Router.outChan)Output.inChan ``` Plugins ======= Tail Input Plugin ----------------- The in_tail input plugin allows gofluent to read events from the tail of text files. Its behavior is similar to the tail -F command. Example Configuration in_tail is included in gofluent’s core. No additional installation process is required. ``` type tail path /var/log/httpd-access.log pos_file /var/log/httpd-access.log.pos tag apache.access format /^(?P[^ ]*) [^ ]* (?P[^ ]*) \[(?P