Skip to content

Commit

Permalink
Expose #179
Browse files Browse the repository at this point in the history
Signed-off-by: beorn7 <[email protected]>
  • Loading branch information
beorn7 committed May 29, 2018
1 parent 3965d2a commit 3bbefbd
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions storage/diskmetricstore_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -589,6 +589,50 @@ func TestNoPersistence(t *testing.T) {
}
}

func TestLegacyRestore(t *testing.T) {
tempDir, err := ioutil.TempDir("", "diskmetricstore.TestLegacyRestore.")
if err != nil {
t.Fatal(err)
}
defer os.RemoveAll(tempDir)
fileName := path.Join(tempDir, "persistence")
dms := NewDiskMetricStore(fileName, 100*time.Millisecond)

// Submit a single simple metric family.
ts1 := time.Now()
dms.SubmitWriteRequest(WriteRequest{
Labels: map[string]string{
"job": "job1",
"instance": "instance1",
},
Timestamp: ts1,
MetricFamilies: map[string]*dto.MetricFamily{"mf3": mf3},
})
time.Sleep(20 * time.Millisecond) // Give loop() time to process.
if err := checkMetricFamilies(dms, mf3); err != nil {
t.Error(err)
}

// Manipulate dms internals to simulate the legacy persistence format.
for _, mg := range dms.metricGroups {
tmf := mg.Metrics["mf3"]
tmf.MetricFamily = (*dto.MetricFamily)(tmf.GobbableMetricFamily)
tmf.GobbableMetricFamily = nil
mg.Metrics["mf3"] = tmf
}

// Shutdown the dms to persist in legacy format.
if err := dms.Shutdown(); err != nil {
t.Fatal(err)
}

// Load it again.
dms = NewDiskMetricStore(fileName, 100*time.Millisecond)
if err := checkMetricFamilies(dms, mf3); err != nil {
t.Error(err)
}
}

func checkMetricFamilies(dms *DiskMetricStore, expectedMFs ...*dto.MetricFamily) error {
gotMFs := dms.GetMetricFamilies()
if expected, got := len(expectedMFs), len(gotMFs); expected != got {
Expand Down

0 comments on commit 3bbefbd

Please sign in to comment.