Build a monitoring system in the business production flow

Monitoring system architecture in production flow

Introduction

A few days ago, the author had the idea of ​​wanting to monitor the data of several different platforms at the same time. Generally, if we need to monitor certain parameters of certain website platforms, we often choose various methods.
This is actually a matter of fact. The reason is that, first of all, the development of Internet technology has been for quite some time. What kinds of new technologies and new architectures are emerging in an endless stream, but our interaction interface with humans has basically not undergone a fundamental change, that is, the visual touch interface. This will give people the illusion that getting information is a very easy thing, but in essence, this is not the case. Obtaining information is actually a very difficult thing, but the interface for us to directly obtain information is relatively simple, but in order to transmit information safely and quickly to users, it is actually quite complicated.
Going a bit farther, when it comes to information monitoring, in fact, information monitoring is not a technology, but a behavior or a monitoring behavior that has a specific demand for information. People will not produce information monitoring behavior for no reason, there will be deep-seated reasons. Because of various reasons, data monitoring has its essential meaning.
Since we want to build a complete monitoring system, we need to talk about the reasons to make it more meaningful. The first is meaning. Why do we need to monitor data? In fact, this can also be a problem with infinite solutions. It can be said to be a very nonsense problem. We can ask another way: What makes you need for data monitoring? It seems to be more specific, but it is still not a very good answer. You can improve it a little. At which stage of the production process will you have the idea and desire for data monitoring? After several simplifications and thought changes, we finally transformed data monitoring from an abstract problem to a little bit more concrete. Although this is only a direction from a demand perspective, it is often best to think about what architecture to use. The best angle.
First of all, we cut the matter of data monitoring into vertical and horizontal. The vertical value is the distribution of each node in the production flow, and the horizontal is the necessity of data monitoring in the production flow node. Building a data monitoring system is not simple, we must always pay attention to the most necessary issues. We can express the impact of data monitoring in a production process on the problem through the violin diagram.
Insert picture description here
We mainly use two parameters for the data monitoring decision here, one is the feasibility of data monitoring, and the other is the necessity of data monitoring, and set a threshold. Only when the threshold reaches the standard in the process, a similar decision will be made. . We see that in the process of the example, we have sufficient necessity and feasibility to monitor the data in the process of testing feedback and improvement. Then, we will construct a monitoring process in the process of user feedback and improvement to collect information.
With the hypothetical scene, what we need based on the scene is to analyze which parameters in the scene need to be constructed most and which are not needed.

Preferences

Through the necessity and feasibility of data modeling, we have selected which stage in the production flow to build and set the monitoring point, and then we need to consider the problem of parameter selection and parameter combination. Take a look at our assumed monitoring process node is'Feedback and Improvement', which is the stage of testing user feedback collection and product improvement. First, define the results to be achieved by the production node. The main task of test user feedback and product improvement is to make the test user's satisfaction with the test version product reach an appropriate height within a controllable time.

Therefore, we have begun to face several problems again. The first is the quantification of the problem, and the most direct measurement of user satisfaction. Then the information we need to collect may include several channels. The most direct is the user’s rating of the product. The next highest is the user's evaluation of the product. These two aspects can be used here as a measure of user satisfaction. Then we use the daily average rating of the product, the number of daily average ratings, the forward index of daily reviews, the reverse index of daily reviews, and the number of daily reviews of the test users for the product as the main measurement parameters of user satisfaction.

Then there is the measurement of product improvement. Here, depending on the product, the focus may not be the same. Here we use the degree of use of the product's functional modules, the overall use time, and the first use time of the user as the main application parameters.

Parametric modeling

Take a look at the parameters we have in hand, including the average daily rating of users, the number of daily ratings, the positive index of daily reviews, and the inverse index of daily reviews on user satisfaction. There are also about the degree of use of the product's functional modules, the overall use time of the product, and the first use time of the user. Next, we are going to model the parameters according to our goals. First of all, we assume that all parameters have been regularized, then we can do a simple weighted average for the parameters of user satisfaction measurement. (We will not pay too much attention to mathematical principles, but focus on the construction of tools and the choice of solutions.)

data storage

This is actually the data collected in the process of product improvement. The first is the choice of the database. Since most of our parameters are non-relational data, I decided to use a non-relational database to organize my data. In fact, when facing this kind of time-related data, you can usually use Time Series Database (TSDB). There are many related solutions in the industry. The InfluxDB used by the author here is easy to build. Based on Go language, the performance is acceptable in the business development process.

data visualization

After we have collected the data, we also need to consider the data visualization platform. Generally, index monitoring is more troublesome to write a BI yourself. Common solutions such as Grafana are available out of the box and easy to build.

Build by hand

Because of the virtual scene, we have to simulate the generation of part of the data, such as the rating data and rating comment information here, which need to be generated and inserted into the data node by the program. At the same time, we also learn to consider how the data in the iterative process affects the data, and how to show the impact of the data. How to characterize these problems and how to quantify the process of nodes

(To be continued and updated before the end of April)

Guess you like

Origin blog.csdn.net/m0_37964621/article/details/105480489