Monitoring is a critical component of literally any application stack. Without the ability to see how Go applications perform and get notified in case of an availability or performance problem, it would be impossible to take timely action. Any downtime or performance regression can have a significant impact on the business.
The traditional split of responsibilities between application development and its operation in production assumes that application performance-related efforts are developers’ business. At the same time, application availability and uptime are managed by operations teams.
Profiling tools are a critical part of application development and operations. Problems, such as memory leaks or high CPU load, may make applications, developed over the course of serval months, unusable in minutes. Problems like this are very hard to localize and fix without special tools, such as profilers.
The slowdown in the rate at which CPU speed is increasing has became noticeable as we’ve approached quantum sizes for transistors, where things behave differently, e.g. when the tunneling effect kicks in. There is enough written on this topic already.
Any business-critical production application is accompanied by monitoring and alerting. If not, the downtime or performance issues will stay unnoticed for longer, which will obviously negatively impact any organization.