In Part One of this article, we started our tour of the NodeFly Agent Dashboard graphs with some ideas of how to utilize it effectively. Today we continue that tour to look at the best ways to use it with your product development.
The “Concurrent connections” graph shows the number of connections you have established, as well as an average throughput. Considerations for your product will include how many people will be using your product at the same time, what they will be doing while connected and how much data might be moved in either direction, and how long they will be connected. Again, it means being aware of what your product needs to do.
How many people are actively using your product at any given moment can be a good metric for tuning as well as for understanding other metrics. If you your Concurrent Connections go up you can expect your heap size to increase as well.
You can highlight or hide Concurrent Connections and Throughput.
Our Event metric is measuring the time from calling nextTick to when the function is executed. This can be different from app to app but we’ve set a default threshold of 10ms(configurable). Any wait longer than that will register as a a ‘blocked’ event loop. We measure this by how often the threshold is reached and by how much.
The key to remember is that since Node.js can only do one thing at once, the amount of requests your product gets will impact your Event Loop and efficiency.
Node.js needs a fast event loop to be able to deliver those lightning-fast speeds you’re looking for.
This graph will display Heap (Current heap size), RSS (Resident set size) and V8 GC (Heap size sampled immediately after a full garbage collection). As with our other graphs, you can customize what you see by highlighting or hiding any of these three sets of data.
Heap size is the designated amount of virtual memory being used, while RSS is the portion of physical RAM being used from the process’s memory.
With any of these graphs, we encourage you to use the real-time insight into capacity utilization and instantly see how changing usage affects performance. That is, as you develop and change your code and product, see how its performance is affected. By seeing what your app is talking to you can see what might be slowing it down. This is especially critical in production but also valuable if something goes wrong with your product and you need to fix or improve how your app functions. And you can make it easier by configuring alerts for the graphed values or by adding subusers to your monitoring team.
The NodeFly team keeps busy building upon the agent. We have some exciting plans to make the Dashboard even more useful to a broader audience. Here’s a tease of some upcoming features we have planned:
- TV mode for at-a-glance monitoring
- Embeddable graphs
- Customizable Dashboard layout
- Improved event loop monitoring with libuv
Of course, we will announce more as we get closer to launching these new features!
There are many ways to utilize the NodeFly dashboard. But at the end of the day it is your familiarity with your product that allows you to make the most of the real-time data the NodeFly dashboard provides. Monitoring don’t necessarily mean you will get information that you can put to use immediately, but it can help you compile good intel to help shape your product and know what is happening as you go into production as well as assist if something goes wrong.
We’re hoping our feedback provides some new ideas as to how to make the most of our dashboard metrics. But we know we have incredible users who already put our dashboard to use in very productive ways. NodeFly users – if you have tips and tricks that you would like to share, don’t hesitate to write us at firstname.lastname@example.org so we can spread the word.
And continue to use our agent at http://www.nodefly.com to fine-tune your profiling skills and product. Remember, you cannot manage what you cannot see.