Skip to content

Commit fd190a0

Browse files
chore: remove jaeger dependency by deleting with-tracing/main.go, moved README
1 parent 5267b55 commit fd190a0

File tree

4 files changed

+107
-111
lines changed

4 files changed

+107
-111
lines changed

examples/with-tracing/README.md

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,113 @@ You can access the jaeger dashboard as [jaeger dashboard](http://localhost:16686
3232

3333
You can run the demo as `go run main.go`
3434

35+
```go
36+
package main
37+
38+
import (
39+
"context"
40+
"fmt"
41+
"github.com/Trendyol/kafka-konsumer/v2"
42+
"go.opentelemetry.io/otel"
43+
"go.opentelemetry.io/otel/attribute"
44+
"go.opentelemetry.io/otel/exporters/jaeger"
45+
"go.opentelemetry.io/otel/propagation"
46+
"go.opentelemetry.io/otel/sdk/resource"
47+
"go.opentelemetry.io/otel/sdk/trace"
48+
semconv "go.opentelemetry.io/otel/semconv/v1.19.0"
49+
"os"
50+
"os/signal"
51+
"time"
52+
)
53+
54+
func main() {
55+
jaegerUrl := "http://localhost:14268/api/traces"
56+
tp := initJaegerTracer(jaegerUrl)
57+
defer tp.Shutdown(context.Background())
58+
59+
otel.SetTracerProvider(tp)
60+
otel.SetTextMapPropagator(propagation.TraceContext{})
61+
62+
// ===============SIMULATE PRODUCER===============
63+
producer, _ := kafka.NewProducer(&kafka.ProducerConfig{
64+
Writer: kafka.WriterConfig{
65+
Brokers: []string{"localhost:29092"},
66+
},
67+
DistributedTracingEnabled: true,
68+
})
69+
70+
const topicName = "standart-topic"
71+
producedMessage := kafka.Message{
72+
Topic: topicName,
73+
Key: []byte("1"),
74+
Value: []byte(`{ "foo": "bar" }`),
75+
}
76+
77+
tr := otel.Tracer("after producing")
78+
parentCtx, span := tr.Start(context.Background(), "before producing work")
79+
time.Sleep(100 * time.Millisecond)
80+
span.End()
81+
82+
_ = producer.Produce(parentCtx, producedMessage)
83+
84+
// ===============SIMULATE CONSUMER===============
85+
consumerCfg := &kafka.ConsumerConfig{
86+
Reader: kafka.ReaderConfig{
87+
Brokers: []string{"localhost:29092"},
88+
Topic: topicName,
89+
GroupID: "standart-cg",
90+
},
91+
ConsumeFn: consumeFn,
92+
DistributedTracingEnabled: true,
93+
}
94+
95+
consumer, _ := kafka.NewConsumer(consumerCfg)
96+
defer consumer.Stop()
97+
98+
consumer.Consume()
99+
100+
fmt.Println("Consumer started...!")
101+
102+
c := make(chan os.Signal, 1)
103+
signal.Notify(c, os.Interrupt)
104+
<-c
105+
}
106+
107+
func consumeFn(message *kafka.Message) error {
108+
fmt.Printf("Message From %s with value %s", message.Topic, string(message.Value))
109+
110+
tr := otel.Tracer("consumer")
111+
parentCtx, span := tr.Start(message.Context, "work")
112+
time.Sleep(100 * time.Millisecond)
113+
span.End()
114+
115+
_, span = tr.Start(parentCtx, "another work")
116+
time.Sleep(50 * time.Millisecond)
117+
span.End()
118+
119+
return nil
120+
}
121+
122+
func initJaegerTracer(url string) *trace.TracerProvider {
123+
// Create the Jaeger exporter
124+
exp, err := jaeger.New(jaeger.WithCollectorEndpoint(jaeger.WithEndpoint(url)))
125+
if err != nil {
126+
panic("Err initializing jaeger instance" + err.Error())
127+
}
128+
129+
tp := trace.NewTracerProvider(
130+
trace.WithBatcher(exp),
131+
trace.WithResource(resource.NewWithAttributes(
132+
semconv.SchemaURL,
133+
semconv.ServiceName("kafka-konsumer-demo"),
134+
attribute.String("environment", "prod"),
135+
)),
136+
)
137+
138+
return tp
139+
}
140+
```
141+
35142
In the producing step, we open only two spans. In the consuming step, we open three spans. You can see their relationship via the jeager dashboard, as shown below.
36143

37144
![Demo Jeager](../../.github/images/jaeger-dashboard-example.png)

examples/with-tracing/main.go

Lines changed: 0 additions & 104 deletions
This file was deleted.

go.mod

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ require (
1010
github.com/prometheus/client_golang v1.16.0
1111
github.com/segmentio/kafka-go v0.4.46
1212
go.opentelemetry.io/otel v1.19.0
13-
go.opentelemetry.io/otel/exporters/jaeger v1.16.0
14-
go.opentelemetry.io/otel/sdk v1.19.0
1513
go.opentelemetry.io/otel/trace v1.19.0
1614
go.uber.org/zap v1.24.0
1715
)

go.sum

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ github.com/segmentio/kafka-go v0.4.46 h1:Sx8/kvtY+/G8nM0roTNnFezSJj3bT2sW0Xy/YY3
6666
github.com/segmentio/kafka-go v0.4.46/go.mod h1:HjF6XbOKh0Pjlkr5GVZxt6CsjjwnmhVOfURM5KMd8qg=
6767
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
6868
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
69-
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
7069
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
7170
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
7271
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
@@ -85,12 +84,8 @@ github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gi
8584
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
8685
go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs=
8786
go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY=
88-
go.opentelemetry.io/otel/exporters/jaeger v1.16.0 h1:YhxxmXZ011C0aDZKoNw+juVWAmEfv/0W2XBOv9aHTaA=
89-
go.opentelemetry.io/otel/exporters/jaeger v1.16.0/go.mod h1:grYbBo/5afWlPpdPZYhyn78Bk04hnvxn2+hvxQhKIQM=
9087
go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE=
9188
go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8=
92-
go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o=
93-
go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
9489
go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg=
9590
go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
9691
go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=

0 commit comments

Comments
 (0)