Skip to content

Commit 7cbb25d

Browse files
objectiserpavolloffay
authored andcommitted
Update to jaeger-lib 2 and latest sha for jaeger-client-go, to pick u… (#1282)
* Update to jaeger-lib 2 and latest sha for jaeger-client-go, to pick up refactored metric names Signed-off-by: Gary Brown <[email protected]> * Change go tracer metric root namespace so now 'jaeger_tracer_' rather than 'jaeger_client_jaeger_tracer' Signed-off-by: Gary Brown <[email protected]> * Update the changelog Signed-off-by: Gary Brown <[email protected]> * Update jaeger go client to latest SHA, to fix jaeger tracer metric namespace separator Signed-off-by: Gary Brown <[email protected]>
1 parent 94e9228 commit 7cbb25d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+264
-251
lines changed

Diff for: CHANGELOG.md

+10
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,16 @@ Changes by Version
88

99
##### Breaking Changes
1010

11+
- Update to jaeger-lib 2 and latest sha for jaeger-client-go, to pick up refactored metric names ([#1282](https://github.com/jaegertracing/jaeger/pull/1282), [@objectiser](https://github.com/objectiser))
12+
13+
Update to latest version of `jaeger-lib`, which includes a change to the naming of counters exported to
14+
prometheus, to follow the convention of using a `_total` suffix, e.g. `jaeger_query_requests` is now
15+
`jaeger_query_requests_total`.
16+
17+
Jaeger go client metrics, previously under the namespace `jaeger_client_jaeger_` are now under
18+
`jaeger_tracer_`.
19+
20+
1121
- Add gRPC metrics to agent ([#1180](https://github.com/jaegertracing/jaeger/pull/1180), [@pavolloffay](https://github.com/pavolloffay))
1222

1323
The following metrics:

Diff for: Gopkg.lock

+7-8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: Gopkg.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,11 @@ required = [
8181

8282
[[constraint]]
8383
name = "github.com/uber/jaeger-client-go"
84-
version = "^2.15.0"
84+
revision = "6733ee486c780528f2c8088305e16fdb685134c7"
8585

8686
[[constraint]]
8787
name = "github.com/uber/jaeger-lib"
88-
version = "^1.5.0"
88+
version = "^2.0.0"
8989

9090
[[constraint]]
9191
name = "github.com/uber/tchannel-go"

Diff for: cmd/agent/app/builder.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -141,10 +141,10 @@ func (b *Builder) getProcessors(rep reporter.Reporter, mFactory metrics.Factory,
141141
default:
142142
return nil, fmt.Errorf("cannot find agent processor for data model %v", cfg.Model)
143143
}
144-
metrics := mFactory.Namespace("", map[string]string{
144+
metrics := mFactory.Namespace(metrics.NSOptions{Name: "", Tags: map[string]string{
145145
"protocol": string(cfg.Protocol),
146146
"model": string(cfg.Model),
147-
})
147+
}})
148148
processor, err := cfg.GetThriftProcessor(metrics, protoFactory, handler, logger)
149149
if err != nil {
150150
return nil, err

Diff for: cmd/agent/app/configmanager/metrics_test.go

+6-7
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ import (
2121

2222
"github.com/stretchr/testify/assert"
2323
"github.com/stretchr/testify/require"
24-
"github.com/uber/jaeger-lib/metrics"
25-
mTestutils "github.com/uber/jaeger-lib/metrics/testutils"
24+
"github.com/uber/jaeger-lib/metrics/metricstest"
2625

2726
"github.com/jaegertracing/jaeger/thrift-gen/baggage"
2827
"github.com/jaegertracing/jaeger/thrift-gen/sampling"
@@ -46,16 +45,16 @@ func (noopManager) GetBaggageRestrictions(s string) ([]*baggage.BaggageRestricti
4645

4746
func TestMetrics(t *testing.T) {
4847
tests := []struct {
49-
expected []mTestutils.ExpectedMetric
48+
expected []metricstest.ExpectedMetric
5049
err error
5150
}{
52-
{expected: []mTestutils.ExpectedMetric{
51+
{expected: []metricstest.ExpectedMetric{
5352
{Name: "collector-proxy", Tags: map[string]string{"result": "ok", "endpoint": "sampling"}, Value: 1},
5453
{Name: "collector-proxy", Tags: map[string]string{"result": "err", "endpoint": "sampling"}, Value: 0},
5554
{Name: "collector-proxy", Tags: map[string]string{"result": "ok", "endpoint": "baggage"}, Value: 1},
5655
{Name: "collector-proxy", Tags: map[string]string{"result": "err", "endpoint": "baggage"}, Value: 0},
5756
}},
58-
{expected: []mTestutils.ExpectedMetric{
57+
{expected: []metricstest.ExpectedMetric{
5958
{Name: "collector-proxy", Tags: map[string]string{"result": "ok", "endpoint": "sampling"}, Value: 0},
6059
{Name: "collector-proxy", Tags: map[string]string{"result": "err", "endpoint": "sampling"}, Value: 1},
6160
{Name: "collector-proxy", Tags: map[string]string{"result": "ok", "endpoint": "baggage"}, Value: 0},
@@ -64,7 +63,7 @@ func TestMetrics(t *testing.T) {
6463
}
6564

6665
for _, test := range tests {
67-
metricsFactory := metrics.NewLocalFactory(time.Microsecond)
66+
metricsFactory := metricstest.NewFactory(time.Microsecond)
6867
mgr := WrapWithMetrics(&noopManager{}, metricsFactory)
6968

7069
if test.err != nil {
@@ -82,6 +81,6 @@ func TestMetrics(t *testing.T) {
8281
require.NoError(t, err)
8382
require.NotNil(t, b)
8483
}
85-
mTestutils.AssertCounterMetrics(t, metricsFactory, test.expected...)
84+
metricsFactory.AssertCounterMetrics(t, test.expected...)
8685
}
8786
}

Diff for: cmd/agent/app/httpserver/server_test.go

+16-18
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,15 @@ import (
2525

2626
"github.com/stretchr/testify/assert"
2727
"github.com/stretchr/testify/require"
28-
"github.com/uber/jaeger-lib/metrics"
29-
"github.com/uber/jaeger-lib/metrics/testutils"
30-
mTestutils "github.com/uber/jaeger-lib/metrics/testutils"
28+
"github.com/uber/jaeger-lib/metrics/metricstest"
3129

3230
tSampling092 "github.com/jaegertracing/jaeger/cmd/agent/app/httpserver/thrift-0.9.2"
3331
"github.com/jaegertracing/jaeger/thrift-gen/baggage"
3432
"github.com/jaegertracing/jaeger/thrift-gen/sampling"
3533
)
3634

3735
type testServer struct {
38-
metricsFactory *metrics.LocalFactory
36+
metricsFactory *metricstest.Factory
3937
mgr *mockManager
4038
server *httptest.Server
4139
}
@@ -45,7 +43,7 @@ func withServer(
4543
mockBaggageResponse []*baggage.BaggageRestriction,
4644
runTest func(server *testServer),
4745
) {
48-
metricsFactory := metrics.NewLocalFactory(0)
46+
metricsFactory := metricstest.NewFactory(0)
4947
mgr := &mockManager{
5048
samplingResponse: mockSamplingResponse,
5149
baggageResponse: mockBaggageResponse,
@@ -100,7 +98,7 @@ func TestHTTPHandler(t *testing.T) {
10098
})
10199

102100
// handler must emit metrics
103-
testutils.AssertCounterMetrics(t, ts.metricsFactory, []testutils.ExpectedMetric{
101+
ts.metricsFactory.AssertCounterMetrics(t, []metricstest.ExpectedMetric{
104102
{Name: "http-server.requests", Tags: map[string]string{"type": "sampling"}, Value: 1},
105103
{Name: "http-server.requests", Tags: map[string]string{"type": "sampling-legacy"}, Value: 1},
106104
{Name: "http-server.requests", Tags: map[string]string{"type": "baggage"}, Value: 1},
@@ -116,14 +114,14 @@ func TestHTTPHandlerErrors(t *testing.T) {
116114
url string
117115
statusCode int
118116
body string
119-
metrics []mTestutils.ExpectedMetric
117+
metrics []metricstest.ExpectedMetric
120118
}{
121119
{
122120
description: "no service name",
123121
url: "",
124122
statusCode: http.StatusBadRequest,
125123
body: "'service' parameter must be provided once\n",
126-
metrics: []mTestutils.ExpectedMetric{
124+
metrics: []metricstest.ExpectedMetric{
127125
{Name: "http-server.errors", Tags: map[string]string{"source": "all", "status": "4xx"}, Value: 1},
128126
},
129127
},
@@ -132,7 +130,7 @@ func TestHTTPHandlerErrors(t *testing.T) {
132130
url: "?service=Y&service=Y",
133131
statusCode: http.StatusBadRequest,
134132
body: "'service' parameter must be provided once\n",
135-
metrics: []mTestutils.ExpectedMetric{
133+
metrics: []metricstest.ExpectedMetric{
136134
{Name: "http-server.errors", Tags: map[string]string{"source": "all", "status": "4xx"}, Value: 1},
137135
},
138136
},
@@ -141,7 +139,7 @@ func TestHTTPHandlerErrors(t *testing.T) {
141139
url: "/baggageRestrictions?service=Y&service=Y",
142140
statusCode: http.StatusBadRequest,
143141
body: "'service' parameter must be provided once\n",
144-
metrics: []mTestutils.ExpectedMetric{
142+
metrics: []metricstest.ExpectedMetric{
145143
{Name: "http-server.errors", Tags: map[string]string{"source": "all", "status": "4xx"}, Value: 1},
146144
},
147145
},
@@ -150,7 +148,7 @@ func TestHTTPHandlerErrors(t *testing.T) {
150148
url: "?service=Y",
151149
statusCode: http.StatusInternalServerError,
152150
body: "collector error: no mock response provided\n",
153-
metrics: []mTestutils.ExpectedMetric{
151+
metrics: []metricstest.ExpectedMetric{
154152
{Name: "http-server.errors", Tags: map[string]string{"source": "collector-proxy", "status": "5xx"}, Value: 1},
155153
},
156154
},
@@ -159,7 +157,7 @@ func TestHTTPHandlerErrors(t *testing.T) {
159157
url: "/baggageRestrictions?service=Y",
160158
statusCode: http.StatusInternalServerError,
161159
body: "collector error: no mock response provided\n",
162-
metrics: []mTestutils.ExpectedMetric{
160+
metrics: []metricstest.ExpectedMetric{
163161
{Name: "http-server.errors", Tags: map[string]string{"source": "collector-proxy", "status": "5xx"}, Value: 1},
164162
},
165163
},
@@ -169,7 +167,7 @@ func TestHTTPHandlerErrors(t *testing.T) {
169167
url: "?service=Y",
170168
statusCode: http.StatusInternalServerError,
171169
body: "Cannot marshall Thrift to JSON\n",
172-
metrics: []mTestutils.ExpectedMetric{
170+
metrics: []metricstest.ExpectedMetric{
173171
{Name: "http-server.errors", Tags: map[string]string{"source": "thrift", "status": "5xx"}, Value: 1},
174172
},
175173
},
@@ -188,7 +186,7 @@ func TestHTTPHandlerErrors(t *testing.T) {
188186
}
189187

190188
if len(testCase.metrics) > 0 {
191-
mTestutils.AssertCounterMetrics(t, ts.metricsFactory, testCase.metrics...)
189+
ts.metricsFactory.AssertCounterMetrics(t, testCase.metrics...)
192190
}
193191
})
194192
})
@@ -202,14 +200,14 @@ func TestHTTPHandlerErrors(t *testing.T) {
202200
w := &mockWriter{header: make(http.Header)}
203201
handler.serveSamplingHTTP(w, req, false)
204202

205-
mTestutils.AssertCounterMetrics(t, ts.metricsFactory,
206-
mTestutils.ExpectedMetric{Name: "http-server.errors", Tags: map[string]string{"source": "write", "status": "5xx"}, Value: 1})
203+
ts.metricsFactory.AssertCounterMetrics(t,
204+
metricstest.ExpectedMetric{Name: "http-server.errors", Tags: map[string]string{"source": "write", "status": "5xx"}, Value: 1})
207205

208206
req = httptest.NewRequest("GET", "http://localhost:80/baggageRestrictions?service=X", nil)
209207
handler.serveBaggageHTTP(w, req)
210208

211-
mTestutils.AssertCounterMetrics(t, ts.metricsFactory,
212-
mTestutils.ExpectedMetric{Name: "http-server.errors", Tags: map[string]string{"source": "write", "status": "5xx"}, Value: 2})
209+
ts.metricsFactory.AssertCounterMetrics(t,
210+
metricstest.ExpectedMetric{Name: "http-server.errors", Tags: map[string]string{"source": "write", "status": "5xx"}, Value: 2})
213211
})
214212
})
215213
}

Diff for: cmd/agent/app/processors/thrift_processor_test.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
"github.com/stretchr/testify/assert"
2424
"github.com/stretchr/testify/require"
2525
"github.com/uber/jaeger-lib/metrics"
26-
mTestutils "github.com/uber/jaeger-lib/metrics/testutils"
26+
"github.com/uber/jaeger-lib/metrics/metricstest"
2727
"go.uber.org/zap"
2828

2929
"github.com/jaegertracing/jaeger/cmd/agent/app/reporter"
@@ -75,7 +75,7 @@ func createProcessor(t *testing.T, mFactory metrics.Factory, tFactory thrift.TPr
7575
return transport.Addr().String(), processor
7676
}
7777

78-
func initCollectorAndReporter(t *testing.T) (*metrics.LocalFactory, *testutils.MockTCollector, reporter.Reporter) {
78+
func initCollectorAndReporter(t *testing.T) (*metricstest.Factory, *testutils.MockTCollector, reporter.Reporter) {
7979
metricsFactory, collector := testutils.InitMockCollector(t)
8080
reporter := reporter.WrapWithMetrics(tchreporter.New("jaeger-collector", collector.Channel, time.Second, nil, zap.NewNop()), metricsFactory)
8181
return metricsFactory, collector, reporter
@@ -115,7 +115,7 @@ func (h failingHandler) Process(iprot, oprot thrift.TProtocol) (success bool, er
115115
}
116116

117117
func TestProcessor_HandlerError(t *testing.T) {
118-
metricsFactory := metrics.NewLocalFactory(0)
118+
metricsFactory := metricstest.NewFactory(0)
119119

120120
handler := failingHandler{err: errors.New("doh")}
121121

@@ -137,9 +137,9 @@ func TestProcessor_HandlerError(t *testing.T) {
137137
time.Sleep(time.Millisecond)
138138
}
139139

140-
mTestutils.AssertCounterMetrics(t, metricsFactory,
141-
mTestutils.ExpectedMetric{Name: "thrift.udp.t-processor.handler-errors", Value: 1},
142-
mTestutils.ExpectedMetric{Name: "thrift.udp.server.packets.processed", Value: 1},
140+
metricsFactory.AssertCounterMetrics(t,
141+
metricstest.ExpectedMetric{Name: "thrift.udp.t-processor.handler-errors", Value: 1},
142+
metricstest.ExpectedMetric{Name: "thrift.udp.server.packets.processed", Value: 1},
143143
)
144144
}
145145

@@ -170,7 +170,7 @@ func TestJaegerProcessor(t *testing.T) {
170170
}
171171
}
172172

173-
func assertJaegerProcessorCorrectness(t *testing.T, collector *testutils.MockTCollector, metricsFactory *metrics.LocalFactory) {
173+
func assertJaegerProcessorCorrectness(t *testing.T, collector *testutils.MockTCollector, metricsFactory *metricstest.Factory) {
174174
sizeF := func() int {
175175
return len(collector.GetJaegerBatches())
176176
}
@@ -180,7 +180,7 @@ func assertJaegerProcessorCorrectness(t *testing.T, collector *testutils.MockTCo
180180
assertProcessorCorrectness(t, metricsFactory, sizeF, nameF, "jaeger")
181181
}
182182

183-
func assertZipkinProcessorCorrectness(t *testing.T, collector *testutils.MockTCollector, metricsFactory *metrics.LocalFactory) {
183+
func assertZipkinProcessorCorrectness(t *testing.T, collector *testutils.MockTCollector, metricsFactory *metricstest.Factory) {
184184
sizeF := func() int {
185185
return len(collector.GetZipkinSpans())
186186
}
@@ -192,7 +192,7 @@ func assertZipkinProcessorCorrectness(t *testing.T, collector *testutils.MockTCo
192192

193193
func assertProcessorCorrectness(
194194
t *testing.T,
195-
metricsFactory *metrics.LocalFactory,
195+
metricsFactory *metricstest.Factory,
196196
sizeF func() int,
197197
nameF func() string,
198198
format string,
@@ -218,7 +218,7 @@ func assertProcessorCorrectness(
218218
}
219219

220220
// agentReporter must emit metrics
221-
mTestutils.AssertCounterMetrics(t, metricsFactory, []mTestutils.ExpectedMetric{
221+
metricsFactory.AssertCounterMetrics(t, []metricstest.ExpectedMetric{
222222
{Name: "reporter.batches.submitted", Tags: map[string]string{"format": format}, Value: 1},
223223
{Name: "reporter.spans.submitted", Tags: map[string]string{"format": format}, Value: 1},
224224
{Name: "thrift.udp.server.packets.processed", Value: 1},

Diff for: cmd/agent/app/reporter/grpc/collector_proxy.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func NewCollectorProxy(o *Options, mFactory metrics.Factory, logger *zap.Logger)
5454
// It does not return error if the collector is not running
5555
conn, _ = grpc.Dial(o.CollectorHostPort[0], grpc.WithInsecure())
5656
}
57-
grpcMetrics := mFactory.Namespace("", map[string]string{"protocol": "grpc"})
57+
grpcMetrics := mFactory.Namespace(metrics.NSOptions{Name: "", Tags: map[string]string{"protocol": "grpc"}})
5858
return &ProxyBuilder{
5959
conn: conn,
6060
reporter: aReporter.WrapWithMetrics(NewReporter(conn, logger), grpcMetrics),

Diff for: cmd/agent/app/reporter/grpc/collector_proxy_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/uber/jaeger-lib/metrics"
2525
"go.uber.org/zap"
2626
"google.golang.org/grpc"
27+
"github.com/uber/jaeger-lib/metrics/metricstest"
2728

2829
"github.com/jaegertracing/jaeger/proto-gen/api_v2"
2930
"github.com/jaegertracing/jaeger/thrift-gen/jaeger"
@@ -57,7 +58,7 @@ func TestMultipleCollectors(t *testing.T) {
5758
})
5859
defer s2.Stop()
5960

60-
mFactory := metrics.NewLocalFactory(time.Microsecond)
61+
mFactory := metricstest.NewFactory(time.Microsecond)
6162
proxy, err := NewCollectorProxy(&Options{CollectorHostPort: []string{addr1.String(), addr2.String()}}, mFactory, zap.NewNop())
6263
require.NoError(t, err)
6364
require.NotNil(t, proxy)

Diff for: cmd/agent/app/reporter/metrics.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func WrapWithMetrics(reporter Reporter, mFactory metrics.Factory) *MetricsReport
5555
batchesMetrics := map[string]batchMetrics{}
5656
for _, s := range []string{zipkinBatches, jaegerBatches} {
5757
bm := batchMetrics{}
58-
metrics.Init(&bm, mFactory.Namespace("reporter", map[string]string{"format": s}), nil)
58+
metrics.Init(&bm, mFactory.Namespace(metrics.NSOptions{Name: "reporter", Tags: map[string]string{"format": s}}), nil)
5959
batchesMetrics[s] = bm
6060
}
6161
return &MetricsReporter{wrapped: reporter, metrics: batchesMetrics}

0 commit comments

Comments
 (0)