formatters

package
v0.37.0 Latest Latest
Warning

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

Go to latest
Published: May 13, 2024 License: Apache-2.0 Imports: 19 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-starlark",
	"event-combine",
}
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 NotificationRspMsg

type NotificationRspMsg struct {
	Meta             map[string]interface{} `json:"meta,omitempty"`
	Source           string                 `json:"source,omitempty"`
	SystemName       string                 `json:"system-name,omitempty"`
	SubscriptionName string                 `json:"subscription-name,omitempty"`
	Timestamp        int64                  `json:"timestamp,omitempty"`
	Time             *time.Time             `json:"time,omitempty"`
	RecvTimestamp    int64                  `json:"recv-timestamp,omitempty"`
	RecvTime         *time.Time             `json:"recv-time,omitempty"`
	LatencyNano      int64                  `json:"latency-nano,omitempty"`
	LatencyMilli     int64                  `json:"latency-milli,omitempty"`
	Prefix           string                 `json:"prefix,omitempty"`
	Target           string                 `json:"target,omitempty"`
	Updates          []update               `json:"updates,omitempty"`
	Deletes          []string               `json:"deletes,omitempty"`
}

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