Help us shape the future of Go! Take the 2026 Go Developer Survey

logs

package
v0.21.0 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2020 License: Apache-2.0 Imports: 24 Imported by: 34

Documentation

Overview

Package logs implements decision log buffering and uploading.

Index

Constants

View Source
const Name = "decision_logs"

Name identifies the plugin on manager.

Variables

This section is empty.

Functions

This section is empty.

Types

type BundleInfoV1 added in v0.13.0

type BundleInfoV1 struct {
	Revision string `json:"revision,omitempty"`
}

BundleInfoV1 describes a bundle associated with a decision log event.

type Config

type Config struct {
	Plugin        *string         `json:"plugin"`
	Service       string          `json:"service"`
	PartitionName string          `json:"partition_name,omitempty"`
	Reporting     ReportingConfig `json:"reporting"`
	MaskDecision  *string         `json:"mask_decision"`
	ConsoleLogs   bool            `json:"console"`
	// contains filtered or unexported fields
}

Config represents the plugin configuration.

func ParseConfig added in v0.10.2

func ParseConfig(config []byte, services []string, plugins []string) (*Config, error)

ParseConfig validates the config and injects default values.

type EventV1

type EventV1 struct {
	Labels      map[string]string       `json:"labels"`
	DecisionID  string                  `json:"decision_id"`
	Revision    string                  `json:"revision,omitempty"` // Deprecated: Use Bundles instead
	Bundles     map[string]BundleInfoV1 `json:"bundles,omitempty"`
	Path        string                  `json:"path,omitempty"`
	Query       string                  `json:"query,omitempty"`
	Input       *interface{}            `json:"input,omitempty"`
	Result      *interface{}            `json:"result,omitempty"`
	Erased      []string                `json:"erased,omitempty"`
	Masked      []string                `json:"masked,omitempty"`
	Error       error                   `json:"error,omitempty"`
	RequestedBy string                  `json:"requested_by"`
	Timestamp   time.Time               `json:"timestamp"`
	Metrics     map[string]interface{}  `json:"metrics,omitempty"`
}

EventV1 represents a decision log event.

type Logger added in v0.10.3

type Logger interface {
	plugins.Plugin

	Log(context.Context, EventV1) error
}

Logger defines the interface for decision logging plugins.

type Plugin

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

Plugin implements decision log buffering and uploading.

func Lookup added in v0.10.2

func Lookup(manager *plugins.Manager) *Plugin

Lookup returns the decision logs plugin registered with the manager.

func New

func New(parsedConfig *Config, manager *plugins.Manager) *Plugin

New returns a new Plugin with the given config.

func (*Plugin) Log

func (p *Plugin) Log(ctx context.Context, decision *server.Info) error

Log appends a decision log event to the buffer for uploading.

func (*Plugin) Reconfigure added in v0.10.2

func (p *Plugin) Reconfigure(_ context.Context, config interface{})

Reconfigure notifies the plugin with a new configuration.

func (*Plugin) Start

func (p *Plugin) Start(ctx context.Context) error

Start starts the plugin.

func (*Plugin) Stop

func (p *Plugin) Stop(ctx context.Context)

Stop stops the plugin.

type ReportingConfig

type ReportingConfig struct {
	BufferSizeLimitBytes *int64 `json:"buffer_size_limit_bytes,omitempty"` // max size of in-memory buffer
	UploadSizeLimitBytes *int64 `json:"upload_size_limit_bytes,omitempty"` // max size of upload payload
	MinDelaySeconds      *int64 `json:"min_delay_seconds,omitempty"`       // min amount of time to wait between successful poll attempts
	MaxDelaySeconds      *int64 `json:"max_delay_seconds,omitempty"`       // max amount of time to wait between poll attempts
}

ReportingConfig represents configuration for the plugin's reporting behaviour.

Jump to

Keyboard shortcuts

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