ChilliCream / ChilliCream/graphql-platform
Allow setting of OTEL status as part of Error Filtering
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 5.8k
- Forks
- 810
- Avg merge
- 15h 39m
- Merged PRs (30d)
- 98
Description
Product
Hot Chocolate
Is your feature request related to a problem?
Following a use case like this, I would like to report an error in a particular resolver and not have the error propagate to the OTEL trace status.
I have attached an Aspire demo to highlight the problem and here is a screenshot highlighting the behaviour:
The issue is nuanced in that the field has reported an error, but this is a non-breaking error (rather than an exception blocking the resolver). The issue with setting the OTEL status to errored is that it can be used by other tools like Sentry to classify an issue or bug. In the attached example, each time a user executes the "test" resolver, it is creating an issue in Sentry in our system.
The solution you'd like
I would like to be able to set the OTEL status or have some control of it in the IErrorFilter layer. Looking at the source code, if any error is present this gets set automatically and there is no way to override the behaviour.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the attached Repro2.zip Aspire demo and tracing the "test" resolver through the IErrorFilter layer and the source code that sets the OTEL status. Confirm how a reported non-breaking error is classified, then define completion as allowing the filter to control that status without changing the resolver error response, with coverage for the demonstrated case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, graphql
- Domain
- api, backend, observability
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100