Skip to content
This repository was archived by the owner on Aug 23, 2023. It is now read-only.

Commit 0a3d7a1

Browse files
committed
support adding arbitrary extra tags in jaeger traces
1 parent 8ea4223 commit 0a3d7a1

File tree

10 files changed

+37
-4
lines changed

10 files changed

+37
-4
lines changed

cmd/mt-store-cat/main.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ func main() {
167167
if err != nil {
168168
log.Fatal(4, "failed to initialize cassandra. %s", err)
169169
}
170-
tracer, traceCloser, err := conf.GetTracer(false, "")
170+
tracer, traceCloser, err := conf.GetTracer(false, "", nil)
171171
if err != nil {
172172
log.Fatal(4, "Could not initialize jaeger tracer: %s", err.Error())
173173
}

conf/tracing.go

+11-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ import (
99
jaegerlog "github.com/uber/jaeger-client-go/log"
1010
)
1111

12-
func GetTracer(enabled bool, addr string) (opentracing.Tracer, io.Closer, error) {
12+
// GetTracer returns a jaeger tracer
13+
// any tags specified will be added as process/tracer-level tags
14+
func GetTracer(enabled bool, addr string, tags map[string]string) (opentracing.Tracer, io.Closer, error) {
1315
// Sample configuration for testing. Use constant sampling to sample every trace
1416
// and enable LogSpan to log every span via configured Logger.
1517
cfg := jaegercfg.Configuration{
@@ -26,9 +28,16 @@ func GetTracer(enabled bool, addr string) (opentracing.Tracer, io.Closer, error)
2628

2729
jLogger := jaegerlog.StdLogger
2830

31+
options := []jaegercfg.Option{
32+
jaegercfg.Logger(jLogger),
33+
}
34+
for k, v := range tags {
35+
options = append(options, jaegercfg.Tag(k, v))
36+
}
37+
2938
tracer, closer, err := cfg.New(
3039
"metrictank",
31-
jaegercfg.Logger(jLogger),
40+
options...,
3241
)
3342
if err != nil {
3443
return nil, nil, err

docker/docker-chaos/metrictank.ini

+2
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ log-level = 2
9797
tracing-enabled = true
9898
# address of the jaeger agent to send data to
9999
tracing-addr = jaeger:6831
100+
# tracer/process-level tags to include, specified as comma-separated key:value pairs
101+
tracing-add-tags =
100102

101103
## Retention settings ##
102104
[retention]

docker/docker-cluster/metrictank.ini

+2
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ log-level = 2
9797
tracing-enabled = true
9898
# address of the jaeger agent to send data to
9999
tracing-addr = jaeger:6831
100+
# tracer/process-level tags to include, specified as comma-separated key:value pairs
101+
tracing-add-tags =
100102

101103
## Retention settings ##
102104
[retention]

docker/docker-dev-custom-cfg-kafka/metrictank.ini

+2
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ log-level = 2
9797
tracing-enabled = false
9898
# address of the jaeger agent to send data to
9999
tracing-addr = localhost:6831
100+
# tracer/process-level tags to include, specified as comma-separated key:value pairs
101+
tracing-add-tags =
100102

101103
## Retention settings ##
102104
[retention]

docs/config.md

+2
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@ log-level = 2
126126
tracing-enabled = false
127127
# address of the jaeger agent to send data to
128128
tracing-addr = localhost:6831
129+
# tracer/process-level tags to include, specified as comma-separated key:value pairs
130+
tracing-add-tags =
129131
```
130132

131133
## Retention settings ##

metrictank-sample.ini

+2
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@ log-level = 2
100100
tracing-enabled = false
101101
# address of the jaeger agent to send data to
102102
tracing-addr = localhost:6831
103+
# tracer/process-level tags to include, specified as comma-separated key:value pairs
104+
tracing-add-tags =
103105

104106
## Retention settings ##
105107
[retention]

metrictank.go

+11-1
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ var (
101101

102102
tracingEnabled = flag.Bool("tracing-enabled", false, "enable/disable distributed opentracing via jaeger")
103103
tracingAddr = flag.String("tracing-addr", "localhost:6831", "address of the jaeger agent to send data to")
104+
tracingAddTags = flag.String("tracing-add-tags", "", "tracer/process-level tags to include, specified as comma-separated key:value pairs")
104105
)
105106

106107
func init() {
@@ -270,7 +271,16 @@ func main() {
270271
/***********************************
271272
Initialize tracer
272273
***********************************/
273-
tracer, traceCloser, err := conf.GetTracer(*tracingEnabled, *tracingAddr)
274+
tagSpecs := strings.Split(strings.TrimSpace(*tracingAddTags), ",")
275+
tags := make(map[string]string)
276+
for _, tagSpec := range tagSpecs {
277+
split := strings.Split(tagSpec, ":")
278+
if len(split) != 2 {
279+
log.Fatal(4, "cannot parse tracing-add-tags value %q", tagSpec)
280+
}
281+
tags[split[0]] = split[1]
282+
}
283+
tracer, traceCloser, err := conf.GetTracer(*tracingEnabled, *tracingAddr, tags)
274284
if err != nil {
275285
log.Fatal(4, "Could not initialize jaeger tracer: %s", err.Error())
276286
}

scripts/config/metrictank-docker.ini

+2
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ log-level = 2
9797
tracing-enabled = false
9898
# address of the jaeger agent to send data to
9999
tracing-addr = localhost:6831
100+
# tracer/process-level tags to include, specified as comma-separated key:value pairs
101+
tracing-add-tags =
100102

101103
## Retention settings ##
102104
[retention]

scripts/config/metrictank-package.ini

+2
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ log-level = 2
9797
tracing-enabled = false
9898
# address of the jaeger agent to send data to
9999
tracing-addr = localhost:6831
100+
# tracer/process-level tags to include, specified as comma-separated key:value pairs
101+
tracing-add-tags =
100102

101103
## Retention settings ##
102104
[retention]

0 commit comments

Comments
 (0)