Logging
Imagine a system you build five years ago. Now, over time, there must have been a large amount of data in the system among which most is useful. These data give you an idea of the system’s health alongside its problems and performance. In addition, you can have insight into who used your system, how often they used it, what section was most used and what was least used, and so on.
We typically use this data for analytics, performance optimization, and product improvement. As per developers, we use it for debugging purposes. It can help with both console logins during development and bug hunts in the test and production environments.
The most efficient way to keep the data intact is LOGGING — to help in traceability and audits. We need to view the logs as a sequence of consecutive events because the data becomes time-series data and the tools and databases you use should be designed to work with that kind of data.
Monitoring
After logging is done, the next step is MONITORING. This is the step when you figure out what you do with all the logging data. You need to monitor and analyze the data by developing some tools that can parse through the data and present it in a human-readable way for us to make sense. These data are stored in a database plugged in with other tools build with specific data structures that handle these time-series data.
Alerting
After you are ensuring active monitoring activities, you need to put up another system that sends you an alert every time there is a significant event in the system. You might have been using this system if you are involved in any kind of stock market. You get notified every time the price goes up or down. As a system designer, you can take advantage of the alert by making the system alert you of errors and failures.
Conclusion
Logging and monitoring help to keep your data consistent with time so that we can have more benefits. If the data consistency is not maintained, there could be missing fields which might lead to a system error.
pragyaasapkota / System-Design-Concepts
A repo with some system design concepts.
System Design
Systems design is the process of defining elements of a system like modules, architecture, components and their interfaces and data for a system based on the specified requirements.
This is a index for the concepts of system.
If you wish to open these in a new tab, Press CTRL+click
S.N. | Table of Content |
---|---|
1. | Caching |
2. | Network Protocols |
3. | Storage: The Underrated Topic |
4. | Latency and Throughput |
5. | System Availability |
6. | Leader Election |
7. | Proxies |
8. | Load Balancing |
9. | Endpoint Protection |
10. | HTTPS: Is it better than HTTP? |
11. | Polling and Streaming |
12. | Long Polling |
13. | Hashing |
14. | CAP Theorem |
15. | PACELC Theorem |
16. | Messaging and Pub-Sub |
17. | Database |
18. | Logging, Monitoring, and Alerting |
19. | Distributed System |
20. | Scaling |
21. | Event Driven Architecture (EDA) |
Thank you!!!
I hope this article was helpful to you.
Please don’t forget to follow me!!!
Any kind of feedback or comment is welcome!!!
Thank you for your time and support!!!!
Keep Reading!! Keep Learning!!!
Top comments (0)