mirror of
https://github.com/prometheus/alertmanager
synced 2025-02-16 10:37:09 +00:00
main: Use bolt based storage
This commit is contained in:
parent
cc5aab6cff
commit
d8efdde515
20
main.go
20
main.go
@ -15,7 +15,6 @@ package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"database/sql"
|
||||
"flag"
|
||||
"fmt"
|
||||
"net"
|
||||
@ -24,7 +23,6 @@ import (
|
||||
"os"
|
||||
"os/signal"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"syscall"
|
||||
tmpltext "text/template"
|
||||
@ -36,7 +34,7 @@ import (
|
||||
|
||||
"github.com/prometheus/alertmanager/config"
|
||||
"github.com/prometheus/alertmanager/notify"
|
||||
"github.com/prometheus/alertmanager/provider/sqlite"
|
||||
"github.com/prometheus/alertmanager/provider/boltmem"
|
||||
"github.com/prometheus/alertmanager/template"
|
||||
"github.com/prometheus/alertmanager/types"
|
||||
"github.com/prometheus/alertmanager/version"
|
||||
@ -82,26 +80,26 @@ func main() {
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
db, err := sql.Open("sqlite3", filepath.Join(*dataDir, "am.db"))
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
marker := types.NewMarker()
|
||||
|
||||
alerts, err := sqlite.NewAlerts(db)
|
||||
alerts, err := boltmem.NewAlerts(*dataDir)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
notifies, err := sqlite.NewNotifies(db)
|
||||
defer alerts.Close()
|
||||
|
||||
notifies, err := boltmem.NewNotifies(*dataDir)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
silences, err := sqlite.NewSilences(db, marker)
|
||||
defer notifies.Close()
|
||||
|
||||
silences, err := boltmem.NewSilences(*dataDir, marker)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer silences.Close()
|
||||
|
||||
var (
|
||||
inhibitor *Inhibitor
|
||||
|
@ -14,6 +14,12 @@ import (
|
||||
"github.com/prometheus/common/model"
|
||||
)
|
||||
|
||||
var (
|
||||
bktNotifies = []byte("notifies")
|
||||
bktSilences = []byte("silences")
|
||||
bktAlerts = []byte("alerts")
|
||||
)
|
||||
|
||||
// Alerts gives access to a set of alerts. All methods are goroutine-safe.
|
||||
type Alerts struct {
|
||||
db *bolt.DB
|
||||
@ -39,6 +45,10 @@ func NewAlerts(path string) (*Alerts, error) {
|
||||
}, err
|
||||
}
|
||||
|
||||
func (a *Alerts) Close() error {
|
||||
return a.db.Close()
|
||||
}
|
||||
|
||||
// Subscribe returns an iterator over active alerts that have not been
|
||||
// resolved and successfully notified about.
|
||||
// They are not guaranteed to be in chronological order.
|
||||
@ -206,6 +216,10 @@ func NewSilences(path string, mk types.Marker) (*Silences, error) {
|
||||
return &Silences{db: db, mk: mk}, err
|
||||
}
|
||||
|
||||
func (s *Silences) Close() error {
|
||||
return s.db.Close()
|
||||
}
|
||||
|
||||
// The Silences provider must implement the Muter interface
|
||||
// for all its silences. The data provider may have access to an
|
||||
// optimized view of the data to perform this evaluation.
|
||||
@ -341,11 +355,9 @@ func NewNotifies(path string) (*Notifies, error) {
|
||||
return &Notifies{db: db}, err
|
||||
}
|
||||
|
||||
var (
|
||||
bktNotifies = []byte("notifies")
|
||||
bktSilences = []byte("silences")
|
||||
bktAlerts = []byte("alerts")
|
||||
)
|
||||
func (n *Notifies) Close() error {
|
||||
return n.db.Close()
|
||||
}
|
||||
|
||||
func (n *Notifies) Get(recv string, fps ...model.Fingerprint) ([]*types.NotifyInfo, error) {
|
||||
var res []*types.NotifyInfo
|
||||
|
Loading…
Reference in New Issue
Block a user