These metrics typically measure the code quality and provide an indication of its reliability. Generally, metrics under static metrics include the following:
- Cyclomatic complexity: This is a quantitative measure of the complexity of a program. It is derived from the number of linearly independent paths through a program's source code. Generally, complex programs are much harder to engineer reliability into.
- Defect amount and rate: How many open defects are there against the production system? How many bugs are created with 100 lines of code?
- Review/QC rejects: This metric defines how many times a code check-in is rejected by code reviewers or QC. This is a good indicator of the quality of the code written by the developers.
- Testability: The amount of effort required to test the system and ensure that it performs its intended functions.
- Maintainability: The effort required to locate and fix an error during regular maintenance.
With this context, let's look at multiple facets of reliability in a modern microservices architecture.