Documentation
¶
Overview ¶
Package database implements all persistent data access for bosun. Internally it runs ledisdb locally, but uses a redis client to access all data. Thus it should be able to migrate to a remote redis instance with minimal effort.
Index ¶
Constants ¶
View Source
const Search_All = "__all__"
Variables ¶
This section is empty.
Functions ¶
func StartLedis ¶
Start in-process ledis server. Data will go in the specified directory and it will bind to the given port. Return value is a function you can call to stop the server.
Types ¶
type Connector ¶
interface so things can get a raw connection (mostly tests), but still discourage it.
type DataAccess ¶
type DataAccess interface {
Metadata() MetadataDataAccess
Search() SearchDataAccess
Errors() ErrorDataAccess
Silence() SilenceDataAccess
Incidents() IncidentDataAccess
}
Core data access interface for everything sched needs
func NewDataAccess ¶
func NewDataAccess(addr string, isRedis bool) DataAccess
Create a new data access object pointed at the specified address. isRedis parameter used to distinguish true redis from ledis in-proc.
type ErrorDataAccess ¶
type ErrorDataAccess interface {
MarkAlertSuccess(name string) error
MarkAlertFailure(name string, msg string) error
GetFailingAlertCounts() (int, int, error)
GetFailingAlerts() (map[string]bool, error)
IsAlertFailing(name string) (bool, error)
GetFullErrorHistory() (map[string][]*models.AlertError, error)
ClearAlert(name string) error
ClearAll() error
}
type IncidentDataAccess ¶
type IncidentDataAccess interface {
GetIncident(id uint64) (*models.Incident, error)
CreateIncident(ak models.AlertKey, start time.Time) (*models.Incident, error)
UpdateIncident(id uint64, i *models.Incident) error
GetIncidentsStartingInRange(start, end time.Time) ([]*models.Incident, error)
// should only be used by initial import
SetMaxId(id uint64) error
}
type MetadataDataAccess ¶
type MetadataDataAccess interface {
// Insert Metric Metadata. Field must be one of "desc", "rate", or "unit".
PutMetricMetadata(metric string, field string, value string) error
// Get Metric Metadata for given metric.
GetMetricMetadata(metric string) (*MetricMetadata, error)
PutTagMetadata(tags opentsdb.TagSet, name string, value string, updated time.Time) error
GetTagMetadata(tags opentsdb.TagSet, name string) ([]*TagMetadata, error)
DeleteTagMetadata(tags opentsdb.TagSet, name string) error
}
type MetricMetadata ¶
type SearchDataAccess ¶
type SearchDataAccess interface {
AddMetricForTag(tagK, tagV, metric string, time int64) error
GetMetricsForTag(tagK, tagV string) (map[string]int64, error)
AddTagKeyForMetric(metric, tagK string, time int64) error
GetTagKeysForMetric(metric string) (map[string]int64, error)
AddMetric(metric string, time int64) error
GetAllMetrics() (map[string]int64, error)
AddTagValue(metric, tagK, tagV string, time int64) error
GetTagValues(metric, tagK string) (map[string]int64, error)
AddMetricTagSet(metric, tagSet string, time int64) error
GetMetricTagSets(metric string, tags opentsdb.TagSet) (map[string]int64, error)
BackupLastInfos(map[string]map[string]*LastInfo) error
LoadLastInfos() (map[string]map[string]*LastInfo, error)
}
type SilenceDataAccess ¶
Source Files
¶
Click to show internal directories.
Click to hide internal directories.