Skip to content

Commit 859728c

Browse files
committed
feat: simplify kod, add inits and defer
1 parent d2b9ee9 commit 859728c

9 files changed

+59
-454
lines changed

example_test.go

+26-49
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ import (
1111
"github.com/go-kod/kod/interceptor/kmetric"
1212
"github.com/go-kod/kod/interceptor/krecovery"
1313
"github.com/go-kod/kod/interceptor/ktrace"
14-
lognoop "go.opentelemetry.io/otel/log/noop"
15-
metricnoop "go.opentelemetry.io/otel/metric/noop"
16-
"go.opentelemetry.io/otel/propagation"
17-
tracenoop "go.opentelemetry.io/otel/trace/noop"
1814
"go.uber.org/mock/gomock"
1915
)
2016

@@ -133,32 +129,32 @@ func Example_openTelemetryLog() {
133129
// {"component":"github.com/go-kod/kod/examples/helloworld/HelloWorld","level":"INFO","msg":"Hello, World!"}
134130
}
135131

136-
// This example demonstrates how to use tracing with OpenTelemetry.
137-
func Example_openTelemetryTrace() {
138-
logger, observer := kod.NewTestLogger()
139-
140-
kod.Run(context.Background(), func(ctx context.Context, app *helloworld.App) error {
141-
ctx, span := app.Tracer().Start(ctx, "example")
142-
defer span.End()
143-
app.L(ctx).Info("Hello, World!")
144-
app.L(ctx).WarnContext(ctx, "Hello, World!")
145-
146-
app.HelloWorld.Get().SayHello(ctx)
147-
return nil
148-
}, kod.WithInterceptors(ktrace.Interceptor()), kod.WithLogger(logger))
149-
150-
fmt.Println(observer.Filter(func(m map[string]any) bool {
151-
return m["trace_id"] != nil && m["span_id"] != nil
152-
}).RemoveKeys("trace_id", "span_id", "time"))
153-
154-
// Output:
155-
// helloWorld init
156-
// Hello, World!
157-
// helloWorld shutdown
158-
// {"component":"github.com/go-kod/kod/Main","level":"INFO","msg":"Hello, World!"}
159-
// {"component":"github.com/go-kod/kod/Main","level":"WARN","msg":"Hello, World!"}
160-
// {"component":"github.com/go-kod/kod/examples/helloworld/HelloWorld","level":"INFO","msg":"Hello, World!"}
161-
}
132+
// // This example demonstrates how to use tracing with OpenTelemetry.
133+
// func Example_openTelemetryTrace() {
134+
// logger, observer := kod.NewTestLogger()
135+
136+
// kod.Run(context.Background(), func(ctx context.Context, app *helloworld.App) error {
137+
// ctx, span := app.Tracer().Start(ctx, "example")
138+
// defer span.End()
139+
// app.L(ctx).Info("Hello, World!")
140+
// app.L(ctx).WarnContext(ctx, "Hello, World!")
141+
142+
// app.HelloWorld.Get().SayHello(ctx)
143+
// return nil
144+
// }, kod.WithInterceptors(ktrace.Interceptor()), kod.WithLogger(logger))
145+
146+
// fmt.Println(observer.Filter(func(m map[string]any) bool {
147+
// return m["trace_id"] != nil && m["span_id"] != nil
148+
// }).RemoveKeys("trace_id", "span_id", "time"))
149+
150+
// // Output:
151+
// // helloWorld init
152+
// // Hello, World!
153+
// // helloWorld shutdown
154+
// // {"component":"github.com/go-kod/kod/Main","level":"INFO","msg":"Hello, World!"}
155+
// // {"component":"github.com/go-kod/kod/Main","level":"WARN","msg":"Hello, World!"}
156+
// // {"component":"github.com/go-kod/kod/examples/helloworld/HelloWorld","level":"INFO","msg":"Hello, World!"}
157+
// }
162158

163159
// This example demonstrates how to use metrics with OpenTelemetry.
164160
func Example_openTelemetryMetric() {
@@ -174,25 +170,6 @@ func Example_openTelemetryMetric() {
174170
// helloWorld shutdown
175171
}
176172

177-
// This example demonstrates how to use OpenTelemetry with a custom OpenTelemetry provider.
178-
func Example_openTelemetryCustomProvider() {
179-
kod.Run(context.Background(), func(ctx context.Context, app *helloworld.App) error {
180-
app.HelloWorld.Get().SayHello(ctx)
181-
return nil
182-
},
183-
kod.WithTracerProvider(tracenoop.NewTracerProvider()),
184-
kod.WithMeterProvider(metricnoop.NewMeterProvider()),
185-
kod.WithLogProvider(lognoop.NewLoggerProvider()),
186-
kod.WithTextMapPropagator(propagation.NewCompositeTextMapPropagator(
187-
propagation.TraceContext{}, propagation.Baggage{},
188-
)),
189-
)
190-
// Output:
191-
// helloWorld init
192-
// Hello, World!
193-
// helloWorld shutdown
194-
}
195-
196173
// This example demonstrates how to use [kod.WithInterceptors] to provide global interceptors to the application.
197174
func Example_interceptorGlobal() {
198175
interceptor := interceptor.Interceptor(func(ctx context.Context, info interceptor.CallInfo, req, res []interface{}, next interceptor.HandleFunc) error {

go.mod

-35
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,8 @@ require (
2222
github.com/sony/gobreaker v1.0.0
2323
github.com/spf13/cobra v1.8.1
2424
github.com/stretchr/testify v1.10.0
25-
go.opentelemetry.io/contrib/bridges/otelslog v0.8.0
26-
go.opentelemetry.io/contrib/exporters/autoexport v0.58.0
27-
go.opentelemetry.io/contrib/instrumentation/host v0.58.0
28-
go.opentelemetry.io/contrib/instrumentation/runtime v0.58.0
2925
go.opentelemetry.io/otel v1.33.0
30-
go.opentelemetry.io/otel/log v0.9.0
3126
go.opentelemetry.io/otel/metric v1.33.0
32-
go.opentelemetry.io/otel/sdk v1.33.0
33-
go.opentelemetry.io/otel/sdk/log v0.9.0
34-
go.opentelemetry.io/otel/sdk/metric v1.33.0
3527
go.opentelemetry.io/otel/trace v1.33.0
3628
go.uber.org/goleak v1.3.0
3729
go.uber.org/mock v0.5.0
@@ -40,64 +32,37 @@ require (
4032
)
4133

4234
require (
43-
github.com/beorn7/perks v1.0.1 // indirect
44-
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
45-
github.com/cespare/xxhash/v2 v2.3.0 // indirect
4635
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
47-
github.com/ebitengine/purego v0.8.1 // indirect
4836
github.com/gabriel-vasile/mimetype v1.4.5 // indirect
4937
github.com/go-logr/logr v1.4.2 // indirect
5038
github.com/go-logr/stdr v1.2.2 // indirect
5139
github.com/go-ole/go-ole v1.3.0 // indirect
5240
github.com/go-playground/locales v0.14.1 // indirect
5341
github.com/go-playground/universal-translator v0.18.1 // indirect
5442
github.com/go-viper/mapstructure/v2 v2.2.1 // indirect
55-
github.com/google/uuid v1.6.0 // indirect
56-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 // indirect
5743
github.com/inconshreveable/mousetrap v1.1.0 // indirect
58-
github.com/klauspost/compress v1.17.11 // indirect
5944
github.com/knadh/koanf/maps v0.1.1 // indirect
6045
github.com/leodido/go-urn v1.4.0 // indirect
6146
github.com/lufia/plan9stats v0.0.0-20240909124753-873cd0166683 // indirect
6247
github.com/mattn/go-colorable v0.1.13 // indirect
6348
github.com/mattn/go-isatty v0.0.20 // indirect
6449
github.com/mitchellh/copystructure v1.2.0 // indirect
6550
github.com/mitchellh/reflectwalk v1.0.2 // indirect
66-
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
6751
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
6852
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
6953
github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect
70-
github.com/prometheus/client_golang v1.20.5 // indirect
71-
github.com/prometheus/client_model v0.6.1 // indirect
72-
github.com/prometheus/common v0.61.0 // indirect
73-
github.com/prometheus/procfs v0.15.1 // indirect
74-
github.com/shirou/gopsutil/v4 v4.24.11 // indirect
7554
github.com/shoenig/go-m1cpu v0.1.6 // indirect
7655
github.com/spf13/pflag v1.0.5 // indirect
7756
github.com/tklauser/go-sysconf v0.3.14 // indirect
7857
github.com/tklauser/numcpus v0.9.0 // indirect
7958
github.com/yusufpapurcu/wmi v1.2.4 // indirect
8059
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
81-
go.opentelemetry.io/contrib/bridges/prometheus v0.58.0 // indirect
82-
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.9.0 // indirect
83-
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.9.0 // indirect
84-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.33.0 // indirect
85-
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.33.0 // indirect
86-
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect
87-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 // indirect
88-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.33.0 // indirect
89-
go.opentelemetry.io/otel/exporters/prometheus v0.55.0 // indirect
90-
go.opentelemetry.io/otel/exporters/stdout/stdoutlog v0.9.0 // indirect
91-
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.33.0 // indirect
92-
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.33.0 // indirect
93-
go.opentelemetry.io/proto/otlp v1.4.0 // indirect
9460
golang.org/x/crypto v0.30.0 // indirect
9561
golang.org/x/mod v0.22.0 // indirect
9662
golang.org/x/net v0.32.0 // indirect
9763
golang.org/x/sync v0.10.0 // indirect
9864
golang.org/x/sys v0.28.0 // indirect
9965
golang.org/x/text v0.21.0 // indirect
100-
google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect
10166
google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect
10267
google.golang.org/protobuf v1.35.2 // indirect
10368
gopkg.in/yaml.v3 v3.0.1 // indirect

0 commit comments

Comments
 (0)