utils

package
v3.4.4 Latest Latest
Warning

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

Go to latest
Published: Jun 18, 2020 License: BSD-3-Clause Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	MetricTrafficBytes = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "flow_traffic_bytes",
			Help: "Bytes received by the application.",
		},
		[]string{"remote_ip", "remote_port", "local_ip", "local_port", "type"},
	)
	MetricTrafficPackets = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "flow_traffic_packets",
			Help: "Packets received by the application.",
		},
		[]string{"remote_ip", "remote_port", "local_ip", "local_port", "type"},
	)
	MetricPacketSizeSum = prometheus.NewSummaryVec(
		prometheus.SummaryOpts{
			Name:       "flow_traffic_summary_size_bytes",
			Help:       "Summary of packet size.",
			Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001},
		},
		[]string{"remote_ip", "remote_port", "local_ip", "local_port", "type"},
	)
	DecoderStats = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "flow_decoder_count",
			Help: "Decoder processed count.",
		},
		[]string{"worker", "name"},
	)
	DecoderErrors = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "flow_decoder_error_count",
			Help: "Decoder processed error count.",
		},
		[]string{"worker", "name"},
	)
	DecoderTime = prometheus.NewSummaryVec(
		prometheus.SummaryOpts{
			Name:       "flow_summary_decoding_time_us",
			Help:       "Decoding time summary.",
			Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001},
		},
		[]string{"name"},
	)
	DecoderProcessTime = prometheus.NewSummaryVec(
		prometheus.SummaryOpts{
			Name:       "flow_summary_processing_time_us",
			Help:       "Processing time summary.",
			Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001},
		},
		[]string{"name"},
	)
	NetFlowStats = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "flow_process_nf_count",
			Help: "NetFlows processed.",
		},
		[]string{"router", "version"},
	)
	NetFlowErrors = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "flow_process_nf_errors_count",
			Help: "NetFlows processed errors.",
		},
		[]string{"router", "error"},
	)
	NetFlowSetRecordsStatsSum = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "flow_process_nf_flowset_records_sum",
			Help: "NetFlows FlowSets sum of records.",
		},
		[]string{"router", "version", "type"},
	)
	NetFlowSetStatsSum = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "flow_process_nf_flowset_sum",
			Help: "NetFlows FlowSets sum.",
		},
		[]string{"router", "version", "type"},
	)
	NetFlowTimeStatsSum = prometheus.NewSummaryVec(
		prometheus.SummaryOpts{
			Name:       "flow_process_nf_delay_summary_seconds",
			Help:       "NetFlows time difference between time of flow and processing.",
			Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001},
		},
		[]string{"router", "version"},
	)
	NetFlowTemplatesStats = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "flow_process_nf_templates_count",
			Help: "NetFlows Template count.",
		},
		[]string{"router", "version", "obs_domain_id", "template_id", "type"},
	)
	SFlowStats = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "flow_process_sf_count",
			Help: "sFlows processed.",
		},
		[]string{"router", "agent", "version"},
	)
	SFlowErrors = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "flow_process_sf_errors_count",
			Help: "sFlows processed errors.",
		},
		[]string{"router", "error"},
	)
	SFlowSampleStatsSum = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "flow_process_sf_samples_sum",
			Help: "SFlows samples sum.",
		},
		[]string{"router", "agent", "version", "type"},
	)
	SFlowSampleRecordsStatsSum = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Name: "flow_process_sf_samples_records_sum",
			Help: "SFlows samples sum of records.",
		},
		[]string{"router", "agent", "version", "type"},
	)
)

Functions

func DefaultAccountCallback

func DefaultAccountCallback(name string, id int, start, end time.Time)

func FlowMessageToJSON

func FlowMessageToJSON(fmsg *flowmessage.FlowMessage) string

func FlowMessageToString

func FlowMessageToString(fmsg *flowmessage.FlowMessage) string

func GetServiceAddresses

func GetServiceAddresses(srv string) (addrs []string, err error)

func UDPRoutine

func UDPRoutine(name string, decodeFunc decoder.DecoderFunc, workers int, addr string, port int, sockReuse bool, logger Logger) error

Types

type BaseMessage

type BaseMessage struct {
	Src     net.IP
	Port    int
	Payload []byte

	SetTime  bool
	RecvTime time.Time
}

type DefaultErrorCallback

type DefaultErrorCallback struct {
	Logger Logger
}

func (*DefaultErrorCallback) Callback

func (cb *DefaultErrorCallback) Callback(name string, id int, start, end time.Time, err error)

type DefaultJSONTransport

type DefaultJSONTransport struct {
}

func (*DefaultJSONTransport) Publish

func (s *DefaultJSONTransport) Publish(msgs []*flowmessage.FlowMessage)

type DefaultLogTransport

type DefaultLogTransport struct {
}

func (*DefaultLogTransport) Publish

func (s *DefaultLogTransport) Publish(msgs []*flowmessage.FlowMessage)

type Logger

type Logger interface {
	Printf(string, ...interface{})
	Errorf(string, ...interface{})
	Warnf(string, ...interface{})
	Warn(...interface{})
	Error(...interface{})
	Debug(...interface{})
	Debugf(string, ...interface{})
	Infof(string, ...interface{})
	Fatalf(string, ...interface{})
}

type StateNFLegacy

type StateNFLegacy struct {
	Transport Transport
	Logger    Logger
}

func (*StateNFLegacy) DecodeFlow

func (s *StateNFLegacy) DecodeFlow(msg interface{}) error

func (*StateNFLegacy) FlowRoutine

func (s *StateNFLegacy) FlowRoutine(workers int, addr string, port int, reuseport bool) error

type StateNetFlow

type StateNetFlow struct {
	Transport Transport
	Logger    Logger
	// contains filtered or unexported fields
}

func (*StateNetFlow) DecodeFlow

func (s *StateNetFlow) DecodeFlow(msg interface{}) error

func (*StateNetFlow) FlowRoutine

func (s *StateNetFlow) FlowRoutine(workers int, addr string, port int, reuseport bool) error

func (*StateNetFlow) InitTemplates

func (s *StateNetFlow) InitTemplates()

func (*StateNetFlow) ServeHTTPTemplates

func (s *StateNetFlow) ServeHTTPTemplates(w http.ResponseWriter, r *http.Request)

type StateSFlow

type StateSFlow struct {
	Transport Transport
	Logger    Logger

	Config *producer.SFlowProducerConfig
}

func (*StateSFlow) DecodeFlow

func (s *StateSFlow) DecodeFlow(msg interface{}) error

func (*StateSFlow) FlowRoutine

func (s *StateSFlow) FlowRoutine(workers int, addr string, port int, reuseport bool) error

type TemplateSystem

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

func (*TemplateSystem) AddTemplate

func (s *TemplateSystem) AddTemplate(version uint16, obsDomainId uint32, template interface{})

func (*TemplateSystem) GetTemplate

func (s *TemplateSystem) GetTemplate(version uint16, obsDomainId uint32, templateId uint16) (interface{}, error)

type Transport

type Transport interface {
	Publish([]*flowmessage.FlowMessage)
}

Jump to

Keyboard shortcuts

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