metrics

package
v1.9.3 Latest Latest
Warning

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

Go to latest
Published: Aug 31, 2021 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FileLogger

type FileLogger struct {
	MetricsQueue   chan *MetricsInfo
	LogDir         string
	MaxLogFileSize int64
	MaxLogFiles    int
	Verbose        bool
}

func NewFileLogger

func NewFileLogger(logDir string, maxLogFileSize int64, maxLogFiles int, verbose bool) *FileLogger

func (*FileLogger) Log

func (l *FileLogger) Log(info *MetricsInfo)

type IndexerInfo

type IndexerInfo struct {
	Duration     time.Duration `json:"duration"`
	URL          URLInfo       `json:"url"`
	Geometry     string        `json:"geometry"`
	SRS          string        `json:"-"`
	GeometryArea float64       `json:"geometry_area"`
	NumFiles     int           `json:"num_files"`
	NumGranules  int           `json:"num_granules"`
}

type Logger

type Logger interface {
	Log(info *MetricsInfo)
}

type MetricsCollector

type MetricsCollector struct {
	Info *MetricsInfo
	// contains filtered or unexported fields
}

func NewMetricsCollector

func NewMetricsCollector(logger Logger) *MetricsCollector

func (*MetricsCollector) Log

func (m *MetricsCollector) Log()

type MetricsInfo

type MetricsInfo struct {
	ReqTime     string        `json:"req_time"`
	ReqDuration time.Duration `json:"req_duration"`
	URL         URLInfo       `json:"url"`
	RemoteAddr  string        `json:"remote_addr"`
	RemoteHost  string        `json:"remote_host"`
	RemotePort  string        `json:"remote_port"`
	HTTPStatus  int           `json:"http_status"`
	Indexer     *IndexerInfo  `json:"indexer"`
	RPC         *RPCInfo      `json:"rpc"`
}

func (*MetricsInfo) ToJSON

func (i *MetricsInfo) ToJSON() (string, error)

type RPCInfo

type RPCInfo struct {
	Duration         time.Duration `json:"duration"`
	NumTiledGranules int           `json:"num_tiled_granules"`
	BytesRead        int64         `json:"bytes_read"`
	UserTime         int64         `json:"user_time"`
	SysTime          int64         `json:"sys_time"`
}

type StdoutLogger

type StdoutLogger struct{}

func NewStdoutLogger

func NewStdoutLogger() *StdoutLogger

func (*StdoutLogger) Log

func (l *StdoutLogger) Log(info *MetricsInfo)

type URLInfo

type URLInfo struct {
	RawURL string            `json:"raw_url"`
	Host   string            `json:"host"`
	Path   string            `json:"path"`
	Query  map[string]string `json:"query"`
}

Jump to

Keyboard shortcuts

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