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

formatters

package
v0.41.0 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 2025 License: Apache-2.0 Imports: 20 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var EventProcessorTypes = []string{
	"event-add-tag",
	"event-allow",
	"event-convert",
	"event-date-string",
	"event-delete",
	"event-drop",
	"event-extract-tags",
	"event-jq",
	"event-merge",
	"event-override-ts",
	"event-rate-limit",
	"event-strings",
	"event-to-tag",
	"event-trigger",
	"event-write",
	"event-group-by",
	"event-data-convert",
	"event-value-tag",
	"event-value-tag-v2",
	"event-starlark",
	"event-combine",
	"event-ieeefloat32",
	"event-time-epoch",
}
View Source
var EventProcessors = map[string]Initializer{}

Functions

func CheckCondition

func CheckCondition(code *gojq.Code, e *EventMsg) (bool, error)

func DecodeConfig

func DecodeConfig(src, dst interface{}) error

func Register

func Register(name string, initFn Initializer)

func ResponsesFlat

func ResponsesFlat(msgs ...proto.Message) (map[string]interface{}, error)

Types

type EventMsg

type EventMsg struct {
	Name      string                 `json:"name,omitempty"`
	Timestamp int64                  `json:"timestamp,omitempty"`
	Tags      map[string]string      `json:"tags,omitempty"`
	Values    map[string]interface{} `json:"values,omitempty"`
	Deletes   []string               `json:"deletes,omitempty"`
}

EventMsg represents a gNMI update message, The name is derived from the subscription in case the update was received in a subscribeResponse the tags are derived from the keys in gNMI path as well as some metadata from the subscription.

func EventFromMap

func EventFromMap(m map[string]interface{}) (*EventMsg, error)

func GetResponseToEventMsgs

func GetResponseToEventMsgs(rsp *gnmi.GetResponse, meta map[string]string, eps ...EventProcessor) ([]*EventMsg, error)

func ResponseToEventMsgs

func ResponseToEventMsgs(name string, rsp *gnmi.SubscribeResponse, meta map[string]string, eps ...EventProcessor) ([]*EventMsg, error)

ResponseToEventMsgs //

func (*EventMsg) String

func (e *EventMsg) String() string

func (*EventMsg) ToMap

func (e *EventMsg) ToMap() map[string]interface{}

type EventProcessor

type EventProcessor interface {
	Init(interface{}, ...Option) error
	Apply(...*EventMsg) []*EventMsg

	WithTargets(map[string]*types.TargetConfig)
	WithLogger(l *log.Logger)
	WithActions(act map[string]map[string]interface{})
	WithProcessors(procs map[string]map[string]any)
}

func MakeEventProcessors

func MakeEventProcessors(
	logger *log.Logger,
	processorNames []string,
	ps map[string]map[string]interface{},
	tcs map[string]*types.TargetConfig,
	acts map[string]map[string]interface{},
) ([]EventProcessor, error)

type Initializer

type Initializer func() EventProcessor

type MarshalOptions

type MarshalOptions struct {
	Multiline        bool
	Indent           string
	Format           string
	OverrideTS       bool
	ValuesOnly       bool
	CalculateLatency bool
}

func (*MarshalOptions) FormatJSON

func (o *MarshalOptions) FormatJSON(m proto.Message, meta map[string]string) ([]byte, error)

FormatJSON formats a proto.Message and returns a []byte and an error

func (*MarshalOptions) Marshal

func (o *MarshalOptions) Marshal(msg proto.Message, meta map[string]string, eps ...EventProcessor) ([]byte, error)

Marshal //

func (*MarshalOptions) OverrideTimestamp

func (o *MarshalOptions) OverrideTimestamp(msg proto.Message) proto.Message

type Option

type Option func(EventProcessor)

func WithActions

func WithActions(acts map[string]map[string]interface{}) Option

func WithLogger

func WithLogger(l *log.Logger) Option

func WithProcessors

func WithProcessors(procs map[string]map[string]interface{}) Option

func WithTargets

func WithTargets(tcs map[string]*types.TargetConfig) Option

Jump to

Keyboard shortcuts

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