question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Expose ITransport and Friends Publicly

See original GitHub issue

We are trying to pump existing exceptions and error reports into Sentry from a central ingress point (the producers unfortunately cannot use the Sentry/Raven client directly as we need to control the transport and data captured). We were hoping to use Sentry as a SDK (as the REST documentation is a little hard to find).

The models exist and the serializiation logic is there, but everything e.g. EnvelopeHttpContent, HttpTransport, etc. that can use these models, are internal.

I propose decoupling SDK logic from Sentry proper or make these internal types public with no API SLA.

This would be on top of the work in https://github.com/getsentry/sentry-dotnet/pull/944

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:6 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
Silvengacommented, Jun 2, 2021

I think complete encapsulation of the SDK logic would be preferred (the models, the serialization logic, the transport abstractions, the http transport implementation) - but there currently exists some rather deep coupling e.g. exposing Exception on the sentry event, but requiring processing later on to copy the data into the final property for processing.

Exceptions in general would need to be decoupled away from the SDK - including “enhanced stacks”. In my use-case, I don’t have the original exception - I have to parse the stack trace to get it to place nice.

When just making the parts I needed public, I had a lot of difficulty resolving all the warnings and eventually just disabled errors on warnings. There were around 2k warnings on my branch (many came from the submodule for example).

My changes to encapsulate the SDK logic would be rather invasive to decouple the different components - then on top of that, there’s the XML documentation warnings that would take a lot of effort to add - and the CLS compliant warnings. So getting anywhere without some 200 file PR, warnings would have to not break the build.

So this might not be a change I can do myself - rather the core maintainers of this SDK. FWIW, my fork does effectively work for our original needs and has entered production (custom transport pipeline and queuing) but it’s likely not something that should be merged.

Are there any particular sealed classes that you want to extend?

Anything can be injected in to customize behavior, off the top of my head, app domain wrapping logic would be an example.

0reactions
mattjohnsonpintcommented, Apr 27, 2022

Completed with #1602 and #1560

Read more comments on GitHub >

github_iconTop Results From Across the Web

Have you ever made friends on public transportation?
Yes. Many years ago, I started chatting with a guy on the #4 train to Yankee Stadium, and we became friends. We don't...
Read more >
On the road again: Factors associated with family/friend ...
Paratransit, public transport, taxis, and walking/using a wheelchair/scooter are other viable alternative transportation options. These modes can offer feelings ...
Read more >
Why rely on friends instead of family? The role ...
Social science research has shown there is a nearly universal norm of seeking assistance from family members in times of need.
Read more >
I'm (17) not allowed to have friends over, go ...
I'm (17) not allowed to have friends over, go to friends houses, learn to drive, and get a job. I don't have public...
Read more >
Ask Amy: He wants me to meet his random Facebook 'friends'
To randomly collect friends that you have no personal background with seems desperate and unwise. Concerned Wife. Dear Concerned: Any time you ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found