What is Ruby?
Ruby is an interpreted, high-level, general-purpose programming language. It was designed with an emphasis on programming productivity and simplicity. In Ruby, everything is an object, including primitive data types. Ruby is dynamically typed and uses garbage collection and just-in-time compilation. It supports multiple programming paradigms, including procedural, object-oriented, and functional programming.
RubyGems is Ruby's package manager and Ruby on Rails (simplified as Rails) is the most known server-side web application framework.
Ruby application instrumentation
The appservice-ruby package along with a Ruby auto-instrumentation library collects performance metrics and errors from the application server.
The agent auto-instruments supported technologies and records interesting events, like HTTP requests and database queries depending on the library used. To do this, it uses relevant public APIs when they are provided by the libraries. Otherwise, it wraps the necessary internal methods. This means that for the supported technologies, there are no code changes required.
The instrumentation library automatically keeps track of queries to your data stores to measure their duration and metadata, as well as HTTP related information (like the URL, parameters, and headers).
These events, called Transactions and Spans, are sent to ServicePilot to gain insight into latency issues and error spikes within your application.
Ruby application traces monitoring
Resources are automatically created from this package after having deployed the ServicePilot Agent along with the proper Ruby APM library configuration. It monitors HTTP(S) web requests from Ruby processes.
This gathers summarized statistics (min,max,avg...) per Ruby application such as:
- Requests per minute
- Sum of requests by HTTP return codes and methods
- Number of requests in each response time range
- Established vs. Timed-out requests
In order to provide deep Ruby application insights, details collected per request include:
- Host and web page path
- Server and client IP
- Real User Response time
- HTTP Return code and method
- Client country and geolocation for public IPs
How to install a appservice-ruby resource?
- Use your ServicePilot OnPremise installation or a SaaS account.
- Add a new appservice-ruby resource via the web interface (
/prmresources) or via API (
/prmpackagespage), the default ServicePilot agent or another agent will be provisioned automatically.
Details of the appservice-ruby package are located in the
/prmpackagespage of the software.
ServicePilot enables you to deliver IT services faster and more securely with automated discovery and advanced monitoring features.
By correlating the technology RUBY APM with APM and infrastructure monitoring, ServicePilot is able to provide a more comprehensive view of an organization's IT environment.
This allows IT teams to quickly identify and diagnose issues that may be impacting application performance, and take corrective action before end-users are affected.