Skip to content

Commit b99114e

Browse files
authored
Test OTEL collector in xdock (#2184)
* Test OTEL collector in xdock Signed-off-by: Pavol Loffay <ploffay@redhat.com> * Do not expose sampling port Signed-off-by: Pavol Loffay <ploffay@redhat.com> * Fix image name Signed-off-by: Pavol Loffay <ploffay@redhat.com> * Remove unsued health check Signed-off-by: Pavol Loffay <ploffay@redhat.com> * Expose in agent receivers and do not expose http sampling in collector Signed-off-by: Pavol Loffay <ploffay@redhat.com> * Remove grpc Signed-off-by: Pavol Loffay <ploffay@redhat.com> * Set agent port in go client Signed-off-by: Pavol Loffay <ploffay@redhat.com> * Expose thrift HTTP port Signed-off-by: Pavol Loffay <ploffay@redhat.com>
1 parent d75eb14 commit b99114e

File tree

9 files changed

+95
-7
lines changed

9 files changed

+95
-7
lines changed

.travis.yml

+4
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ matrix:
2020
- go: "1.13.x"
2121
env:
2222
- CROSSDOCK=true
23+
- go: "1.13.x"
24+
env:
25+
- CROSSDOCK_OTEL=true
2326
- go: "1.13.x"
2427
env:
2528
- DOCKER=true
@@ -63,6 +66,7 @@ script:
6366
- if [ "$TESTS" == true ]; then make test-ci ; else echo 'skipping tests'; fi
6467
- if [ "$ALL_IN_ONE" == true ]; then bash ./scripts/travis/build-all-in-one-image.sh ; else echo 'skipping all_in_one'; fi
6568
- if [ "$CROSSDOCK" == true ]; then bash ./scripts/travis/build-crossdock.sh ; else echo 'skipping crossdock'; fi
69+
- if [ "$CROSSDOCK_OTEL" == true ]; then make build-crossdock crossdock-otel ; else echo 'skipping OpenTelemetry crossdock'; fi
6670
- if [ "$DOCKER" == true ]; then bash ./scripts/travis/build-docker-images.sh ; else echo 'skipping build-docker-images'; fi
6771
- if [ "$DOCKER" == true ]; then bash ./scripts/travis/upload-all-docker-images.sh ; else echo 'skipping docker upload'; fi
6872
- if [ "$DEPLOY" == true ]; then make build-all-platforms ; else echo 'skipping build-all-platforms'; fi

cmd/opentelemetry-collector/app/defaults/default_config.go

+3
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,14 @@ func Config(storageType string, zipkinHostPort string, factories config.Factorie
4747
for _, v := range receivers {
4848
recTypes = append(recTypes, v.Type())
4949
}
50+
hc := factories.Extensions["health_check"].CreateDefaultConfig()
5051
return &configmodels.Config{
5152
Receivers: receivers,
5253
Exporters: exporters,
5354
Processors: createProcessors(factories),
55+
Extensions: configmodels.Extensions{"health_check": hc},
5456
Service: configmodels.Service{
57+
Extensions: []string{"health_check"},
5558
Pipelines: map[string]*configmodels.Pipeline{
5659
"traces": {
5760
InputType: configmodels.TracesDataType,

cmd/opentelemetry-collector/app/defaults/default_config_test.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,10 @@ func TestDefaultConfig(t *testing.T) {
122122
require.NoError(t, err)
123123
require.NoError(t, config.ValidateConfig(cfg, zap.NewNop()))
124124

125+
assert.Equal(t, 1, len(cfg.Extensions))
126+
assert.Equal(t, 1, len(cfg.Service.Extensions))
127+
assert.Equal(t, "health_check", cfg.Service.Extensions[0])
128+
assert.Equal(t, "health_check", cfg.Extensions["health_check"].Name())
125129
assert.Equal(t, len(test.pipeline["traces"].Receivers), len(cfg.Receivers))
126130
assert.Equal(t, "jaeger", cfg.Receivers["jaeger"].Name())
127131
assert.Equal(t, 1, len(cfg.Processors))
@@ -137,5 +141,4 @@ func TestDefaultConfig(t *testing.T) {
137141
assert.EqualValues(t, test.pipeline, cfg.Service.Pipelines)
138142
})
139143
}
140-
141144
}

cmd/opentelemetry-collector/main.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ func getOTELConfigFile() string {
106106
f := &flag.FlagSet{}
107107
builder.Flags(f)
108108
// parse flags to bind the value
109-
f.Parse(os.Args)
109+
f.Parse(os.Args[1:])
110110
return builder.GetConfigFile()
111111
}
112112

crossdock/docker-compose.yml

+4
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ services:
2929
image: jaegertracing/xdock-go
3030
ports:
3131
- "8080-8082"
32+
environment:
33+
- AGENT_HOST_PORT=jaeger-agent:6831
3234

3335
node:
3436
image: jaegertracing/xdock-node
@@ -82,6 +84,8 @@ services:
8284
image: jaegertracing/test-driver
8385
ports:
8486
- "8080"
87+
environment:
88+
- JAEGER_COLLECTOR_HC_HOST_PORT=jaeger-collector:${JAEGER_COLLECTOR_HC_PORT}
8589
depends_on:
8690
- jaeger-query
8791
- jaeger-collector
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
version: '2'
2+
3+
services:
4+
jaeger-collector:
5+
image: jaegertracing/jaeger-opentelemetry-collector
6+
command: ["--es.num-shards=1", "--es.num-replicas=0", "--es.server-urls=http://elasticsearch:9200", "--collector.zipkin.http-port=9411"]
7+
ports:
8+
- "14250"
9+
- "14268"
10+
- "9411"
11+
environment:
12+
- SPAN_STORAGE_TYPE=elasticsearch
13+
- LOG_LEVEL=debug
14+
restart: on-failure
15+
depends_on:
16+
- elasticsearch
17+
18+
jaeger-agent:
19+
image: jaegertracing/jaeger-opentelemetry-collector
20+
command: ["--config=/config/otel-agent-config.yml"]
21+
volumes:
22+
- ./:/config/:ro
23+
ports:
24+
- "6831/udp"
25+
- "6832/udp"
26+
- "5778"
27+
restart: on-failure
28+
depends_on:
29+
- jaeger-collector
30+
31+
jaeger-query:
32+
image: jaegertracing/jaeger-query
33+
command: ["--es.num-shards=1", "--es.num-replicas=0", "--es.server-urls=http://elasticsearch:9200"]
34+
ports:
35+
- "16686:16686"
36+
- "16687"
37+
environment:
38+
- SPAN_STORAGE_TYPE=elasticsearch
39+
- LOG_LEVEL=debug
40+
restart: on-failure
41+
depends_on:
42+
- elasticsearch
43+
44+
elasticsearch:
45+
image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.3
46+
environment:
47+
- discovery.type=single-node
48+
ports:
49+
- "9200/tcp"

crossdock/otel-agent-config.yml

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
receivers:
2+
jaeger:
3+
remote_sampling:
4+
host_endpoint: localhost:5778
5+
fetch_endpoint: jaeger-collector:14250
6+
protocols:
7+
thrift_compact:
8+
thrift_binary:
9+
10+
processors:
11+
queued_retry: {}
12+
13+
exporters:
14+
jaeger:
15+
endpoint: jaeger-collector:14250
16+
17+
service:
18+
pipelines:
19+
traces:
20+
receivers: [jaeger]
21+
processors: [queued_retry]
22+
exporters: [jaeger]

crossdock/rules.mk

+7-5
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
XDOCK_YAML=crossdock/docker-compose.yml
22

3-
# FIXME temporarily switching back to tchannel
4-
# See https://github.com/jaegertracing/jaeger/issues/1229
5-
# JAEGER_COMPOSE_YAML=docker-compose/jaeger-docker-compose.yml
6-
JAEGER_COMPOSE_YAML=crossdock/jaeger-docker-compose.yml
3+
JAEGER_COMPOSE_YAML ?= crossdock/jaeger-docker-compose.yml
4+
JAEGER_COLLECTOR_HC_PORT ?= 14269
75

86
.PHONY: crossdock
97
crossdock:
108
docker-compose -f $(JAEGER_COMPOSE_YAML) -f $(XDOCK_YAML) kill
119
docker-compose -f $(JAEGER_COMPOSE_YAML) -f $(XDOCK_YAML) rm -f test_driver
12-
docker-compose -f $(JAEGER_COMPOSE_YAML) -f $(XDOCK_YAML) run crossdock 2>&1 | tee run-crossdock.log
10+
JAEGER_COLLECTOR_HC_PORT=${JAEGER_COLLECTOR_HC_PORT} docker-compose -f $(JAEGER_COMPOSE_YAML) -f $(XDOCK_YAML) run crossdock 2>&1 | tee run-crossdock.log
1311
grep 'Tests passed!' run-crossdock.log
1412

13+
.PHONY: crossdock-otel
14+
crossdock-otel:
15+
JAEGER_COMPOSE_YAML=crossdock/jaeger-opentelemetry-docker-compose.yml JAEGER_COLLECTOR_HC_PORT=13133 $(MAKE) crossdock
16+
1517
.PHONE: crossdock-logs
1618
crossdock-logs:
1719
docker-compose -f $(JAEGER_COMPOSE_YAML) -f $(XDOCK_YAML) logs

plugin/sampling/strategystore/static/strategy_store.go

+1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ func (h *strategyStore) GetSamplingStrategy(serviceName string) (*sampling.Sampl
5353
if strategy, ok := h.serviceStrategies[serviceName]; ok {
5454
return strategy, nil
5555
}
56+
h.logger.Debug("sampling strategy not found, using default", zap.String("service", serviceName))
5657
return h.defaultStrategy, nil
5758
}
5859

0 commit comments

Comments
 (0)