loglet

package module
v0.0.0-...-9527ba3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 10, 2017 License: BSD-3-Clause Imports: 20 Imported by: 0

README

loglet

loglet

loglet is a small program for forwarding journald log entries to kafka.

It has the following main aspirations:

  • be a good citizen in a systemd/journald world
  • have no external dependencies other than kafka
  • be resilient to network outages
  • leverage structured log data when available
  • integrate well with container management systems like ECS and kubernetes

Installing

$ go get github.com/uswitch/loglet/cmd/loglet

Usage

See loglet --help for up to date usage instructions.

Authors

License

Copyright (c) 2016, uSwitch 
All rights reserved. 

Redistribution and use in source and binary forms, with or without 
modification, are permitted provided that the following conditions are met: 

 * Redistributions of source code must retain the above copyright notice, 
   this list of conditions and the following disclaimer. 
 * Redistributions in binary form must reproduce the above copyright 
   notice, this list of conditions and the following disclaimer in the 
   documentation and/or other materials provided with the distribution. 
 * Neither the name of uSwitch nor the names of its contributors may be 
   used to endorse or promote products derived from this software without 
   specific prior written permission. 

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
POSSIBILITY OF SUCH DAMAGE. 

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewCursorCommitter

func NewCursorCommitter(state CursorState, cursors <-chan string, done <-chan struct{}) *cursorCommitter

func Run

func Run(loglet *options.Loglet) error

Types

type CursorCommitter

type CursorCommitter interface {
	Ret() <-chan error
}

type CursorState

type CursorState interface {
	Cursor() (string, error)
	Commit(cursor string) error
}

func NewCursorState

func NewCursorState(filename string) CursorState

type EncodedMessage

type EncodedMessage struct {
	Cursor  string
	Message []byte
}

type JournalEntry

type JournalEntry struct {
	Cursor string
	Fields map[string]string
}

type JournalEntryFilter

type JournalEntryFilter interface {
	Ret() <-chan error
	Entries() <-chan *JournalEntry
}

func NewJournalEntryFilter

func NewJournalEntryFilter(loglet *options.Loglet, unfilteredEntries <-chan *JournalEntry, done <-chan struct{}) (JournalEntryFilter, error)

type JournalEntryTransformer

type JournalEntryTransformer interface {
	Ret() <-chan error
	Messages() <-chan *EncodedMessage
}

func NewJournalEntryTransformer

func NewJournalEntryTransformer(loglet *options.Loglet, entries <-chan *JournalEntry, done <-chan struct{}) JournalEntryTransformer

type JournalFollower

type JournalFollower interface {
	Ret() <-chan error
	Entries() <-chan *JournalEntry
}

func NewJournalFollower

func NewJournalFollower(cursor string, done <-chan struct{}) JournalFollower

type Publisher

type Publisher interface {
	Ret() <-chan error
	Published() <-chan string
}

func NewKafkaPublisher

func NewKafkaPublisher(loglet *options.Loglet, msgs <-chan *EncodedMessage, done <-chan struct{}) (Publisher, error)

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL