Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AlerterPreferences ¶
type AlerterPreferences struct {
// DelegationAlerts which takes an option to disable/enable balance delegation alerts, on enable sends alert when current
// account balance has dropped below from previous account balance.
DelegationAlerts string `mapstructure:"delegation_alerts"`
// AccountBalanceChangeAlerts which takes an option to disable/enable Account balance change alerts, on enable sends alert
// when balance has dropped to balance threshold
AccountBalanceChangeAlerts string `mapstructure:"account_balance_change_alerts"`
// BlockDiffAlerts which takes an option to enable/disable block height difference alerts, on enable sends alert
// when difference meets or exceeds block difference threshold
BlockDiffAlerts string `mapstructure:"block_diff_alerts"`
// NodeHealthAlert which takes an option to enable/disable node Health status alert, on enable sends alerts
NodeHealthAlert string `mapstructure:"node_health_alert"`
// EpochDiffAlerts which takes an option to enable/disable epoch difference alerts, on enable sends alerts if
// difference reaches or exceeds epoch difference threshold
EpochDiffAlerts string `mapstructure:"epoch_diff_alrets"`
// SkipRateAlerts which takes an option to enable/disable skip rate alerts, on enable sends alerts if validator skip rate
// exceeds network skip rate
SkipRateAlerts string `mapstructure:"skip_rate_alerts"`
}
AlerterPreferences which holds individual alert settings which takes an option to enable/disable particular alert
type AlertingThreshold ¶
type AlertingThreshold struct {
// BlockDiffThreshold is to send alerts when the difference b/w network and validator's
// block height reaches or exceedes to block difference threshold
BlockDiffThreshold int64 `mapstructure:"block_diff_threshold"`
// BalanaceChangeThreshold is to send alert when the validator balance has dropped below to this threshold
BalanaceChangeThreshold float64 `mapstructure:"balance_change_threshold"`
// EpochDiffThreahold option is to send alerts when the difference b/w network and validator's
// epoch reaches or exceedes to epoch difference threshold
EpochDiffThreshold int64 `mapstructure:"epoch_diff_threshold"`
// SkipRateThreshold is to send alerts when the skip rate exceeds the configured threshold
SkipRateThreshold int64 `mapstructure:"skip_rate_threshold"`
}
AlertingThreshold defines threshold condition for different alert-cases. `Alerter` will send alerts if the condition reaches the threshold
type Config ¶
type Config struct {
Endpoints Endpoints `mapstructure:"rpc_and_lcd_endpoints"`
ValDetails ValDetails `mapstructure:"validator_details"`
EnableAlerts EnableAlerts `mapstructure:"enable_alerts"`
RegularStatusAlerts RegularStatusAlerts `mapstructure:"regular_status_alerts"`
AlerterPreferences AlerterPreferences `mapstructure:"alerter_preferences"`
AlertingThresholds AlertingThreshold `mapstructure:"alerting_threholds"`
Scraper Scraper `mapstructure:"scraper"`
Telegram Telegram `mapstructure:"telegram"`
SendGrid SendGrid `mapstructure:"sendgrid"`
Prometheus Prometheus `mapstructure:"prometheus"`
}
Config defines all the configurations required for the app
func ReadFromFile ¶
ReadFromFile to read config details using viper
type EnableAlerts ¶
type EnableAlerts struct {
// EnableTelegramAlerts which takes an option to enable/disable telegram alerts
EnableTelegramAlerts bool `mapstructure:"enable_telegram_alerts"`
// EnableTelegramAlerts which takes an option to enable/disable emial alerts
EnableEmailAlerts bool `mapstructure:"enable_email_alerts"`
}
EnableAlerts struct which holds options to enalbe/disable alerts
type Endpoints ¶
type Endpoints struct {
// RPCEndPoint is used to gather information about validator status,active stake, account balance, commission rate and etc.
RPCEndpoint string `mapstructure:"rpc_endpoint"`
// NetworkRPC is used to gather information about validator
NetworkRPC string `mapstructure:"network_rpc"`
}
Endpoints defines multiple API base-urls to fetch the data
type Prometheus ¶
type Prometheus struct {
// ListenAddress to export metrics on the given port
ListenAddress string `mapstructure:"listen_address"`
// PrometheusAddress to connect to prormetheus where it has running
PrometheusAddress string `mapstructure:"prometheus_address"`
}
Prometheus stores Prometheus details
type RegularStatusAlerts ¶
type RegularStatusAlerts struct {
// AlertTimings is the array of time slots to send validator status alerts at that particular timings
AlertTimings []string `mapstructure:"alert_timings"`
}
RegularStatusAlerts defines time-slots to receive validator status alerts
type Scraper ¶
type Scraper struct {
// Rate is to call and get the data for specified targets on that particular time interval
Rate string `mapstructure:"rate"`
}
Scraper defines the time intervals for multiple scrapers to fetch the data
type SendGrid ¶
type SendGrid struct {
// Token of sendgrid account
Token string `mapstructure:"sendgrid_token"`
// ToEmailAddress is the email to which all the alerts will be sent
ReceiverEmailAddress string `mapstructure:"receiver_email_address"`
// SendgridEmail is the email of sendgrid account which will be used to send mail alerts
SendgridEmail string `mapstructure:"account_email"`
// SendgridName is the name of sendgrid account which will be used to send mail alerts
SendgridName string `mapstructure:"sendgrid_account_name"`
}
SendGrid stores sendgrid API credentials
type Telegram ¶
type Telegram struct {
// BotToken is the token of your telegram bot
BotToken string `mapstructure:"tg_bot_token"`
// ChatID is the id of telegarm chat which will be used to get alerts
ChatID int64 `mapstructure:"tg_chat_id"`
}
Telegram bot details struct
type ValDetails ¶
type ValDetails struct {
// ValidatorName is the moniker of your validator which will be used to display in alerts messages
ValidatorName string `mapstructure:"validator_name"`
// PubKey of validator as base-58 encoded string
PubKey string `mapstructure:"pub_key"`
// VoteKey of validator as base-58 encoded string
VoteKey string `mapstructure:"vote_key"`
}
ValDetails stores the validator meta details