connstate

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Apr 20, 2023 License: Apache-2.0 Imports: 7 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Component

type Component struct {
	Stat stat.Stat
}

Component implements the settings.Component interface for connection state monitoring.

func NewComponent

func NewComponent() *Component

NewComponent populates the default values.

func (*Component) New

func (c *Component) New(_ context.Context, conf *Config) (*ConnState, error)

New produces a ServerFn bound to the given configuration.

func (*Component) Settings

func (*Component) Settings() *Config

Settings returns a configuration with all defaults set.

func (*Component) WithStat

func (*Component) WithStat(s stat.Stat) *Component

WithStat returns a copy of the Component bound to a given Stat instance.

type Config

type Config struct {
	NewCounter      string        `description:"Name of the counter metric tracking new clients."`
	NewGauge        string        `description:"Name of the gauge metric tracking new clients."`
	ActiveCounter   string        `description:"Name of the counter metric tracking active clients."`
	ActiveGauge     string        `description:"Name of the gauge metric tracking active clients."`
	IdleCounter     string        `description:"Name of the counter metric tracking idle clients."`
	IdleGauge       string        `description:"Name of the gauge metric tracking idle clients."`
	ClosedCounter   string        `description:"Name of the counter metric tracking closed clients."`
	HijackedCounter string        `description:"Name of the counter metric tracking hijacked clients."`
	ReportInterval  time.Duration `description:"Interval on which gauges are reported."`
}

Config is a container for internal metrics settings.

func (*Config) Description

func (*Config) Description() string

Description returns the help information for the configuration root.

func (*Config) Name

func (*Config) Name() string

Name of the configuration root.

type ConnState

type ConnState struct {
	Stat                      stat.Stat
	Tracking                  *sync.Map
	NewClientCounterName      string
	NewClientGaugeName        string
	ActiveClientCounterName   string
	ActiveClientGaugeName     string
	IdleClientCounterName     string
	IdleClientGaugeName       string
	ClosedClientCounterName   string
	HijackedClientCounterName string
	Interval                  time.Duration
	// contains filtered or unexported fields
}

ConnState plugs into the http.Server.ConnState attribute to track the number of client connections to the server.

func Load

func Load(ctx context.Context, source settings.Source, c *Component) (*ConnState, error)

Load is a convenience method for binding the source to the component.

func (*ConnState) Close

func (c *ConnState) Close() error

Close the reporting loop.

func (*ConnState) HandleEvent

func (c *ConnState) HandleEvent(conn net.Conn, state http.ConnState)

HandleEvent tracks state changes of a connection.

func (*ConnState) Report

func (c *ConnState) Report()

Report loops on a time interval and pushes a set of gauge metrics.

Jump to

Keyboard shortcuts

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