mirror of
https://github.com/weaveworks/scope.git
synced 2026-08-18 20:07:06 +00:00
Add tracing spans to app
Also log things like number of nodes in Map, total number of reports.
This commit is contained in:
@@ -3,6 +3,9 @@ package render
|
||||
import (
|
||||
"context"
|
||||
|
||||
opentracing "github.com/opentracing/opentracing-go"
|
||||
otlog "github.com/opentracing/opentracing-go/log"
|
||||
|
||||
"github.com/weaveworks/scope/report"
|
||||
)
|
||||
|
||||
@@ -51,6 +54,8 @@ func (ts Transformers) Transform(nodes Nodes) Nodes {
|
||||
|
||||
// Render renders the report and then transforms it
|
||||
func Render(ctx context.Context, rpt report.Report, renderer Renderer, transformer Transformer) Nodes {
|
||||
span, ctx := opentracing.StartSpanFromContext(ctx, "Render:"+typeName(renderer))
|
||||
defer span.Finish()
|
||||
return transformer.Transform(renderer.Render(ctx, rpt))
|
||||
}
|
||||
|
||||
@@ -65,6 +70,8 @@ func MakeReduce(renderers ...Renderer) Renderer {
|
||||
|
||||
// Render produces a set of Nodes given a Report.
|
||||
func (r Reduce) Render(ctx context.Context, rpt report.Report) Nodes {
|
||||
span, ctx := opentracing.StartSpanFromContext(ctx, "Reduce.Render")
|
||||
defer span.Finish()
|
||||
l := len(r)
|
||||
switch l {
|
||||
case 0:
|
||||
@@ -74,7 +81,9 @@ func (r Reduce) Render(ctx context.Context, rpt report.Report) Nodes {
|
||||
for _, renderer := range r {
|
||||
renderer := renderer // Pike!!
|
||||
go func() {
|
||||
span, ctx := opentracing.StartSpanFromContext(ctx, typeName(renderer))
|
||||
c <- renderer.Render(ctx, rpt)
|
||||
span.Finish()
|
||||
}()
|
||||
}
|
||||
for ; l > 1; l-- {
|
||||
@@ -101,6 +110,8 @@ func MakeMap(f MapFunc, r Renderer) Renderer {
|
||||
// Render transforms a set of Nodes produces by another Renderer.
|
||||
// using a map function
|
||||
func (m Map) Render(ctx context.Context, rpt report.Report) Nodes {
|
||||
span, ctx := opentracing.StartSpanFromContext(ctx, "Map.Render:"+functionName(m.MapFunc))
|
||||
defer span.Finish()
|
||||
var (
|
||||
input = m.Renderer.Render(ctx, rpt)
|
||||
output = newJoinResults(nil)
|
||||
@@ -113,6 +124,8 @@ func (m Map) Render(ctx context.Context, rpt report.Report) Nodes {
|
||||
output.add(inRenderable.ID, outRenderable)
|
||||
}
|
||||
}
|
||||
span.LogFields(otlog.Int("input.nodes", len(input.Nodes)),
|
||||
otlog.Int("ouput.nodes", len(output.nodes)))
|
||||
|
||||
return output.result(input)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user