Skip to content

Commit

Permalink
Use Xdock jaeger compose file (#213)
Browse files Browse the repository at this point in the history
  • Loading branch information
pavolloffay authored and black-adder committed Nov 1, 2017
1 parent ffe98ab commit 016415c
Show file tree
Hide file tree
Showing 8 changed files with 75 additions and 52 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -12,3 +12,4 @@ gen/thrift/js
gen/thrift/py
vendor/
crossdock-main
crossdock/jaeger-docker-compose.yml
8 changes: 7 additions & 1 deletion crossdock/Dockerfile
@@ -1,4 +1,10 @@
FROM scratch

ADD crossdock /
CMD ["/crossdock"]

ENV AGENT_HOST_PORT=jaeger-agent:5775
ENV SAMPLING_SEVER_URL=http://test_driver:5778/sampling

EXPOSE 8080-8082

CMD ["/crossdock"]
25 changes: 7 additions & 18 deletions crossdock/docker-compose.yml
Expand Up @@ -40,32 +40,21 @@ services:
image: jaegertracing/xdock-java
ports:
- "8080-8082"
links:
- "jaeger-agent:test_driver"

python:
image: jaegertracing/xdock-py
ports:
- "8080:8082"

cassandra:
image: "cassandra:3.9"
links:
- "jaeger-agent:test_driver"

test_driver:
image: jaegertracing/test-driver
links:
- cassandra
depends_on:
- cassandra
- jaeger-query
- jaeger-collector
- jaeger-agent
ports:
- "8080"

# node:
# image: yarpc/yarpc-node
# ports:
# - "8080-8082"
#
# python-sync:
# image: yarpc/yarpc-python
# ports:
# - 8080
# environment:
# - SYNC=1
22 changes: 15 additions & 7 deletions crossdock/endtoend/handler.go
Expand Up @@ -35,14 +35,12 @@ var (
endToEndConfig = config.Configuration{
Disabled: false,
Sampler: &config.SamplerConfig{
Type: defaultSamplerType,
Param: 1.0,
SamplingServerURL: "http://test_driver:5778/sampling",
Type: defaultSamplerType,
Param: 1.0,
SamplingRefreshInterval: 5 * time.Second,
},
Reporter: &config.ReporterConfig{
BufferFlushInterval: time.Second,
LocalAgentHostPort: "test_driver:5775",
},
}
)
Expand All @@ -65,7 +63,9 @@ var (
type Handler struct {
sync.RWMutex

tracers map[string]opentracing.Tracer
tracers map[string]opentracing.Tracer
agentHostPort string
samplingServerURL string
}

type traceRequest struct {
Expand All @@ -76,14 +76,22 @@ type traceRequest struct {
}

// NewHandler returns a Handler.
func NewHandler() *Handler {
func NewHandler(agentHostPort string, samplingServerURL string) *Handler {
return &Handler{
tracers: make(map[string]opentracing.Tracer),
agentHostPort: agentHostPort,
samplingServerURL: samplingServerURL,
tracers: make(map[string]opentracing.Tracer),
}
}

// init initializes the handler with a tracer
func (h *Handler) init(cfg config.Configuration) error {
if cfg.Sampler != nil && cfg.Sampler.SamplingServerURL == "" {
cfg.Sampler.SamplingServerURL = h.samplingServerURL
}
if cfg.Reporter != nil && cfg.Reporter.LocalAgentHostPort == "" {
cfg.Reporter.LocalAgentHostPort = h.agentHostPort
}
tracer, _, err := cfg.New(common.DefaultTracerServiceName)
if err != nil {
return err
Expand Down
10 changes: 5 additions & 5 deletions crossdock/endtoend/handler_test.go
Expand Up @@ -99,13 +99,13 @@ func newInMemoryTracer() (opentracing.Tracer, *jaeger.InMemoryReporter) {
}

func TestInit(t *testing.T) {
handler := NewHandler()
handler := NewHandler("", "")
err := handler.init(testConfig)
assert.NoError(t, err)
}

func TestInitBadConfig(t *testing.T) {
handler := NewHandler()
handler := NewHandler("", "")
err := handler.init(badConfig)
assert.Error(t, err)
}
Expand All @@ -118,7 +118,7 @@ func TestGetTracer(t *testing.T) {
}

func TestGetTracerError(t *testing.T) {
handler := NewHandler()
handler := NewHandler("", "")
tracer := handler.getTracer("INVALID_TYPE")
assert.Nil(t, tracer)
}
Expand All @@ -132,8 +132,8 @@ func TestGenerateTraces(t *testing.T) {
handler *Handler
}{
{http.StatusOK, testTraceJSONRequest, &Handler{tracers: map[string]opentracing.Tracer{jaeger.SamplerTypeConst: tracer}}},
{http.StatusBadRequest, testInvalidJSON, NewHandler()},
{http.StatusInternalServerError, testInvalidTypeJSONRequest, NewHandler()}, // Tracer failed to initialize
{http.StatusBadRequest, testInvalidJSON, NewHandler("", "")},
{http.StatusInternalServerError, testInvalidTypeJSONRequest, NewHandler("", "")}, // Tracer failed to initialize
}

for _, test := range tests {
Expand Down
12 changes: 11 additions & 1 deletion crossdock/main.go
Expand Up @@ -16,6 +16,7 @@ package main

import (
"io"
"os"

"github.com/opentracing/opentracing-go"

Expand All @@ -30,10 +31,19 @@ import (
func main() {
log.Enabled = true

agentHostPort, ok := os.LookupEnv("AGENT_HOST_PORT")
if !ok {
jlog.StdLogger.Error("env AGENT_HOST_PORT is not specified!")
}
sServerURL, ok := os.LookupEnv("SAMPLING_SERVER_URL")
if !ok {
jlog.StdLogger.Error("env SAMPLING_SEVER_URL is not specified!")
}

tracer, tCloser := initTracer()
defer tCloser.Close()

s := &server.Server{Tracer: tracer}
s := &server.Server{Tracer: tracer, SamplingServerURL: sServerURL, AgentHostPort: agentHostPort}
if err := s.Start(); err != nil {
panic(err.Error())
} else {
Expand Down
33 changes: 20 additions & 13 deletions crossdock/rules.mk
@@ -1,25 +1,32 @@
XDOCK_YAML=crossdock/docker-compose.yml

JAEGER_COMPOSE_URL=https://raw.githubusercontent.com/jaegertracing/jaeger/master/docker-compose/jaeger-docker-compose.yml
XDOCK_JAEGER_YAML=crossdock/jaeger-docker-compose.yml

.PHONY: crossdock-linux-bin
crossdock-linux-bin:
CGO_ENABLED=0 GOOS=linux time go build -a -installsuffix cgo -o crossdock/crossdock ./crossdock

.PHONY: crossdock
crossdock: crossdock-linux-bin
docker-compose -f $(XDOCK_YAML) kill go
docker-compose -f $(XDOCK_YAML) rm -f go
docker-compose -f $(XDOCK_YAML) build go
docker-compose -f $(XDOCK_YAML) run crossdock 2>&1 | tee run-crossdock.log
crossdock: crossdock-linux-bin crossdock-download-jaeger
docker-compose -f $(XDOCK_YAML) -f $(XDOCK_JAEGER_YAML) kill go
docker-compose -f $(XDOCK_YAML) -f $(XDOCK_JAEGER_YAML) rm -f go
docker-compose -f $(XDOCK_YAML) -f $(XDOCK_JAEGER_YAML) build go
docker-compose -f $(XDOCK_YAML) -f $(XDOCK_JAEGER_YAML) run crossdock 2>&1 | tee run-crossdock.log
grep 'Tests passed!' run-crossdock.log

.PHONY: crossdock-fresh
crossdock-fresh: crossdock-linux-bin
docker-compose -f $(XDOCK_YAML) kill
docker-compose -f $(XDOCK_YAML) rm --force
docker-compose -f $(XDOCK_YAML) pull
docker-compose -f $(XDOCK_YAML) build
docker-compose -f $(XDOCK_YAML) run crossdock
crossdock-fresh: crossdock-linux-bin crossdock-download-jaeger
docker-compose -f $(XDOCK_JAEGER_YAML) -f $(XDOCK_YAML) kill
docker-compose -f $(XDOCK_JAEGER_YAML) -f $(XDOCK_YAML) rm --force
docker-compose -f $(XDOCK_JAEGER_YAML) -f $(XDOCK_YAML) pull
docker-compose -f $(XDOCK_JAEGER_YAML) -f $(XDOCK_YAML) build
docker-compose -f $(XDOCK_JAEGER_YAML) -f $(XDOCK_YAML) run crossdock

.PHONE: crossdock-logs
crossdock-logs:
docker-compose -f $(XDOCK_YAML) logs
crossdock-logs: crossdock-download-jaeger
docker-compose -f $(XDOCK_JAEGER_YAML) -f $(XDOCK_YAML) logs

.PHONY: crossdock-download-jaeger
crossdock-download-jaeger:
curl -o $(XDOCK_JAEGER_YAML) $(JAEGER_COMPOSE_URL)
16 changes: 9 additions & 7 deletions crossdock/server/server.go
Expand Up @@ -36,12 +36,14 @@ import (

// Server implements S1-S3 servers
type Server struct {
HostPortHTTP string
HostPortTChannel string
Tracer opentracing.Tracer
listener net.Listener
channel *tchannel.Channel
eHandler *endtoend.Handler
HostPortHTTP string
HostPortTChannel string
AgentHostPort string
SamplingServerURL string
Tracer opentracing.Tracer
listener net.Listener
channel *tchannel.Channel
eHandler *endtoend.Handler
}

// Start starts the test server called by the Client and other upstream servers.
Expand All @@ -56,7 +58,7 @@ func (s *Server) Start() error {
if err := s.startTChannelServer(s.Tracer); err != nil {
return err
}
s.eHandler = endtoend.NewHandler()
s.eHandler = endtoend.NewHandler(s.AgentHostPort, s.SamplingServerURL)

mux := http.NewServeMux()
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { return }) // health check
Expand Down

0 comments on commit 016415c

Please sign in to comment.