Skip to content

Commit 295825e

Browse files
authored
Merge pull request #393 from terwey/graphite_dev
Log to the right instance for develop
2 parents a39d22e + f2da0b9 commit 295825e

File tree

3 files changed

+53
-48
lines changed

3 files changed

+53
-48
lines changed

graphite/carbon/app.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
package carbon
32

43
import (
@@ -10,13 +9,15 @@ import (
109
"strings"
1110
"sync"
1211

13-
"github.com/sirupsen/logrus"
1412
"github.com/signal18/replication-manager/graphite/cache"
1513
"github.com/signal18/replication-manager/graphite/carbonserver"
1614
"github.com/signal18/replication-manager/graphite/persister"
1715
"github.com/signal18/replication-manager/graphite/receiver"
16+
"github.com/sirupsen/logrus"
1817
)
1918

19+
var Log = logrus.New()
20+
2021
type App struct {
2122
sync.RWMutex
2223
ConfigFilename string
@@ -142,31 +143,31 @@ func (app *App) stopListeners() {
142143
if app.TCP != nil {
143144
app.TCP.Stop()
144145
app.TCP = nil
145-
logrus.Debug("[tcp] finished")
146+
Log.Debug("[tcp] finished")
146147
}
147148

148149
if app.Pickle != nil {
149150
app.Pickle.Stop()
150151
app.Pickle = nil
151-
logrus.Debug("[pickle] finished")
152+
Log.Debug("[pickle] finished")
152153
}
153154

154155
if app.UDP != nil {
155156
app.UDP.Stop()
156157
app.UDP = nil
157-
logrus.Debug("[udp] finished")
158+
Log.Debug("[udp] finished")
158159
}
159160

160161
if app.CarbonLink != nil {
161162
app.CarbonLink.Stop()
162163
app.CarbonLink = nil
163-
logrus.Debug("[carbonlink] finished")
164+
Log.Debug("[carbonlink] finished")
164165
}
165166

166167
if app.Carbonserver != nil {
167168
app.Carbonserver.Stop()
168169
app.Carbonserver = nil
169-
logrus.Debug("[carbonserver] finished")
170+
Log.Debug("[carbonserver] finished")
170171
}
171172
}
172173

@@ -176,25 +177,25 @@ func (app *App) stopAll() {
176177
if app.Persister != nil {
177178
app.Persister.Stop()
178179
app.Persister = nil
179-
logrus.Debug("[persister] finished")
180+
Log.Debug("[persister] finished")
180181
}
181182

182183
if app.Cache != nil {
183184
app.Cache.Stop()
184185
app.Cache = nil
185-
logrus.Debug("[cache] finished")
186+
Log.Debug("[cache] finished")
186187
}
187188

188189
if app.Collector != nil {
189190
app.Collector.Stop()
190191
app.Collector = nil
191-
logrus.Debug("[stat] finished")
192+
Log.Debug("[stat] finished")
192193
}
193194

194195
if app.exit != nil {
195196
close(app.exit)
196197
app.exit = nil
197-
logrus.Debug("[app] close(exit)")
198+
Log.Debug("[app] close(exit)")
198199
}
199200
}
200201

@@ -299,6 +300,7 @@ func (app *App) Start() (err error) {
299300
return
300301
}
301302

303+
carbonserver.Log = Log
302304
carbonserver := carbonserver.NewCarbonserverListener(core.Get)
303305
carbonserver.SetWhisperData(conf.Whisper.DataDir)
304306
carbonserver.SetMaxGlobs(conf.Carbonserver.MaxGlobs)

graphite/carbonserver/carbonserver.go

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,19 @@ import (
3535
"time"
3636

3737
"github.com/NYTimes/gziphandler"
38-
logger "github.com/sirupsen/logrus"
38+
trigram "github.com/dgryski/go-trigram"
3939
"github.com/dgryski/httputil"
4040
"github.com/gogo/protobuf/proto"
41+
pickle "github.com/kisielk/og-rek"
4142
pb "github.com/signal18/replication-manager/graphite/carbonzipperpb"
42-
trigram "github.com/dgryski/go-trigram"
4343
"github.com/signal18/replication-manager/graphite/helper"
44-
pickle "github.com/kisielk/og-rek"
4544
"github.com/signal18/replication-manager/graphite/points"
4645
whisper "github.com/signal18/replication-manager/graphite/whisper"
46+
"github.com/sirupsen/logrus"
4747
)
4848

49+
var Log = logrus.New()
50+
4951
type metricStruct struct {
5052
RenderRequests uint64
5153
RenderErrors uint64
@@ -146,7 +148,7 @@ func (listener *CarbonserverListener) fileListUpdater(dir string, tick <-chan ti
146148

147149
err := filepath.Walk(dir, func(p string, info os.FileInfo, err error) error {
148150
if err != nil {
149-
logger.Infof("[carbonserver] error processing %q: %v", p, err)
151+
Log.Infof("[carbonserver] error processing %q: %v", p, err)
150152
return nil
151153
}
152154

@@ -157,16 +159,16 @@ func (listener *CarbonserverListener) fileListUpdater(dir string, tick <-chan ti
157159
return nil
158160
})
159161

160-
logger.Debugln("[carbonserver] file scan took", time.Since(t0), ",", len(files), "items")
162+
Log.Debugln("[carbonserver] file scan took", time.Since(t0), ",", len(files), "items")
161163
t0 = time.Now()
162164

163165
idx := trigram.NewIndex(files)
164166

165-
logger.Debugln("[carbonserver] indexing took", time.Since(t0), len(idx), "trigrams")
167+
Log.Debugln("[carbonserver] indexing took", time.Since(t0), len(idx), "trigrams")
166168

167169
pruned := idx.Prune(0.95)
168170

169-
logger.Debugln("[carbonserver] pruned", pruned, "common trigrams")
171+
Log.Debugln("[carbonserver] pruned", pruned, "common trigrams")
170172

171173
if err == nil {
172174
listener.UpdateFileIndex(&fileIndex{idx, files})
@@ -316,7 +318,7 @@ func (listener *CarbonserverListener) findHandler(wr http.ResponseWriter, req *h
316318

317319
if format != "json" && format != "pickle" && format != "protobuf" {
318320
atomic.AddUint64(&listener.metrics.FindErrors, 1)
319-
logger.Infof("[carbonserver] dropping invalid uri (format=%s): %s",
321+
Log.Infof("[carbonserver] dropping invalid uri (format=%s): %s",
320322
format, req.URL.RequestURI())
321323
http.Error(wr, "Bad request (unsupported format)",
322324
http.StatusBadRequest)
@@ -325,7 +327,7 @@ func (listener *CarbonserverListener) findHandler(wr http.ResponseWriter, req *h
325327

326328
if query == "" {
327329
atomic.AddUint64(&listener.metrics.FindErrors, 1)
328-
logger.Infof("[carbonserver] dropping invalid request (query=): %s", req.URL.RequestURI())
330+
Log.Infof("[carbonserver] dropping invalid request (query=): %s", req.URL.RequestURI())
329331
http.Error(wr, "Bad request (no query)", http.StatusBadRequest)
330332
return
331333
}
@@ -353,7 +355,7 @@ func (listener *CarbonserverListener) findHandler(wr http.ResponseWriter, req *h
353355
}
354356
if err != nil {
355357
atomic.AddUint64(&listener.metrics.FindErrors, 1)
356-
logger.Infof("[carbonserver] failed to create %s data for glob %s: %s",
358+
Log.Infof("[carbonserver] failed to create %s data for glob %s: %s",
357359
format, *response.Name, err)
358360
return
359361
}
@@ -388,7 +390,7 @@ func (listener *CarbonserverListener) findHandler(wr http.ResponseWriter, req *h
388390
atomic.AddUint64(&listener.metrics.FindZero, 1)
389391
}
390392

391-
logger.Debugf("[carbonserver] find: %d hits for %s in %v", len(files), req.FormValue("query"), time.Since(t0))
393+
Log.Debugf("[carbonserver] find: %d hits for %s in %v", len(files), req.FormValue("query"), time.Since(t0))
392394
return
393395
}
394396

@@ -408,13 +410,13 @@ func (listener *CarbonserverListener) fetchHandler(wr http.ResponseWriter, req *
408410
if r := recover(); r != nil {
409411
var buf [4096]byte
410412
runtime.Stack(buf[:], false)
411-
logger.Infof("[carbonserver] panic handling request: %v\n%s\n%s", r, req.RequestURI, string(buf[:]))
413+
Log.Infof("[carbonserver] panic handling request: %v\n%s\n%s", r, req.RequestURI, string(buf[:]))
412414
}
413415
}()
414416

415417
if format != "json" && format != "pickle" && format != "protobuf" {
416418
atomic.AddUint64(&listener.metrics.RenderErrors, 1)
417-
logger.Infof("[carbonserver] dropping invalid uri (format=%s): %s",
419+
Log.Infof("[carbonserver] dropping invalid uri (format=%s): %s",
418420
format, req.URL.RequestURI())
419421
http.Error(wr, "Bad request (unsupported format)",
420422
http.StatusBadRequest)
@@ -425,13 +427,13 @@ func (listener *CarbonserverListener) fetchHandler(wr http.ResponseWriter, req *
425427

426428
i, err := strconv.Atoi(from)
427429
if err != nil {
428-
logger.Infof("[carbonserver] fromTime (%s) invalid: %s (in %s)", from, err, req.URL.RequestURI())
430+
Log.Infof("[carbonserver] fromTime (%s) invalid: %s (in %s)", from, err, req.URL.RequestURI())
429431
badTime = true
430432
}
431433
fromTime := int32(i)
432434
i, err = strconv.Atoi(until)
433435
if err != nil {
434-
logger.Infof("[carbonserver] untilTime (%s) invalid: %s (in %s)", from, err, req.URL.RequestURI())
436+
Log.Infof("[carbonserver] untilTime (%s) invalid: %s (in %s)", from, err, req.URL.RequestURI())
435437
badTime = true
436438
}
437439
untilTime := int32(i)
@@ -445,7 +447,7 @@ func (listener *CarbonserverListener) fetchHandler(wr http.ResponseWriter, req *
445447
multi, err := listener.fetchData(metric, fromTime, untilTime)
446448
if err != nil {
447449
atomic.AddUint64(&listener.metrics.RenderErrors, 1)
448-
logger.Infof("[carbonserver] %s", err)
450+
Log.Infof("[carbonserver] %s", err)
449451
http.Error(wr, fmt.Sprintf("Bad request (%s)", err),
450452
http.StatusBadRequest)
451453
}
@@ -499,12 +501,12 @@ func (listener *CarbonserverListener) fetchHandler(wr http.ResponseWriter, req *
499501

500502
if err != nil {
501503
atomic.AddUint64(&listener.metrics.RenderErrors, 1)
502-
logger.Infof("[carbonserver] failed to create %s data for %s: %s", format, "<metric>", err)
504+
Log.Infof("[carbonserver] failed to create %s data for %s: %s", format, "<metric>", err)
503505
return
504506
}
505507
wr.Write(b)
506508

507-
logger.Debugf("[carbonserver] fetch: served %q from %s to %s in %v", metric, from, until, time.Since(t0))
509+
Log.Debugf("[carbonserver] fetch: served %q from %s to %s in %v", metric, from, until, time.Since(t0))
508510

509511
}
510512

@@ -518,15 +520,15 @@ func (listener *CarbonserverListener) fetchSingleMetric(metric string, fromTime,
518520
// the FE/carbonzipper often requests metrics we don't have
519521
// We shouldn't really see this any more -- expandGlobs() should filter them out
520522
atomic.AddUint64(&listener.metrics.NotFound, 1)
521-
logger.Infof("[carbonserver] error opening %q: %v", path, err)
523+
Log.Infof("[carbonserver] error opening %q: %v", path, err)
522524
return nil, errors.New("Can't open metric")
523525
}
524526

525527
retentions := w.Retentions()
526528
now := int32(time.Now().Unix())
527529
diff := now - fromTime
528530

529-
logger.Infof("[carbonserver] Time %d: %d", now, fromTime)
531+
Log.Infof("[carbonserver] Time %d: %d", now, fromTime)
530532
bestStep := int32(retentions[0].SecondsPerPoint())
531533
for _, retention := range retentions {
532534
if int32(retention.MaxRetention()) >= diff {
@@ -537,13 +539,13 @@ func (listener *CarbonserverListener) fetchSingleMetric(metric string, fromTime,
537539

538540
if step == 0 {
539541
atomic.AddUint64(&listener.metrics.RenderErrors, 1)
540-
logger.Infof("[carbonserver] Can't find proper archive for the request for metric %q", path)
542+
Log.Infof("[carbonserver] Can't find proper archive for the request for metric %q", path)
541543
return nil, errors.New("Can't find proper archive")
542544
}
543545

544546
var cacheData []points.Point
545547
if step != bestStep {
546-
logger.Debugf("[carbonserver] Cache is not supported for this query (required step != best step). path=%q fromTime=%v untilTime=%v step=%v bestStep=%v", path, fromTime, untilTime, step, bestStep)
548+
Log.Debugf("[carbonserver] Cache is not supported for this query (required step != best step). path=%q fromTime=%v untilTime=%v step=%v bestStep=%v", path, fromTime, untilTime, step, bestStep)
547549
} else {
548550
// query cache
549551
cacheStartTime := time.Now()
@@ -552,21 +554,21 @@ func (listener *CarbonserverListener) fetchSingleMetric(metric string, fromTime,
552554
atomic.AddUint64(&listener.metrics.CacheWaitTimeFetchNS, waitTime)
553555
}
554556

555-
logger.Debugf("[carbonserver] fetching disk metric=%v from=%v until=%v", metric, fromTime, untilTime)
557+
Log.Debugf("[carbonserver] fetching disk metric=%v from=%v until=%v", metric, fromTime, untilTime)
556558
atomic.AddUint64(&listener.metrics.DiskRequests, 1)
557559
diskStartTime := time.Now()
558560
points, err := w.Fetch(int(fromTime), int(untilTime))
559561
w.Close()
560562
if err != nil {
561563
atomic.AddUint64(&listener.metrics.RenderErrors, 1)
562-
logger.Infof("[carbonserver] failed to fetch points from %s: %s", path, err)
564+
Log.Infof("[carbonserver] failed to fetch points from %s: %s", path, err)
563565
return nil, errors.New("failed to fetch points")
564566
}
565567

566568
// Should never happen, because we have a check for proper archive now
567569
if points == nil {
568570
atomic.AddUint64(&listener.metrics.RenderErrors, 1)
569-
logger.Infof("[carbonserver] Metric time range not found: metric=%s from=%d to=%d ", metric, fromTime, untilTime)
571+
Log.Infof("[carbonserver] Metric time range not found: metric=%s from=%d to=%d ", metric, fromTime, untilTime)
570572
return nil, errors.New("time range not found")
571573
}
572574
atomic.AddUint64(&listener.metrics.MetricsReturned, 1)
@@ -622,7 +624,7 @@ func (listener *CarbonserverListener) fetchData(metric string, fromTime, untilTi
622624
var multi pb.MultiFetchResponse
623625
for i, metric := range files {
624626
if !leafs[i] {
625-
logger.Debugf("[carbonserver] skipping directory = %q", metric)
627+
Log.Debugf("[carbonserver] skipping directory = %q", metric)
626628
// can't fetch a directory
627629
continue
628630
}
@@ -648,7 +650,7 @@ func (listener *CarbonserverListener) infoHandler(wr http.ResponseWriter, req *h
648650

649651
if format != "json" && format != "protobuf" {
650652
atomic.AddUint64(&listener.metrics.InfoErrors, 1)
651-
logger.Infof("[carbonserver] dropping invalid uri (format=%s): %s",
653+
Log.Infof("[carbonserver] dropping invalid uri (format=%s): %s",
652654
format, req.URL.RequestURI())
653655
http.Error(wr, "Bad request (unsupported format)",
654656
http.StatusBadRequest)
@@ -660,7 +662,7 @@ func (listener *CarbonserverListener) infoHandler(wr http.ResponseWriter, req *h
660662

661663
if err != nil {
662664
atomic.AddUint64(&listener.metrics.NotFound, 1)
663-
logger.Debugf("[carbonserver] failed to %s", err)
665+
Log.Debugf("[carbonserver] failed to %s", err)
664666
http.Error(wr, "Metric not found", http.StatusNotFound)
665667
return
666668
}
@@ -696,12 +698,12 @@ func (listener *CarbonserverListener) infoHandler(wr http.ResponseWriter, req *h
696698
}
697699
if err != nil {
698700
atomic.AddUint64(&listener.metrics.RenderErrors, 1)
699-
logger.Infof("[carbonserver] failed to create %s data for %s: %s", format, path, err)
701+
Log.Infof("[carbonserver] failed to create %s data for %s: %s", format, path, err)
700702
return
701703
}
702704
wr.Write(b)
703705

704-
logger.Debugf("[carbonserver] served info for %s", metric)
706+
Log.Debugf("[carbonserver] served info for %s", metric)
705707
return
706708
}
707709

@@ -749,15 +751,15 @@ func (listener *CarbonserverListener) Stop() error {
749751
}
750752

751753
func (listener *CarbonserverListener) Listen(listen string) error {
752-
logger.Warnln("[carbonserver] carbonserver support is still experimental, use at your own risk")
753-
logger.Infoln("[carbonserver] starting carbonserver")
754+
Log.Warnln("[carbonserver] carbonserver support is still experimental, use at your own risk")
755+
Log.Infoln("[carbonserver] starting carbonserver")
754756

755-
logger.Infof("[carbonserver] reading whisper files from: %s", listener.whisperData)
757+
Log.Infof("[carbonserver] reading whisper files from: %s", listener.whisperData)
756758

757-
logger.Infof("[carbonserver] maximum brace expansion set to: %d", listener.maxGlobs)
759+
Log.Infof("[carbonserver] maximum brace expansion set to: %d", listener.maxGlobs)
758760

759761
if listener.scanFrequency != 0 {
760-
logger.Infoln("[carbonserver] use file cache with scan frequency", listener.scanFrequency)
762+
Log.Infoln("[carbonserver] use file cache with scan frequency", listener.scanFrequency)
761763
force := make(chan struct{})
762764
listener.exitChan = make(chan struct{})
763765
go listener.fileListUpdater(listener.whisperData, time.Tick(listener.scanFrequency), force, listener.exitChan)
@@ -776,7 +778,7 @@ func (listener *CarbonserverListener) Listen(listen string) error {
776778
fmt.Fprintln(w, "User-agent: *\nDisallow: /")
777779
})
778780

779-
logger.Infof("[carbonserver] listening on %s", listen)
781+
Log.Infof("[carbonserver] listening on %s", listen)
780782
tcpAddr, err := net.ResolveTCPAddr("tcp", listen)
781783
if err != nil {
782784
return err
@@ -815,7 +817,7 @@ func (listener *CarbonserverListener) bucketRequestTimes(req *http.Request, t ti
815817
} else {
816818
// Too big? Increment overflow bucket and log
817819
atomic.AddUint64(&listener.timeBuckets[listener.buckets], 1)
818-
logger.Infof("[carbonserver] Slow Request: %s: %s", t.String(), req.URL.String())
820+
Log.Infof("[carbonserver] Slow Request: %s: %s", t.String(), req.URL.String())
819821
}
820822
}
821823

graphite/graphite.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ func RunCarbon(ShareDir string, DataDir string, GraphiteCarbonPort int, Graphite
233233
os.Exit(1)
234234
}
235235

236+
carbon.Log = log
236237
app := carbon.New(DataDir + "/carbon.conf")
237238

238239
if err = app.ParseConfig(); err != nil {

0 commit comments

Comments
 (0)