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

Commit 20be7a4

Browse files
author
embs
committed
Add local IP address to Zipkin tracing
Also reuse client span to be consistent with how interactions between Java services are traced. Related to microservices-demo/orders#48
1 parent b5ec77e commit 20be7a4

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

main.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ package main
33
import (
44
"flag"
55
"fmt"
6+
"net"
67
"net/http"
78
"os"
89
"os/signal"
10+
"strings"
911
"syscall"
1012

1113
corelog "log"
@@ -59,6 +61,16 @@ func main() {
5961
logger = log.With(logger, "caller", log.DefaultCaller)
6062
}
6163

64+
// Find service local IP.
65+
conn, err := net.Dial("udp", "8.8.8.8:80")
66+
if err != nil {
67+
logger.Log("err", err)
68+
os.Exit(1)
69+
}
70+
localAddr := conn.LocalAddr().(*net.UDPAddr)
71+
host := strings.Split(localAddr.String(), ":")[0]
72+
defer conn.Close()
73+
6274
var tracer stdopentracing.Tracer
6375
{
6476
if zip == "" {
@@ -75,7 +87,8 @@ func main() {
7587
os.Exit(1)
7688
}
7789
tracer, err = zipkin.NewTracer(
78-
zipkin.NewRecorder(collector, false, fmt.Sprintf("localhost:%v", port), ServiceName),
90+
zipkin.NewRecorder(collector, false, fmt.Sprintf("%v:%v", host, port), ServiceName),
91+
zipkin.ClientServerSameSpan(true),
7992
)
8093
if err != nil {
8194
logger.Log("err", err)

0 commit comments

Comments
 (0)