logs

package
v0.12.2 Latest Latest
Warning

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

Go to latest
Published: Jul 27, 2019 License: Apache-2.0 Imports: 23 Imported by: 0

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