Skip to content

Commit

Permalink
feat: log metrics on runner stop
Browse files Browse the repository at this point in the history
  • Loading branch information
alexec committed Sep 30, 2021
1 parent 2ac7baf commit a070247
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
17 changes: 17 additions & 0 deletions runner/sidecar/sidecar.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promauto"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/prometheus/common/expfmt"
jaegercfg "github.com/uber/jaeger-client-go/config"
jaegerlog "github.com/uber/jaeger-client-go/log"
"github.com/uber/jaeger-lib/metrics"
Expand Down Expand Up @@ -95,6 +96,8 @@ func Exec(ctx context.Context) error {

opentracing.SetGlobalTracer(tracer)

addStopHook(logMetrics)

if err := enrichSpec(ctx); err != nil {
return err
}
Expand Down Expand Up @@ -202,6 +205,20 @@ func Exec(ctx context.Context) error {
return nil
}

func logMetrics(ctx context.Context) error {
families, err := prometheus.DefaultGatherer.Gather()
if err != nil {
return err
}
w := sharedutil.LogWriter(logger)
for _, f := range families {
if _, err := expfmt.MetricFamilyToText(w, f); err != nil {
return err
}
}
return nil
}

func enrichSpec(ctx context.Context) error {
if err := enrichSources(ctx); err != nil {
return err
Expand Down
12 changes: 12 additions & 0 deletions shared/util/log.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package util

import (
"io"
"os"

"github.com/bombsimon/logrusr"
Expand All @@ -13,3 +14,14 @@ func NewLogger() logr.Logger {
l.SetOutput(os.Stdout)
return logrusr.NewLogger(l)
}

type logWriter struct{ logr.Logger }

func (l logWriter) Write(p []byte) (n int, err error) {
l.Info(string(p))
return len(p), nil
}

func LogWriter(l logr.Logger) io.Writer {
return logWriter{l}
}

0 comments on commit a070247

Please sign in to comment.