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. }

