func TestLustre2GeneratesMetrics(t *testing.T) { tempdir := os.TempDir() + "/telegraf/proc/fs/lustre/" ost_name := "OST0001" mdtdir := tempdir + "/mdt/" err := os.MkdirAll(mdtdir+"/"+ost_name, 0755) require.NoError(t, err) osddir := tempdir + "/osd-ldiskfs/" err = os.MkdirAll(osddir+"/"+ost_name, 0755) require.NoError(t, err) obddir := tempdir + "/obdfilter/" err = os.MkdirAll(obddir+"/"+ost_name, 0755) require.NoError(t, err) err = ioutil.WriteFile(mdtdir+"/"+ost_name+"/md_stats", []byte(mdtProcContents), 0644) require.NoError(t, err) err = ioutil.WriteFile(osddir+"/"+ost_name+"/stats", []byte(osdldiskfsProcContents), 0644) require.NoError(t, err) err = ioutil.WriteFile(obddir+"/"+ost_name+"/stats", []byte(obdfilterProcContents), 0644) require.NoError(t, err) m := &Lustre2{ Ost_procfiles: []string{obddir + "/*/stats", osddir + "/*/stats"}, Mds_procfiles: []string{mdtdir + "/*/md_stats"}, } var acc testutil.Accumulator err = m.Gather(&acc) require.NoError(t, err) tags := map[string]string{ "name": ost_name, } intMetrics := []*metrics{ { name: "write_bytes", value: 15201500833981, }, { name: "read_bytes", value: 78026117632000, }, { name: "write_calls", value: 71893382, }, { name: "read_calls", value: 203238095, }, { name: "cache_hit", value: 7393729777, }, { name: "cache_access", value: 19047063027, }, { name: "cache_miss", value: 11653333250, }, } for _, metric := range intMetrics { assert.True(t, acc.HasUIntValue(metric.name), metric.name) assert.True(t, acc.CheckTaggedValue(metric.name, metric.value, tags)) } err = os.RemoveAll(os.TempDir() + "/telegraf") require.NoError(t, err) }