diff --git a/examples/demo/server/main.go b/examples/demo/server/main.go index 81d00682950a..0da9eba6dd03 100644 --- a/examples/demo/server/main.go +++ b/examples/demo/server/main.go @@ -13,7 +13,7 @@ // limitations under the License. // Sample contains a simple http server that exports to the OpenTelemetry agent. -// nolint:errcheck + package main import ( @@ -141,6 +141,7 @@ func main() { handler := http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { // random sleep to simulate latency var sleep int64 + switch modulus := time.Now().Unix() % 5; modulus { case 0: sleep = rng.Int63n(2000) @@ -166,12 +167,18 @@ func main() { } span.SetAttributes(baggageAttributes...) - w.Write([]byte("Hello World")) + if _, err := w.Write([]byte("Hello World")); err != nil { + http.Error(w, "write operation failed.", http.StatusInternalServerError) + return + } + }) wrappedHandler := otelhttp.NewHandler(handler, "/hello") // serve up the wrapped handler http.Handle("/hello", wrappedHandler) - http.ListenAndServe(":7080", nil) + if err := http.ListenAndServe(":7080", nil); err != nil { + handleErr(err, "server failed to serve") + } } diff --git a/testbed/datareceivers/mockawsxraydatareceiver.go b/testbed/datareceivers/mockawsxraydatareceiver.go index 99e2cdb6a8e8..70c657cb00fa 100644 --- a/testbed/datareceivers/mockawsxraydatareceiver.go +++ b/testbed/datareceivers/mockawsxraydatareceiver.go @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -// nolint:errcheck package datareceivers // import "github.com/open-telemetry/opentelemetry-collector-contrib/testbed/datareceivers" import ( @@ -81,8 +80,7 @@ func (ar *MockAwsXrayDataReceiver) Start(tc consumer.Traces, _ consumer.Metrics, } func (ar *MockAwsXrayDataReceiver) Stop() error { - ar.receiver.Shutdown(context.Background()) - return nil + return ar.receiver.Shutdown(context.Background()) } func (ar *MockAwsXrayDataReceiver) GenConfigYAMLStr() string { diff --git a/testbed/mockdatareceivers/mockawsxrayreceiver/trace_receiver.go b/testbed/mockdatareceivers/mockawsxrayreceiver/trace_receiver.go index 8257712ea117..6f5c94c39c26 100644 --- a/testbed/mockdatareceivers/mockawsxrayreceiver/trace_receiver.go +++ b/testbed/mockdatareceivers/mockawsxrayreceiver/trace_receiver.go @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -// nolint:errcheck package mockawsxrayreceiver // import "github.com/open-telemetry/opentelemetry-collector-contrib/testbed/mockdatareceivers/mockawsxrayreceiver" import ( @@ -108,7 +107,9 @@ func (ar *MockAwsXrayReceiver) handleRequest(req *http.Request) error { var result map[string]interface{} - json.Unmarshal(body, &result) + if err = json.Unmarshal(body, &result); err != nil { + log.Fatalln(err) + } traces, _ := ToTraces(body) sc := traces.SpanCount() diff --git a/tracegen/internal/tracegen/worker.go b/tracegen/internal/tracegen/worker.go index 7787a9babc82..e0e9a8957c5b 100644 --- a/tracegen/internal/tracegen/worker.go +++ b/tracegen/internal/tracegen/worker.go @@ -13,7 +13,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -// nolint:errcheck package tracegen // import "github.com/open-telemetry/opentelemetry-collector-contrib/tracegen/internal/tracegen" import ( @@ -74,7 +73,9 @@ func (w worker) simulateTraces() { semconv.PeerServiceKey.String("tracegen-client"), )) - limiter.Wait(context.Background()) + if err := limiter.Wait(context.Background()); err != nil { + w.logger.Fatal("limiter waited failed, retry", zap.Error(err)) + } opt := trace.WithTimestamp(time.Now().Add(fakeSpanDuration)) child.End(opt) diff --git a/tracegen/main.go b/tracegen/main.go index c6801a89dda8..99211772091e 100644 --- a/tracegen/main.go +++ b/tracegen/main.go @@ -13,7 +13,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -// nolint:errcheck package main import ( @@ -93,7 +92,13 @@ func main() { }() ssp := sdktrace.NewBatchSpanProcessor(exp, sdktrace.WithBatchTimeout(time.Second)) - defer ssp.Shutdown(context.Background()) + defer func() { + logger.Info("stop the batch span processor") + if err := ssp.Shutdown(context.Background()); err != nil { + logger.Error("failed to stop the batch span processor", zap.Error(err)) + return + } + }() tracerProvider := sdktrace.NewTracerProvider( sdktrace.WithResource(resource.NewWithAttributes(semconv.SchemaURL, semconv.ServiceNameKey.String(cfg.ServiceName))),