Inactive Support Notifications (r)

Mar 20, 2024
Logging slow queries with active support notifications

-sidebar-toc>

In this article, we will explain how to use Active Support Notifications to record slower queries within Rails. Rails application. We'll also provide instructions on how to examine the logs for slower queries to find and fix problems with performance.

What's a slow question?

The term "slow query" refers to applications that take longer than the predetermined duration of time to run. What is considered to be slow queries will vary depending on the particular application and its performance requirements. The best practice is to rate each query that runs for more than 100 milliseconds as being slow.

What is the reason to record long query?

There are many reasons it's crucial, and also why it's essential to follow up on low-quality requests.

First, slow queries can indicate underlying issues with your application's performance. If you notice slow query performance, and you can spot these issues immediately and act to rectify the issue. Prevention is always better than treatment.

Thirdly, slow queries could assist in improving your app's efficiency.

Through analyzing the slowness of the query logs It is possible to determine which queries are which are causing the biggest performance issues and take steps to improve the speed of these. You can record slower queries using our application with the help of Active Support Notifications.

What are Active Support Notifications?

Knowing their purpose and utilizing them, you can greatly increase the speed and reliability and high-end in the Rails application.

This article discusses the significance of Active Support Notifications and the benefits they can bring.

Functionality

  • Instrumentation: You can instrument specific events in your Rails application using the ActiveSupport::Notifications.instrument method. The method needs the name of the user and the payload (optional details) along with an element of code which is required to execute.
  • Payload lets users transmit additional details that are relevant to the specific event which is being monitored. It can be anything like timestamps or user IDs, along with database data query details and any other pertinent information.
  • Subscribers If the block is run, Active Support sends a message with the user's name the subscriber as well as the payload to every registered subscriber. Subscribers have the ability to view the message and perform specific actions as a result of the event.

Benefits

  • Monitoring performance: By recording crucial events, you're competent of monitoring their length up to their completion, and also pinpointing difficulties within your app. This will help you improve your application's programming as well as improve the overall efficiency that you'll achieve using the Rails application.
  • Troubleshooting: Notifications provide an important insight into the application's performance and assist to identify issues. Data from the payload can identify unexpected behaviour or issues during runtime.
  • Customized instruments: You're able to extend the functionality of Active Support Notifications by creating individual instruments which can be tailored as well as subscriber. It allows you to track occasions that you have developed to fit your app's specific needs.
  • Integration with other libraries: Many of the most popular Rails libraries, including Action Cable and ActiveJob, leverage Active Support Notifications to provide performance data and event tracking abilities.

What can you do to track down long-running queries with Active Support Notifications

Active Support Notifications is an internal Rails method for recording events that occur within the application. To use Active Support Notifications to log slow queries, the example code below would be placed in an initializer (e.g., config/initializers/error_notifications.rb) to ensure it runs on application startup. Additionally, you can include this code in the controller or model in order to enable the logging you require for a specific model or controller.

config.active_support.Notifications.subscribe('sql.active_record') do |*args| event = ActiveSupport::Notifications::Event.new(*args) if event.duration > 100 Rails.logger.info "Slow query: #event.payload[:sql]" end end

The program can record all SQL query that requires greater than 100 milliseconds.

The information logged will contain specific information regarding the SQL statement along with the date of the query, and the names of the relevant files as well as the number of lines on the line that the query was executed.

What are you able to do to analyse the logs of your query that are slow

Once you have started logging lower-performing queries you'll be capable of examining the logs to identify the queries that are creating the most performance problems. There are many methods to analyze the logs of slow queries.

A way to do this is by using tools like the Rails Performance Dashboard. Its Rails Performance Dashboard offers a graphic interface that allows for analysing the speed of query logs.

Another approach to analyze the slowness of query logs is to make use of an editor or a spreadsheet software. There is the option of using an editor for text as well as a spreadsheet application to filter and sort slow query logs according to the length of SQL declaration, or name of the file.

This can help you identify those issues that cause the greatest issues with performance.

What are you able to do to make your inquiries faster?

When you've identified which queries that have the greatest issues with performance, it is possible to correct the problem. There are numerous ways to enhance the performance of your queries.

A different option is to enhance the efficiency of your SQL statement. You can enhance the performance of your SQL statement by using indexes, the inclusion of constraints or through the use of better query techniques.

The use of pagination, as well as the breaking down of large information sets into smaller pages can boost the efficiency of your computer as well as to reduce the amount of memory used.

You might also consider the use of Background Jobs in addition to delegating queries in the process for long periods of time to background jobs (e.g. using Sidekiq, Resque) to stop web browser requests.

Summary

Active Support Notifications are an integrated Rails feature that tracks low-performing queries. Recording low-performing queries is a crucial part of the optimization process that is employed by every Rails application. Through the logs that are recorded, it's possible to identify problems with performance earlier and, subsequently, take steps to correct the issue.

It's possible to utilize Active Support Notifications to log slow queries. Then, you can go through the logs and identify the queries that are causing the most problems when it comes to performance. Once you've identified the ones with the highest difficulties for performance, follow the actions to correct these issues.

If you're running a well-established firm and you are able to incorporate junior developers into teams, this type of effectiveness will assist the team establish more efficient processes through participation with the work. Additionally, it can assist the team who supervises both junior and senior employees, working together to develop an efficient and stronger platform. You can give your query that is slow to a junior developer, and they'll be greatly benefited from the project.

Do not allow the problem to exist. Be proactive and prevent delays in queries prior to they slow your performance. Make sure you are more proactive than!

Lee Sheppard

Lee has been the Agile Certified Full-Stack Ruby on Rails developer. Over six years in the tech industry He is a fan of instructing and training Agile and helping other people. Lee has also been a guest speaker at conferences related to technology in addition to having been educated in illustration as well as graphic design.

This article was originally posted this site.

This post was posted on here