mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
pkg/infra: Check errors (#19705)
* pkg/infra: Check errors Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * pkg/infra: Handle errors Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * Update pkg/infra/usagestats/usage_stats.go Co-Authored-By: Marcus Efraimsson <marcus.efraimsson@gmail.com>
This commit is contained in:
parent
f971b808b8
commit
7349a6b96c
@ -209,20 +209,23 @@ func (w *FileLogWriter) DoRotate() error {
|
||||
|
||||
func (w *FileLogWriter) deleteOldLog() {
|
||||
dir := filepath.Dir(w.Filename)
|
||||
filepath.Walk(dir, func(path string, info os.FileInfo, err error) (returnErr error) {
|
||||
err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) (returnErr error) {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
returnErr = fmt.Errorf("Unable to delete old log '%s', error: %+v", path, r)
|
||||
}
|
||||
}()
|
||||
|
||||
if !info.IsDir() && info.ModTime().Unix() < (time.Now().Unix()-60*60*24*w.Maxdays) {
|
||||
if strings.HasPrefix(filepath.Base(path), filepath.Base(w.Filename)) {
|
||||
os.Remove(path)
|
||||
}
|
||||
if !info.IsDir() && info.ModTime().Unix() < (time.Now().Unix()-60*60*24*w.Maxdays) &&
|
||||
strings.HasPrefix(filepath.Base(path), filepath.Base(w.Filename)) {
|
||||
returnErr = os.Remove(path)
|
||||
return
|
||||
}
|
||||
return returnErr
|
||||
return
|
||||
})
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "FileLogWriter(%q): %s\n", w.Filename, err)
|
||||
}
|
||||
}
|
||||
|
||||
// destroy file logger, close file writer.
|
||||
@ -234,7 +237,9 @@ func (w *FileLogWriter) Close() {
|
||||
// there are no buffering messages in file logger in memory.
|
||||
// flush file means sync file from disk.
|
||||
func (w *FileLogWriter) Flush() {
|
||||
w.mw.fd.Sync()
|
||||
if err := w.mw.fd.Sync(); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "FileLogWriter(%q): %s\n", w.Filename, err)
|
||||
}
|
||||
}
|
||||
|
||||
// Reload file logger
|
||||
|
@ -209,7 +209,11 @@ func ReadLoggingConfig(modes []string, logsPath string, cfg *ini.File) {
|
||||
handler = log15.StreamHandler(os.Stdout, format)
|
||||
case "file":
|
||||
fileName := sec.Key("file_name").MustString(filepath.Join(logsPath, "grafana.log"))
|
||||
os.MkdirAll(filepath.Dir(fileName), os.ModePerm)
|
||||
dpath := filepath.Dir(fileName)
|
||||
if err := os.MkdirAll(dpath, os.ModePerm); err != nil {
|
||||
Root.Error("Failed to create directory", "dpath", dpath, "err", err)
|
||||
break
|
||||
}
|
||||
fileHandler := NewFileWriter()
|
||||
fileHandler.Filename = fileName
|
||||
fileHandler.Format = format
|
||||
@ -218,7 +222,10 @@ func ReadLoggingConfig(modes []string, logsPath string, cfg *ini.File) {
|
||||
fileHandler.Maxsize = 1 << uint(sec.Key("max_size_shift").MustInt(28))
|
||||
fileHandler.Daily = sec.Key("daily_rotate").MustBool(true)
|
||||
fileHandler.Maxdays = sec.Key("max_days").MustInt64(7)
|
||||
fileHandler.Init()
|
||||
if err := fileHandler.Init(); err != nil {
|
||||
Root.Error("Failed to create directory", "dpath", dpath, "err", err)
|
||||
break
|
||||
}
|
||||
|
||||
loggersToClose = append(loggersToClose, fileHandler)
|
||||
loggersToReload = append(loggersToReload, fileHandler)
|
||||
|
@ -547,9 +547,15 @@ func newMockGraphite(port string) (*mockGraphite, error) {
|
||||
conn, err := ln.Accept()
|
||||
if err != nil {
|
||||
errc <- err
|
||||
return
|
||||
}
|
||||
|
||||
var b bytes.Buffer
|
||||
io.Copy(&b, conn)
|
||||
if _, err := io.Copy(&b, conn); err != nil {
|
||||
errc <- err
|
||||
return
|
||||
}
|
||||
|
||||
readc <- b.String()
|
||||
}()
|
||||
|
||||
|
@ -32,10 +32,12 @@ func TestDatabaseStorageGarbageCollection(t *testing.T) {
|
||||
assert.Equal(t, err, nil)
|
||||
|
||||
// insert object that should never expire
|
||||
db.Set("key4", obj, 0)
|
||||
err = db.Set("key4", obj, 0)
|
||||
assert.Equal(t, err, nil)
|
||||
|
||||
getTime = time.Now
|
||||
db.Set("key5", obj, 1000*time.Second)
|
||||
err = db.Set("key5", obj, 1000*time.Second)
|
||||
assert.Equal(t, err, nil)
|
||||
|
||||
//run GC
|
||||
db.internalRunGC()
|
||||
|
@ -7,6 +7,7 @@ import (
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
type CacheableStruct struct {
|
||||
@ -29,19 +30,17 @@ func createTestClient(t *testing.T, opts *setting.RemoteCacheOptions, sqlstore *
|
||||
}
|
||||
|
||||
err := dc.Init()
|
||||
if err != nil {
|
||||
t.Fatalf("failed to init client for test. error: %v", err)
|
||||
}
|
||||
require.Nil(t, err, "Failed to init client for test")
|
||||
|
||||
return dc
|
||||
}
|
||||
|
||||
func TestCachedBasedOnConfig(t *testing.T) {
|
||||
|
||||
cfg := setting.NewCfg()
|
||||
cfg.Load(&setting.CommandLineArgs{
|
||||
err := cfg.Load(&setting.CommandLineArgs{
|
||||
HomePath: "../../../",
|
||||
})
|
||||
require.Nil(t, err, "Failed to load config")
|
||||
|
||||
client := createTestClient(t, cfg.RemoteCacheOptions, sqlstore.InitTestDB(t))
|
||||
runTestsForClient(t, client)
|
||||
|
@ -38,7 +38,7 @@ func (ts *TracingService) Init() error {
|
||||
ts.parseSettings()
|
||||
|
||||
if ts.enabled {
|
||||
ts.initGlobalTracer()
|
||||
return ts.initGlobalTracer()
|
||||
}
|
||||
|
||||
return nil
|
||||
|
@ -151,7 +151,11 @@ func (uss *UsageStatsService) sendUsageStats(oauthProviders map[string]bool) {
|
||||
data := bytes.NewBuffer(out)
|
||||
|
||||
client := http.Client{Timeout: 5 * time.Second}
|
||||
go client.Post(usageStatsURL, "application/json", data)
|
||||
go func() {
|
||||
if _, err := client.Post(usageStatsURL, "application/json", data); err != nil {
|
||||
metricsLogger.Error("Failed to send usage stats", "err", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
func (uss *UsageStatsService) updateTotalStats() {
|
||||
|
Loading…
Reference in New Issue
Block a user