listener

package
v0.0.0-...-f77230d Latest Latest
Warning

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

Go to latest
Published: Dec 8, 2023 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Listener

type Listener struct {
	ListenerID string

	Assembler *httpassembly.HttpAssembler
	Client    *siegeserver.Client
	Log       *slog.Logger
	// contains filtered or unexported fields
}

func NewListener

func NewListener(source PacketSource, client *siegeserver.Client) (*Listener, error)

func (*Listener) ListenJob

func (l *Listener) ListenJob(ctx context.Context, wg *sync.WaitGroup)

func (*Listener) PublishJob

func (l *Listener) PublishJob(ctx context.Context, wg *sync.WaitGroup)

func (*Listener) ReassembleJob

func (l *Listener) ReassembleJob(ctx context.Context, wg *sync.WaitGroup)

func (*Listener) RegisterShutdown

func (l *Listener) RegisterShutdown()

func (*Listener) RegisterStartup

func (l *Listener) RegisterStartup() error

type PacketSource

type PacketSource interface {
	Packets() chan gopacket.Packet
}

func NewPacketSourceLive

func NewPacketSourceLive(device, filter string) (PacketSource, error)

type PrometheusMetricFactory

type PrometheusMetricFactory struct {
	Namespace string
	Subsystem string
	Labels    prometheus.Labels
}

func NewPrometheusMetricFactory

func NewPrometheusMetricFactory(path string, method string, status int) PrometheusMetricFactory

func (*PrometheusMetricFactory) NewCounter

func (f *PrometheusMetricFactory) NewCounter(name string) prometheus.Counter

func (*PrometheusMetricFactory) NewHistogram

func (f *PrometheusMetricFactory) NewHistogram(name string) prometheus.Histogram

type RequestLog

type RequestLog struct {
	Path     string
	Method   string
	Status   int
	Duration float64
	Payload  float64
	Schema   []byte
}

type ResponseMetrics

type ResponseMetrics struct {
	Path     string
	Method   string
	Status   int
	Total    prometheus.Counter
	Duration prometheus.Histogram
	Payload  prometheus.Histogram
}

ResponseMetrics may be a lot to track per (path, method, status), especially since we don't have queries for each of these.

func NewResponseMetrics

func NewResponseMetrics(path string, method string, status int) *ResponseMetrics

func (*ResponseMetrics) HandleRequestLog

func (m *ResponseMetrics) HandleRequestLog(r *RequestLog)

func (*ResponseMetrics) Register

func (m *ResponseMetrics) Register(r prometheus.Registerer)

type ResponseMetricsKey

type ResponseMetricsKey struct {
	Path   string
	Method string
	Status int
}

Jump to

Keyboard shortcuts

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