metrics

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Aug 26, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Config

func Config(dbUrl string) *pgxpool.Config

func IsMetricInNewStateAlert

func IsMetricInNewStateAlert(metric Metric) bool

func IsMetricOkAgain

func IsMetricOkAgain(metric Metric) bool

func IsValidMetricState

func IsValidMetricState(metricState string) bool

func IsValidMetricType

func IsValidMetricType(metricType string) bool

func PrintMetrics

func PrintMetrics(metrics []Metric)

Types

type AlertChecker

type AlertChecker struct {
	MetricsServiceErrorSent bool
	// contains filtered or unexported fields
}

func NewAlertChecker

func NewAlertChecker(metricsService MetricsService, alerter Alerter) *AlertChecker

func (*AlertChecker) CheckAlerts

func (a *AlertChecker) CheckAlerts()

type Alerter

type Alerter interface {
	NewAlert(metric Metric) error
	AlertOkAgain(metric Metric) error
}

type DbMetricsService

type DbMetricsService struct {
	ConnPool *pgxpool.Pool
}

func NewDBMetricsService

func NewDBMetricsService(dbUrl string, alerter Alerter) (*DbMetricsService, error)

func (*DbMetricsService) Close

func (s *DbMetricsService) Close()

func (*DbMetricsService) DeleteMetric

func (s *DbMetricsService) DeleteMetric(id int) error

func (*DbMetricsService) GetAllMetrics

func (s *DbMetricsService) GetAllMetrics() ([]Metric, error)

func (*DbMetricsService) SaveMetric

func (s *DbMetricsService) SaveMetric(metric MetricValues) error

func (*DbMetricsService) SaveState

func (s *DbMetricsService) SaveState(metric MetricValues, state MetricState) error

type DiskMetric

type DiskMetric struct {
	MetricValues
}

func (*DiskMetric) GetMetricValues

func (m *DiskMetric) GetMetricValues() MetricValues

func (*DiskMetric) GetNextState

func (m *DiskMetric) GetNextState() MetricState

type Metric

type Metric interface {
	GetNextState() MetricState
	String() string
	GetMetricValues() MetricValues
}

func GetFailedToGetMetricsMetric

func GetFailedToGetMetricsMetric() Metric

type MetricBuilder

type MetricBuilder struct {
	MetricValues
}

func NewMetricBuilder

func NewMetricBuilder() *MetricBuilder

func (*MetricBuilder) Build

func (m *MetricBuilder) Build() Metric

func (*MetricBuilder) WithHost

func (m *MetricBuilder) WithHost(host string) *MetricBuilder

func (*MetricBuilder) WithMetricValues

func (m *MetricBuilder) WithMetricValues(metricValues MetricValues) *MetricBuilder

func (*MetricBuilder) WithName

func (m *MetricBuilder) WithName(name string) *MetricBuilder

func (*MetricBuilder) WithState

func (m *MetricBuilder) WithState(state MetricState) *MetricBuilder

func (*MetricBuilder) WithTimestamp

func (m *MetricBuilder) WithTimestamp(timestamp time.Time) *MetricBuilder

func (*MetricBuilder) WithType

func (m *MetricBuilder) WithType(metricType MetricType) *MetricBuilder

func (*MetricBuilder) WithValue

func (m *MetricBuilder) WithValue(value string) *MetricBuilder

type MetricState

type MetricState string
const (
	OK    MetricState = "ok"
	Alert MetricState = "alert"
)

type MetricType

type MetricType string
const (
	Disk MetricType = "disk"
	Ping MetricType = "ping"
)

type MetricValues

type MetricValues struct {
	Host      string     `json:"host"`
	Name      string     `json:"name"`
	Type      MetricType `json:"type"`
	Timestamp time.Time  `json:"timestamp"`
	// optional
	Value string      `json:"value,omitempty"`
	State MetricState `json:"state,omitempty"`
	Id    int
}

func (MetricValues) String

func (m MetricValues) String() string

type MetricsService

type MetricsService interface {
	SaveMetric(metric MetricValues) error
	SaveState(metric MetricValues, state MetricState) error
	GetAllMetrics() ([]Metric, error)
}

type PingMetric

type PingMetric struct {
	MetricValues
}

func (*PingMetric) GetMetricValues

func (m *PingMetric) GetMetricValues() MetricValues

func (*PingMetric) GetNextState

func (m *PingMetric) GetNextState() MetricState

type TelegramAlerter

type TelegramAlerter struct {
	TelegramToken  string
	TelegramChatId string
}

func (*TelegramAlerter) AlertOkAgain

func (a *TelegramAlerter) AlertOkAgain(metric Metric) error

func (*TelegramAlerter) NewAlert

func (a *TelegramAlerter) NewAlert(metric Metric) error

Jump to

Keyboard shortcuts

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