Enabling tracing in Jaeger

Note

The article is being updated.

Below are examples of the code enabling Jaeger tracing in different YDB SDKs

Go

1. package main

3. import (
4. "context"
5. "time"

7. "github.com/opentracing/opentracing-go"
8. jaegerConfig "github.com/uber/jaeger-client-go/config"

10. "github.com/ydb-platform/ydb-go-sdk/v3"
11. "github.com/ydb-platform/ydb-go-sdk/v3/trace"

13. tracing "github.com/ydb-platform/ydb-go-sdk-opentracing"
14. )

16. const (
17. tracerURL   = "localhost:5775"
18. serviceName = "ydb-go-sdk"
19. )

21. func main() {
22. tracer, closer, err := jaegerConfig.Configuration{
23. ServiceName: serviceName,
24. Sampler: &jaegerConfig.SamplerConfig{
25. Type:  "const",
26. Param: 1,
27. },
28. Reporter: &jaegerConfig.ReporterConfig{
29. LogSpans:            true,
30. BufferFlushInterval: 1 * time.Second,
31. LocalAgentHostPort:  tracerURL,
32. },
33. }.NewTracer()
34. if err != nil {
35. panic(err)
36. }

38. defer closer.Close()

40. // set global tracer of this application
41. opentracing.SetGlobalTracer(tracer)

43. span, ctx := opentracing.StartSpanFromContext(context.Background(), "client")
44. defer span.Finish()

46. db, err := ydb.Open(
47. ctx,
48. os.Getenv("YDB_CONNECTION_STRING"),
49. tracing.WithTraces(
50. tracing.WithDetails(trace.DetailsAll),
51. ),
52. ydb.WithTraceTable(tracing.Table(
53. tracing.WithDetails(trace.DetailsAll),
54. )),
55. )
56. if err != nil {
57. panic(err)
58. }
59. defer func() {
60. _ = db.Close(ctx)
61. }()
62. }

Enable tracing in Jaeger - 图1