logtypes

package
v1.11.0 Latest Latest
Warning

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

Go to latest
Published: Oct 28, 2020 License: AGPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func MustRegister

func MustRegister(entries ...Builder)

Register builds and registers log type entries to the package wide registry panicking if an error occurs

func Register

func Register(entries ...Builder) error

Register builds and registers log type entries to the package wide registry returning the first error it encounters

func ResolveTables added in v1.11.0

func ResolveTables(ctx context.Context, resolver Resolver, logTypes ...string) ([]*awsglue.GlueTableMetadata, error)

Types

type Builder added in v1.11.0

type Builder interface {
	Build() (Entry, error)
}

type Config

type Config struct {
	Name         string
	Description  string
	ReferenceURL string
	Schema       interface{}
	NewParser    parsers.Factory
}

Config describes a log event type in a declarative way. To convert to an Entry instance it must be registered. The Config/Entry separation enforces mutability rules for registered log event types.

func (Config) Build added in v1.11.0

func (config Config) Build() (Entry, error)

func (*Config) Describe

func (config *Config) Describe() Desc

func (*Config) Validate

func (config *Config) Validate() error

Validate verifies a log type is valid

type Desc

type Desc struct {
	Name         string `json:"name" validate:"required,min=3"`
	Description  string `json:"description"`
	ReferenceURL string `json:"referenceURL" validate:"url"`
}

Desc describes an registered log type.

func (*Desc) Fill added in v1.11.0

func (desc *Desc) Fill()

func (*Desc) Validate

func (desc *Desc) Validate() error

type Entry

type Entry interface {
	Describe() Desc
	NewParser(params interface{}) (parsers.Interface, error)
	Schema() interface{}
	GlueTableMeta() *awsglue.GlueTableMetadata
	String() string
	Builder
}

Entry describes a registered log event type. It provides a method to create a new parser and a schema struct to derive tables from. Entries can be grouped in a `Registry` to have an index of available log types.

func MustRegisterJSON added in v1.7.0

func MustRegisterJSON(desc Desc, eventFactory func() interface{}) Entry

MustRegisterJSON registers simple JSON log type entry to the package wide registry and panics if an error occurs

func RegisterJSON added in v1.7.0

func RegisterJSON(desc Desc, eventFactory func() interface{}) (Entry, error)

RegisterJSON registers simple JSON log type entry to the package wide registry returning the first error it encounters

type Registry

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

Registry is a collection of log type entries. It is safe to use a registry from multiple goroutines.

func DefaultRegistry

func DefaultRegistry() *Registry

DefaultRegistry returns the default package wide registry for log types

func (*Registry) Del

func (r *Registry) Del(logType string) bool

func (*Registry) Entries

func (r *Registry) Entries(names ...string) []Entry

Entries returns log type entries in a registry. If no names are provided all entries are returned.

func (*Registry) Get

func (r *Registry) Get(name string) Entry

Get returns finds an LogTypeConfig entry in a registry. The returned pointer should be used as a *read-only* share of the LogTypeConfig.

func (*Registry) LogTypes

func (r *Registry) LogTypes() (logTypes []string)

LogTypes returns all available log types in a registry

func (*Registry) MustGet

func (r *Registry) MustGet(name string) Entry

MustGet gets a registered LogTypeConfig or panics

func (*Registry) MustRegister

func (r *Registry) MustRegister(config Builder) Entry

func (*Registry) Register

func (r *Registry) Register(config Builder) (Entry, error)

func (*Registry) RegisterJSON added in v1.7.0

func (r *Registry) RegisterJSON(desc Desc, eventFactory func() interface{}) (Entry, error)

func (*Registry) Resolve added in v1.11.0

func (r *Registry) Resolve(_ context.Context, name string) (Entry, error)

Resolve implements Resolver for a Registry

type Resolver added in v1.11.0

type Resolver interface {
	Resolve(ctx context.Context, name string) (Entry, error)
}

Resolver resolves a log type name to it's entry. Implementations should use the context argument if they require to make network requests to resolve the entry. If an error occurred while trying to resolve the entry it should be returned (nil, err). If an entry could not be resolved but no errors occurred the implementations should return `nil, nil`.

func ChainResolvers added in v1.11.0

func ChainResolvers(resolvers ...Resolver) Resolver

ChainResolvers tries multiple resolvers in order returning the first resolved entry

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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