fluent

package
v0.0.0-...-c2d80dc Latest Latest
Warning

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

Go to latest
Published: Dec 27, 2022 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const Version = "1.9.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"`
	AsyncResultCallback func(data []byte, err error)
	// Deprecated: Use Async instead
	AsyncConnect  bool `json:"async_connect"`
	MarshalAsJSON bool `json:"marshal_as_json"`
	//Skips loggertag and timestamp from logging
	MarshalAsRawJSON bool `json:"marshal_as_rawjson"`

	// AsyncReconnectInterval defines the interval (ms) at which the connection
	// to the fluentd-address is re-established. This option is useful if the address
	// may resolve to one or more IP addresses, e.g. a Consul service address.
	AsyncReconnectInterval int `json:"async_reconnect_interval"`

	// 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"`

	// Flag to skip verifying insecure certs on TLS connections
	TlsInsecureSkipVerify bool `json: "tls_insecure_skip_verify"`
}

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. If the client is running in async mode, the run() goroutine exits before Close() returns.

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