@@ -19,6 +19,7 @@ import (
19
19
"time"
20
20
21
21
"github.com/sirupsen/logrus"
22
+ "github.com/uptrace/opentelemetry-go-extra/otellogrus"
22
23
23
24
"go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc"
24
25
"go.opentelemetry.io/contrib/instrumentation/runtime"
@@ -55,10 +56,17 @@ var (
55
56
56
57
func init () {
57
58
log = logrus .New ()
59
+ log .AddHook (otellogrus .NewHook (otellogrus .WithLevels (
60
+ logrus .PanicLevel ,
61
+ logrus .FatalLevel ,
62
+ logrus .WarnLevel ,
63
+ logrus .InfoLevel ,
64
+ logrus .DebugLevel ,
65
+ )))
58
66
var err error
59
67
catalog , err = readProductFiles ()
60
68
if err != nil {
61
- log .Fatalf ("Reading Product Files: %v" , err )
69
+ log .WithContext ( context . Background ()). Errorf ("Reading Product Files: %v" , err )
62
70
os .Exit (1 )
63
71
}
64
72
}
@@ -85,7 +93,7 @@ func initTracerProvider() *sdktrace.TracerProvider {
85
93
86
94
exporter , err := otlptracegrpc .New (ctx )
87
95
if err != nil {
88
- log .Fatalf ("OTLP Trace gRPC Creation: %v" , err )
96
+ log .WithContext ( context . Background ()). Errorf ("OTLP Trace gRPC Creation: %v" , err )
89
97
}
90
98
tp := sdktrace .NewTracerProvider (
91
99
sdktrace .WithBatcher (exporter ),
@@ -101,7 +109,7 @@ func initMeterProvider() *sdkmetric.MeterProvider {
101
109
102
110
exporter , err := otlpmetricgrpc .New (ctx )
103
111
if err != nil {
104
- log .Fatalf ("new otlp metric grpc exporter failed: %v" , err )
112
+ log .WithContext ( ctx ). Errorf ("new otlp metric grpc exporter failed: %v" , err )
105
113
}
106
114
107
115
mp := sdkmetric .NewMeterProvider (
@@ -115,24 +123,27 @@ func initMeterProvider() *sdkmetric.MeterProvider {
115
123
func main () {
116
124
tp := initTracerProvider ()
117
125
defer func () {
118
- if err := tp .Shutdown (context .Background ()); err != nil {
119
- log .Fatalf ("Tracer Provider Shutdown: %v" , err )
126
+ ctx := context .Background ()
127
+ if err := tp .Shutdown (ctx ); err != nil {
128
+ log .WithContext (ctx ).Errorf ("Tracer Provider Shutdown: %v" , err )
120
129
}
121
- log .Println ("Shutdown tracer provider" )
130
+ log .WithContext ( ctx ). Info ("Shutdown tracer provider" )
122
131
}()
123
132
124
133
mp := initMeterProvider ()
125
134
defer func () {
126
- if err := mp .Shutdown (context .Background ()); err != nil {
127
- log .Fatalf ("Error shutting down meter provider: %v" , err )
135
+ ctx := context .Background ()
136
+ if err := mp .Shutdown (ctx ); err != nil {
137
+
138
+ log .WithContext (ctx ).Errorf ("Error shutting down meter provider: %v" , err )
128
139
}
129
- log .Println ("Shutdown meter provider" )
140
+ log .WithContext ( ctx ). Error ("Shutdown meter provider" )
130
141
}()
131
142
openfeature .SetProvider (flagd .NewProvider ())
132
143
133
144
err := runtime .Start (runtime .WithMinimumReadMemStatsInterval (time .Second ))
134
145
if err != nil {
135
- log .Fatal (err )
146
+ log .WithContext ( context . Background ()). WithError (err )
136
147
}
137
148
138
149
svc := & productCatalog {}
@@ -143,7 +154,7 @@ func main() {
143
154
144
155
ln , err := net .Listen ("tcp" , fmt .Sprintf (":%s" , port ))
145
156
if err != nil {
146
- log .Fatalf ("TCP Listen: %v" , err )
157
+ log .WithContext ( context . Background ()). Errorf ("TCP Listen: %v" , err )
147
158
}
148
159
149
160
srv := grpc .NewServer (
@@ -160,14 +171,14 @@ func main() {
160
171
161
172
go func () {
162
173
if err := srv .Serve (ln ); err != nil {
163
- log .Fatalf ("Failed to serve gRPC server, err: %v" , err )
174
+ log .WithContext ( context . Background ()). Errorf ("Failed to serve gRPC server, err: %v" , err )
164
175
}
165
176
}()
166
177
167
178
<- ctx .Done ()
168
179
169
180
srv .GracefulStop ()
170
- log .Println ("ProductCatalogService gRPC server stopped" )
181
+ log .WithContext ( context . Background ()). Info ("ProductCatalogService gRPC server stopped" )
171
182
}
172
183
173
184
type productCatalog struct {
@@ -210,7 +221,7 @@ func readProductFiles() ([]*pb.Product, error) {
210
221
products = append (products , res .Products ... )
211
222
}
212
223
213
- log .Infof ("Loaded %d products" , len (products ))
224
+ log .WithContext ( context . Background ()). Infof ("Loaded %d products" , len (products ))
214
225
215
226
return products , nil
216
227
}
0 commit comments