Documentation ¶
Index ¶
- func MustRegister(entries ...Builder)
- func Register(entries ...Builder) error
- func ResolveTables(ctx context.Context, resolver Resolver, logTypes ...string) ([]*awsglue.GlueTableMetadata, error)
- type Builder
- type Config
- type Desc
- type Entry
- type Registry
- func (r *Registry) Del(logType string) bool
- func (r *Registry) Entries(names ...string) []Entry
- func (r *Registry) Get(name string) Entry
- func (r *Registry) LogTypes() (logTypes []string)
- func (r *Registry) MustGet(name string) Entry
- func (r *Registry) MustRegister(config Builder) Entry
- func (r *Registry) Register(config Builder) (Entry, error)
- func (r *Registry) RegisterJSON(desc Desc, eventFactory func() interface{}) (Entry, error)
- func (r *Registry) Resolve(_ context.Context, name string) (Entry, error)
- type Resolver
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 ¶
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
Types ¶
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.
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.
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
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
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) Entries ¶
Entries returns log type entries in a registry. If no names are provided all entries are returned.
func (*Registry) Get ¶
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) MustRegister ¶
func (*Registry) RegisterJSON ¶ added in v1.7.0
type Resolver ¶ added in v1.11.0
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
ChainResolvers tries multiple resolvers in order returning the first resolved entry