Comments (5)
Hi @alexJunger,
When error information is captured at the segment level, error attributes show up on spans in New Relic's Distributed Tracing UI and can also be used to query span events. Check out the release notes for version 6.10 of the agent for more information.
from newrelic-ruby-agent.
@alexJunger, thank you for reaching out to us and also authoring and maintaining one of the many excellent gems out there that enhance the agent's core functionality.
The recent changes are not historically a typical set of changes we would make. The 6.10 release touched on almost every instrumentation as we added ability to notice errors at the segment level. As part of this large effort, we took the opportunity to refactor much of the HTTP client instrumentation and this unfortunately affected your gem adversely.
As for standard procedures, we've been discussing this more internally and the need to develop and document standards to make it easier to build and maintain plugins and minimize potential to break existing ones like yours.
The abstract class is still present and I don't believe the API signature itself changed, only the file name was changed and relocated to sub-folder to help organize the project code better. If the API signature inadvertently changed, please elaborate further on the exact error you're experiencing and we'll try to help resolve it.
from newrelic-ruby-agent.
@mwlang got it! And thanks for your efforts in making and keeping the agent extensible!
The Api signature itself didn't change, correct. We simply got a load error due to the changed file name:
LoadError:
no such file to load -- new_relic/agent/http_clients/abstract_request
from newrelic-ruby-agent.
Ok, thank you for clarifying. I have a question for you @alexJunger:
One of the reasons for the extensive changes on HTTP clients is that we refactored to make all the supported HTTP client libraries we auto-instrument capable of capturing the HTTP response codes and error messages at the segment level. I took a brief look at your gem to see if I could quickly wrap your instrumentation as well, but I wasn't to pull this off in the time I allotted.
Is this something you'd be interested including in a future update of your gem?
from newrelic-ruby-agent.
@mwlang that seems worth integrating for sure! Would this data already be used (eg. in APM) or queryable somewhere?
from newrelic-ruby-agent.
Related Issues (20)
- Remove the Ruby/Thread + other spans HOT 1
- Retire deprecated way of creating deployment markers HOT 1
- Report Sidekiq jobs that call other jobs HOT 2
- Add Tests for Falcon HOT 1
- Memory Leak for HTTPX Integration HOT 7
- Prioritize the list of dispatchers based on reasonable assumptions for users on the latest agent version HOT 1
- Refactor local_environment.rb methods HOT 3
- Fix stoat prerelease automation HOT 1
- Resque instrumentation can require `resolv-replace` which will become a bundled gem in Ruby 3.4 HOT 3
- Add support for Logstasher HOT 3
- Increase log events per minute limit HOT 2
- OpenAI: Instrument embeddings HOT 1
- OpenAI: Instrument chat completions HOT 2
- OpenAI: Trace errors HOT 1
- OpenAI: Instrument feedback HOT 1
- Create set_llm_metadata public API HOT 2
- OpenAI: Create LLM Events classes HOT 1
- OpenAI: Documentation HOT 2
- Investigate: Potential duplication of reported Sinatra errors HOT 1
- Memory/retention problem with thread tracing and very-long-lived threads HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from newrelic-ruby-agent.