dd-trace-go icon indicating copy to clipboard operation
dd-trace-go copied to clipboard

Support configurable error codes in contrib/net/http

Open nakkamarra opened this issue 5 months ago • 7 comments

What does this PR do?

This PR adds a configurable WithStatusCheck(...) and isStatusError to contrib/net/http so that the ServeMux and TraceAndServe(...) can reference that to then decide whether or not to set an error tag on a span based on user defined function for status code checking.

Motivation

As outlined in #2876, I feel this makes things a bit more configurable in the case that someone wants to reporting some other status code as an error that isn't handled by current logic (500 - 600 status code) or wants to omit a specific status code in the current logic for some reason (i.e a service is expected to send a 500 or some other status in an expected case and don't want that to add to affect SLOs or some other contrived case)

Reviewer's Checklist

  • [ ] Changed code has unit tests for its functionality at or near 100% coverage.
  • [ ] System-Tests covering this feature have been added and enabled with the va.b.c-dev version tag.
  • [ ] There is a benchmark for any new code, or changes to existing code.
  • [ ] If this interacts with the agent in a new way, a system test has been added.
  • [ ] Add an appropriate team label so this PR gets put in the right place for the release notes.
  • [ ] Non-trivial go.mod changes, e.g. adding new modules, are reviewed by @DataDog/dd-trace-go-guild.

Unsure? Have a question? Request a review!

nakkamarra avatar Sep 19 '24 23:09 nakkamarra