v2

package
v2.1.1+incompatible Latest Latest
Warning

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

Go to latest
Published: Jun 7, 2017 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package v2 provides a client to send data to the Loggregator v2 API.

The v2 API distinguishes itself from the v1 API on three counts:

1) it uses gRPC, 2) it uses a streaming connection, and 3) it supports batching to improve performance.

The code here provides a generic interface into the v2 API. Clients who prefer more fine grained control may generate their own code using the protobuf and gRPC service definitions found at: github.com/cloudfoundry/loggregator-api.

Note that on account of the client using batching wherein multiple messages may be sent at once, there is no meaningful error return value available. Each of the methods below make a best-effort at message delivery. Even in the event of a failed send, the client will not block callers.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewTLSConfig

func NewTLSConfig(caPath, certPath, keyPath string) (*tls.Config, error)

NewTLSConfig provides a convenient means for creating a *tls.Config which uses the CA, cert, and key.

func WithEnvelopeDecimalTag

func WithEnvelopeDecimalTag(name string, value float64) func(*loggregator_v2.Envelope)

WithEnvelopeDecimalTag adds a decimal tag to the envelope.

func WithEnvelopeIntegerTag

func WithEnvelopeIntegerTag(name string, value int64) func(*loggregator_v2.Envelope)

WithEnvelopeIntegerTag adds a integer tag to the envelope.

func WithEnvelopeStringTag

func WithEnvelopeStringTag(name, value string) func(*loggregator_v2.Envelope)

WithEnvelopeStringTag adds a string tag to the envelope.

Types

type Client

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

Client represents an emitter into loggregator. It should be created with the NewClient constructor.

func NewClient

func NewClient(tlsConfig *tls.Config, opts ...Option) (*Client, error)

NewClient creates a v2 loggregator client. Its TLS configuration must share a CA with the loggregator server.

func (*Client) EmitCounter

func (c *Client) EmitCounter(name string, opts ...EmitCounterOption)

EmitCounter sends a counter envelope with a delta of 1.

func (*Client) EmitGauge

func (c *Client) EmitGauge(opts ...EmitGaugeOption)

EmitGauge sends the configured gauge values to loggregator. If no EmitGaugeOption values are present, the client will emit an empty gauge.

func (*Client) EmitLog

func (c *Client) EmitLog(message string, opts ...EmitLogOption)

EmitLog sends a message to loggregator.

type EmitCounterOption

type EmitCounterOption func(*loggregator_v2.Envelope)

EmitCounterOption is the option type passed into EmitCounter.

type EmitGaugeOption

type EmitGaugeOption func(*loggregator_v2.Envelope)

EmitGaugeOption is the option type passed into EmitGauge

func WithGaugeAppInfo

func WithGaugeAppInfo(appID string) EmitGaugeOption

WithGaugeAppInfo configures an ID associated with the gauge

func WithGaugeTags

func WithGaugeTags(tags map[string]string) EmitGaugeOption

WithGaugeTags adds tag information that can be text, integer, or decimal to the envelope. WithGaugeTags expects a single call with a complete map and will overwrite if called a second time.

func WithGaugeValue

func WithGaugeValue(name string, value float64, unit string) EmitGaugeOption

WithGaugeValue adds a gauge information. For example, to send information about current CPU usage, one might use:

WithGaugeValue("cpu", 3.0, "percent")

An number of calls to WithGaugeValue may be passed into EmitGauge. If there are duplicate names in any of the options, i.e., "cpu" and "cpu", then the last EmitGaugeOption will take precedence.

type EmitLogOption

type EmitLogOption func(*loggregator_v2.Envelope)

EmitLogOption is the option type passed into EmitLog

func WithAppInfo

func WithAppInfo(appID, sourceType, sourceInstance string) EmitLogOption

WithAppInfo configures the meta data associated with emitted data

func WithStdout

func WithStdout() EmitLogOption

WithStdout sets the output type to stdout. Without using this option, all data is assumed to be stderr output.

type Logger

type Logger interface {
	Printf(string, ...interface{})
}

Logger declares the minimal logging interface used within the v2 client

type Option

type Option func(*Client)

Option is the type of a configurable client option.

func WithBatchFlushInterval

func WithBatchFlushInterval(d time.Duration) Option

WithBatchFlushInterval allows for the configuration of the maximum time to wait before sending a batch of messages. Note that the batch interval may be triggered prior to the batch reaching the configured maximum size.

func WithBatchMaxSize

func WithBatchMaxSize(maxSize uint) Option

WithBatchMaxSize allows for the configuration of the number of messages to collect before emitting them into loggregator. By default, its value is 100 messages.

Note that aside from batch size, messages will be flushed from the client into loggregator at a fixed interval to ensure messages are not held for an undue amount of time before being sent. In other words, even if the client has not yet achieved the maximum batch size, the batch interval may trigger the messages to be sent.

func WithDecimalTag

func WithDecimalTag(name string, value float64) Option

WithDecimalTag allows for the configuration of arbitrary decimal value metadata which will be included in all data sent to Loggregator

func WithIntegerTag

func WithIntegerTag(name string, value int64) Option

WithIntegerTag allows for the configuration of arbitrary integer value metadata which will be included in all data sent to Loggregator

func WithLogger

func WithLogger(l Logger) Option

WithLogger allows for the configuration of a logger. By default, the logger is disabled.

func WithPort

func WithPort(port int) Option

WithPort allows for the configuration of the loggregator v2 port. The value to defaults to 3458, which happens to be the default port in the loggregator server.

func WithStringTag

func WithStringTag(name, value string) Option

WithStringTag allows for the configuration of arbitrary string value metadata which will be included in all data sent to Loggregator

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳