There is such a thing as too much application logging. Recording every single line of code that the software executes would be both unnecessary and harmful to the performance of the product. Since logging takes system resources and many modern software applications are complex, log files might grow to be prohibitively large and prevent the product from running at full potential. Even if such excessive logging were feasible, it would be unnecessarily comprehensive for developers. Sifting through potentially millions of lines of a log in order to follow the execution of a product could take developers more time than if they had only the valuable lines and variables. The best application logging practices record only enough information to be valuable to developers, and no more to minimise the performance penalty.
Production Metrics
In contrast to application logging, production metrics are more of a general or meta level of telemetry. They observe how much work the team accomplishes on a daily basis. This capacity of work completed is valuable for planning future products and features. By consistently recording these measures over time, and accurately estimating the size and complexity of new features, teams can begin to obtain a measurement of about how long new projects will take to complete.
With granular production metrics, teams can identify bottlenecks and inefficiencies in the pipeline. With the knowledge of where the process slows, teams can try new methods and techniques in attempts to remedy or remove these problems. If they have a history of production measurements for a team, they can directly compare the metrics before and after changes to see if the process has improved.
Types of Metrics
There are many different types of measurements that teams might employ. Some of these types include business, application, infrastructure, and deployment metrics. Business metrics might cover individual pieces of data like total number of customers, new sales per time period, and customer churn. Application metrics could measure variables such as the number of bug reports entered for a product, or the number of new features added.
While most teams need to implement some sort of metrics in each of these categories, the exact measurements and acceptable ranges will vary by team and organisation. The goal is to gain insight on the entire process, and see how each facet of a pipeline is performing over time.