Troubleshooting ActiveRecord Performance
ActiveRecord is Ruby on Rails’ most magical feature. We don’t usually need to worry about its inner workings, but when we do, here’s how AppSignal can help us know what’s going on under the hood.
ActiveRecord is Ruby on Rails’ most magical feature. We don’t usually need to worry about its inner workings, but when we do, here’s how AppSignal can help us know what’s going on under the hood.
When building a production application, you are usually on the lookout for ways to optimize its performance while keeping any possible trade-offs in mind. In this post, we’ll take a look at an approach that can give you a quick win when it comes to improving the way your Node.js apps handle the workload. An instance of Node.js runs in a single thread which means that on a multi-core system (which most computers are these days), not all cores will be utilized by the app.
We just released a Magic Dashboard for Garbage Collection stats for our Node.js integration. If you are leaking memory, this dashboard will help you discover and fix this problem. No setting up is required, this dashboard will magically automatically appear among the rest of your dashboards. ✨
Modules and mixins are, without doubt, great resources that make Ruby so attractive. They give the application the ability to share the code that can be used with ease in other places. It also helps us organize our code by grouping functionalities and concerns, which improves the readability and maintainability of our code. In this article, we will go through the concepts behind modules and mixins.
Monitoring for your Node.js apps can be hard. The tricky part is understanding what you need to monitor, instrumenting your code, and then making sense of all the data that’s been emitted. (That’s almost every part you might say 😅 ). At AppSignal, we dogfood our product and understand the pain users feel ourselves. The key points we focus on are the ease of use, flexibility, and developer experience.
According to a definition of multitenancy, when an app serves multiple tenants, it means that there are a few groups of users who share common access to the software instance. An excellent example of an app that supports multitenancy is the Jira platform, where each company has its subdomain to access the software, for example, mycompany.atlassian.net.
AppSignal was built because we were tired of slow and clumsy monitoring setups. Instead, we built monitoring that’s easy yet powerful - an intuitive interface enables you to figure out what’s happening in no time. Today, our team made finding slow events effortless. We’ve fully overhauled our slow events feature, helping developers to quickly find and fix slow queries and API requests.
Let’s talk about SPAs. It all starts from a blank page which is subsequently filled with HTML and JavaScript. If we take PHP pages as an example, they already come bundled with the server, which is an advantage in terms of performance, right? For situations like these, server-side rendering frameworks (such as Next.js) come to the rescue. They process the code on the server-side to pre-fill the HTML result page with something (if not the whole page) before it reaches the browser.
Garbage collection (GC) is a very important process for all programming languages, whether it’s done manually (in low-level languages like C), or automatically. The curious thing is that most of us barely stop to think about how JavaScript — which is a programming language, and hence, needs to GC — does the trick. Like the majority of high-level languages, JavaScript allocates its objects and values to memory and releases them when they’re no longer needed. But, how?
Logs are an important part of your application and logging shouldn’t be one of the last things you think of. You should configure your log system, formatter, and style as soon as you start the development of your app. Also, do your best to document the process and share how it works with the rest of your team. In this article, we’re going to demonstrate how logs work in Elixir. We’ll jump into Elixir’s Logger module, which brings a lot of power to logging features.