Create and configure _internal retention policy
parent
e06d6e58b2
commit
9fd95b80a2
|
@ -18,6 +18,11 @@ import (
|
|||
|
||||
const leaderWaitTimeout = 30 * time.Second
|
||||
|
||||
const (
|
||||
MonitorRetentionPolicy = "monitor"
|
||||
MonitorRetentionPolicyDuration = 7 * 24 * time.Hour
|
||||
)
|
||||
|
||||
// DiagsClient is the interface modules implement if they register diags with monitor.
|
||||
type DiagsClient interface {
|
||||
Diagnostics() (*Diagnostic, error)
|
||||
|
@ -82,6 +87,9 @@ type Monitor struct {
|
|||
NodeID() uint64
|
||||
WaitForLeader(d time.Duration) error
|
||||
CreateDatabaseIfNotExists(name string) (*meta.DatabaseInfo, error)
|
||||
CreateRetentionPolicyIfNotExists(database string, rpi *meta.RetentionPolicyInfo) (*meta.RetentionPolicyInfo, error)
|
||||
SetDefaultRetentionPolicy(database, name string) error
|
||||
DropRetentionPolicy(database, name string) error
|
||||
}
|
||||
|
||||
PointsWriter interface {
|
||||
|
@ -299,6 +307,26 @@ func (m *Monitor) storeStatistics() {
|
|||
return
|
||||
}
|
||||
|
||||
rpi := meta.NewRetentionPolicyInfo(MonitorRetentionPolicy)
|
||||
rpi.Duration = MonitorRetentionPolicyDuration
|
||||
rpi.ReplicaN = 1
|
||||
if _, err := m.MetaStore.CreateRetentionPolicyIfNotExists(m.storeDatabase, rpi); err != nil {
|
||||
m.Logger.Printf("failed to create retention policy '%s', terminating storage: %s",
|
||||
rpi.Name, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if err := m.MetaStore.SetDefaultRetentionPolicy(m.storeDatabase, rpi.Name); err != nil {
|
||||
m.Logger.Printf("failed to set default retention policy on '%s', terminating storage: %s",
|
||||
m.storeDatabase, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
if err := m.MetaStore.DropRetentionPolicy(m.storeDatabase, "default"); err != nil && err != meta.ErrRetentionPolicyNotFound {
|
||||
m.Logger.Printf("failed to delete retention policy 'default', terminating storage: %s", err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
tick := time.NewTicker(m.storeInterval)
|
||||
defer tick.Stop()
|
||||
for {
|
||||
|
|
|
@ -39,9 +39,11 @@ func Test_RegisterStats(t *testing.T) {
|
|||
|
||||
type mockMetastore struct{}
|
||||
|
||||
func (m *mockMetastore) ClusterID() (uint64, error) { return 1, nil }
|
||||
func (m *mockMetastore) NodeID() uint64 { return 2 }
|
||||
func (m *mockMetastore) WaitForLeader(d time.Duration) error { return nil }
|
||||
func (m *mockMetastore) ClusterID() (uint64, error) { return 1, nil }
|
||||
func (m *mockMetastore) NodeID() uint64 { return 2 }
|
||||
func (m *mockMetastore) WaitForLeader(d time.Duration) error { return nil }
|
||||
func (m *mockMetastore) SetDefaultRetentionPolicy(database, name string) error { return nil }
|
||||
func (m *mockMetastore) DropRetentionPolicy(database, name string) error { return nil }
|
||||
func (m *mockMetastore) CreateDatabaseIfNotExists(name string) (*meta.DatabaseInfo, error) {
|
||||
return nil, nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue