จากบทความ ที่แล้วเราใช้ exporter เป็นแบบ stdout
เพื่อส่ง traces ออกไปที่ stdout ของ os คราวนี้เราจะมาใช้งานร่วมกับ Jaeger กัน
ในบทความนี้ผมใช้ jaeger แบบ all-in-one เพื่อให้ง่ายต่อการ setup และทดสอบโดยสามารถได้ด้วย docker แบบนี้
$ docker run -d --name jaeger \
-e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \
-p 5775:5775/udp \
-p 6831:6831/udp \
-p 6832:6832/udp \
-p 5778:5778 \
-p 16686:16686 \
-p 14268:14268 \
-p 9411:9411 \
jaegertracing/all-in-one:1.8
จากนั้นเราจะเปลี่ยน exporter จาก stdout เป็น jaeger โดยใช้ package go.opentelemetry.io/otel/exporter/trace/jaeger
$ go get -v go.opentelemetry.io/otel/exporter/trace/jaeger@v0.2.1
import (
// ...
"go.opentelemetry.io/otel/exporter/trace/jaeger"
)
// in initTrace().
exporter, err := jaeger.NewExporter(
jaeger.WithCollectorEndpoint("http://localhost:14268/api/traces"),
jaeger.WithProcess(
jaeger.Process{
ServiceName: "github.com/wingyplus/basic",
},
),
)
if err != nil {
log.Fatalf("have some problems while creating jaeger exporter: %v", err)
}
จากนั้นทำการรันด้วย go run
และเปิด Jaeger UI มาดูผ่าน http://localhost:16686
จะเห็นแบบรูปด้านล่าง
Top comments (0)