fluent

package
v1.5.1-0...-3fe534f Latest Latest
Warning

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

Go to latest
Published: Sep 22, 2020 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const Version = "1.4.0"

Variables

This section is empty.

Functions

func NewErrUnknownNetwork

func NewErrUnknownNetwork(network string) error

Types

type AckResp

type AckResp struct {
	Ack string `json:"ack" msg:"ack"`
}

func (*AckResp) DecodeMsg

func (z *AckResp) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (AckResp) EncodeMsg

func (z AckResp) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (AckResp) MarshalMsg

func (z AckResp) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (AckResp) Msgsize

func (z AckResp) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*AckResp) UnmarshalMsg

func (z *AckResp) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type Config

type Config struct {
	FluentPort         int           `json:"fluent_port"`
	FluentHost         string        `json:"fluent_host"`
	FluentNetwork      string        `json:"fluent_network"`
	FluentSocketPath   string        `json:"fluent_socket_path"`
	Timeout            time.Duration `json:"timeout"`
	WriteTimeout       time.Duration `json:"write_timeout"`
	BufferLimit        int           `json:"buffer_limit"`
	RetryWait          int           `json:"retry_wait"`
	MaxRetry           int           `json:"max_retry"`
	MaxRetryWait       int           `json:"max_retry_wait"`
	TagPrefix          string        `json:"tag_prefix"`
	Async              bool          `json:"async"`
	ForceStopAsyncSend bool          `json:"force_stop_async_send"`
	// Deprecated: Use Async instead
	AsyncConnect  bool `json:"async_connect"`
	MarshalAsJSON bool `json:"marshal_as_json"`

	// Sub-second precision timestamps are only possible for those using fluentd
	// v0.14+ and serializing their messages with msgpack.
	SubSecondPrecision bool `json:"sub_second_precision"`

	// RequestAck sends the chunk option with a unique ID. The server will
	// respond with an acknowledgement. This option improves the reliability
	// of the message transmission.
	RequestAck bool `json:"request_ack"`
}

type Entry

type Entry struct {
	Time   int64       `msg:"time"`
	Record interface{} `msg:"record"`
}

func (*Entry) DecodeMsg

func (z *Entry) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (Entry) EncodeMsg

func (z Entry) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (Entry) MarshalMsg

func (z Entry) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (Entry) Msgsize

func (z Entry) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*Entry) UnmarshalMsg

func (z *Entry) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type ErrUnknownNetwork

type ErrUnknownNetwork struct {
	// contains filtered or unexported fields
}

func (*ErrUnknownNetwork) Error

func (e *ErrUnknownNetwork) Error() string

type EventTime

type EventTime time.Time

EventTime is an extension to the serialized time value. It builds in support for sub-second (nanosecond) precision in serialized timestamps.

You can find the full specification for the msgpack message payload here: https://github.com/fluent/fluentd/wiki/Forward-Protocol-Specification-v1.

You can find more information on msgpack extension types here: https://github.com/tinylib/msgp/wiki/Using-Extensions.

func (*EventTime) ExtensionType

func (t *EventTime) ExtensionType() int8

func (*EventTime) Len

func (t *EventTime) Len() int

func (*EventTime) MarshalBinaryTo

func (t *EventTime) MarshalBinaryTo(b []byte) error

func (*EventTime) UnmarshalBinary

func (t *EventTime) UnmarshalBinary(b []byte) error

Although decoding messages is not officially supported by this library, UnmarshalBinary is implemented for testing and general completeness.

type Fluent

type Fluent struct {
	Config
	// contains filtered or unexported fields
}

func New

func New(config Config) (*Fluent, error)

New creates a new Logger.

func (*Fluent) Close

func (f *Fluent) Close() (err error)

Close closes the connection, waiting for pending logs to be sent

func (*Fluent) EncodeAndPostData

func (f *Fluent) EncodeAndPostData(tag string, tm time.Time, message interface{}) error

func (*Fluent) EncodeData

func (f *Fluent) EncodeData(tag string, tm time.Time, message interface{}) (msg *msgToSend, err error)

func (*Fluent) Post

func (f *Fluent) Post(tag string, message interface{}) error

Post writes the output for a logging event.

Examples:

// send map[string]
mapStringData := map[string]string{
	"foo":  "bar",
}
f.Post("tag_name", mapStringData)

// send message with specified time
mapStringData := map[string]string{
	"foo":  "bar",
}
tm := time.Now()
f.PostWithTime("tag_name", tm, mapStringData)

// send struct
structData := struct {
		Name string `msg:"name"`
} {
		"john smith",
}
f.Post("tag_name", structData)

func (*Fluent) PostRawData deprecated

func (f *Fluent) PostRawData(msg *msgToSend)

Deprecated: Use EncodeAndPostData instead

func (*Fluent) PostWithTime

func (f *Fluent) PostWithTime(tag string, tm time.Time, message interface{}) error

type Forward

type Forward struct {
	Tag     string  `msg:"tag"`
	Entries []Entry `msg:"entries"`
	Option  map[string]string
}

func (*Forward) DecodeMsg

func (z *Forward) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (*Forward) EncodeMsg

func (z *Forward) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (*Forward) MarshalMsg

func (z *Forward) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (*Forward) Msgsize

func (z *Forward) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*Forward) UnmarshalMsg

func (z *Forward) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type Message

type Message struct {
	Tag    string      `msg:"tag"`
	Time   int64       `msg:"time"`
	Record interface{} `msg:"record"`
	Option map[string]string
}

func (*Message) DecodeMsg

func (z *Message) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (*Message) EncodeMsg

func (z *Message) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (*Message) MarshalMsg

func (z *Message) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (*Message) Msgsize

func (z *Message) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*Message) UnmarshalMsg

func (z *Message) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type MessageChunk

type MessageChunk struct {
	// contains filtered or unexported fields
}

For sending forward protocol adopted JSON

func (*MessageChunk) MarshalJSON

func (chunk *MessageChunk) MarshalJSON() ([]byte, error)

Golang default marshaler does not support ["value", "value2", {"key":"value"}] style marshaling. So, it should write JSON marshaler by hand.

type MessageExt

type MessageExt struct {
	Tag    string      `msg:"tag"`
	Time   EventTime   `msg:"time,extension"`
	Record interface{} `msg:"record"`
	Option map[string]string
}

func (*MessageExt) DecodeMsg

func (z *MessageExt) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (*MessageExt) EncodeMsg

func (z *MessageExt) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (*MessageExt) MarshalMsg

func (z *MessageExt) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (*MessageExt) Msgsize

func (z *MessageExt) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*MessageExt) UnmarshalMsg

func (z *MessageExt) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

type TestMessage

type TestMessage struct {
	Foo  string `msg:"foo" json:"foo,omitempty"`
	Hoge string `msg:"hoge" json:"hoge,omitempty"`
}

func (*TestMessage) DecodeMsg

func (z *TestMessage) DecodeMsg(dc *msgp.Reader) (err error)

DecodeMsg implements msgp.Decodable

func (TestMessage) EncodeMsg

func (z TestMessage) EncodeMsg(en *msgp.Writer) (err error)

EncodeMsg implements msgp.Encodable

func (TestMessage) MarshalMsg

func (z TestMessage) MarshalMsg(b []byte) (o []byte, err error)

MarshalMsg implements msgp.Marshaler

func (TestMessage) Msgsize

func (z TestMessage) Msgsize() (s int)

Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message

func (*TestMessage) UnmarshalMsg

func (z *TestMessage) UnmarshalMsg(bts []byte) (o []byte, err error)

UnmarshalMsg implements msgp.Unmarshaler

Jump to

Keyboard shortcuts

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