Data processing method and device
By receiving monitoring configuration information in cloud-native scenarios, determining the process to be monitored and collecting its business data, and using eBPF programs to obtain data from the kernel state, the problem of monitoring complexity in the microservice architecture is solved, and efficient and general monitoring data processing is achieved.
Patent Information
- Application Number
- CN202411385548.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-30
- Publication Date
- 2025-03-07
AI Technical Summary
In cloud-native scenarios, the complexity of the microservice architecture and the existence of multiple development languages and development frameworks make service quality monitoring and traffic monitoring difficult, making it difficult to achieve fast, efficient and low-cost information monitoring.
By receiving monitoring configuration information, determine the process to be monitored, collect its business data, and determine business parameters based on the data to obtain monitoring results. This method uses eBPF program to directly obtain business data from the kernel state, decouple and develop language and technical frameworks, and implements a general data processing method.
It realizes the universality of monitoring tasks for different development languages and technical frameworks, simplifies operation and maintenance processing, and improves monitoring efficiency and data processing efficiency.
Smart Images

Figure CN119576682A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of computer technology, and in particular to a data processing method, a data processing device, a computing device, a computer-readable storage medium, and a computer program product. Background Art
[0002] In the current cloud-native era, microservice architecture has been widely used, the module scale of large projects has exploded, and the complexity between systems has increased. Some large projects often have multiple development languages and development frameworks between different application modules, which brings challenges to service quality monitoring.
[0003] In cloud-native scenarios, it is necessary to monitor various indicator information in the microservice architecture. Faced with increasingly complex projects and multiple development languages and development frameworks between different modules within the project, how to monitor information quickly, efficiently and at low cost has become an urgent problem for technical personnel to solve. Summary of the invention
[0004] In view of this, the embodiment of the present application provides a data processing method. The present application also relates to a data processing device, a computing device, a computer-readable storage medium and a computer program product to solve the above problems existing in the prior art.
[0005] According to a first aspect of an embodiment of the present application, a data processing method is provided, including: Receiving monitoring configuration information, wherein the monitoring configuration information is created based on the monitoring task; Determining a process to be monitored based on the monitoring configuration information; Collecting the service data to be monitored corresponding to the process to be monitored, and determining the service parameters to be monitored according to the service data to be monitored; A monitoring result corresponding to the monitoring task is obtained based on the service parameter to be monitored.
[0006] According to a second aspect of an embodiment of the present application, a data processing method is provided, including: Receiving flow monitoring configuration information, wherein the flow monitoring configuration information is created based on a flow monitoring task; Determine the process to be monitored based on the traffic monitoring configuration information; Collecting the service data to be monitored corresponding to the service process to be monitored, and determining the traffic source address according to the service data to be monitored; According to the traffic source address, the traffic source information corresponding to the traffic source address is queried in the preset operation and maintenance metadata service.
[0007] According to a third aspect of an embodiment of the present application, there is provided a data processing device, including: A receiving module, configured to receive monitoring configuration information, wherein the monitoring configuration information is created based on the monitoring task; A determination module, configured to determine a process to be monitored based on the monitoring configuration information; A collection module is configured to collect the service data to be monitored corresponding to the process to be monitored, and determine the service parameters to be monitored according to the service data to be monitored; The acquisition module is configured to obtain the monitoring result corresponding to the monitoring task based on the service parameter to be monitored.
[0008] According to a fourth aspect of an embodiment of the present application, a computing device is provided, including: Memory and processor; The memory is used to store computer programs / instructions, and the processor is used to execute the computer programs / instructions. When the computer programs / instructions are executed by the processor, the steps of the above method are implemented.
[0009] According to a fifth aspect of an embodiment of the present application, a computer-readable storage medium is provided, which stores a computer program / instruction, and the steps of the above method are implemented when the computer program / instruction is executed by a processor.
[0010] According to a sixth aspect of an embodiment of the present application, a computer program product is provided, comprising a computer program / instruction, which implements the steps of the above method when executed by a processor.
[0011] The data processing method provided in the present application includes receiving monitoring configuration information, wherein the monitoring configuration information is created based on a monitoring task; determining a process to be monitored based on the monitoring configuration information; collecting business data to be monitored corresponding to the process to be monitored, and determining business parameters to be monitored based on the business data to be monitored; and obtaining a monitoring result corresponding to the monitoring task based on the business parameters to be monitored.
[0012] An embodiment of the present application realizes determining the process to be monitored based on the monitoring configuration information, and directly obtaining and analyzing the business data from the kernel state through the eBPF program. This method is decoupled from the development language and technical framework of each service, and a universal data processing method is used to adapt to various development languages and technical frameworks, thereby realizing the universality of the monitoring task. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] Figure 1 is a flow chart of a data processing method provided by an embodiment of the present application; Figure 2 It is a structural diagram of a data processing method applied to a golden index monitoring scenario provided by an embodiment of the present application; Figure 3 It is a structural diagram of a data processing method applied to a traffic monitoring scenario provided by an embodiment of the present application; Figure 4 is a structural schematic diagram of a data processing device provided by an embodiment of the present application; Figure 5 It is a structural block diagram of a computing device provided in one embodiment of the present application. DETAILED DESCRIPTION
[0014] Many specific details are described in the following description to facilitate a full understanding of the present application. However, the present application can be implemented in many other ways than those described herein, and those skilled in the art can make similar generalizations without violating the connotation of the present application, so the present application is not limited by the specific implementation disclosed below.
[0015] The terms used in one or more embodiments of the present application are only for the purpose of describing specific embodiments, and are not intended to limit one or more embodiments of the present application. The singular forms of "a", "said" and "the" used in one or more embodiments of the present application and the appended claims are also intended to include plural forms, unless the context clearly indicates other meanings. It should also be understood that the term "and / or" used in one or more embodiments of the present application refers to and includes any or all possible combinations of one or more associated listed items.
[0016] It should be understood that, although the terms first, second, etc. may be used to describe various information in one or more embodiments of the present application, these information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other. For example, without departing from the scope of one or more embodiments of the present application, the first may also be referred to as the second, and similarly, the second may also be referred to as the first. Depending on the context, the word "if" as used herein may be interpreted as "at the time of" or "when" or "in response to determining".
[0017] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant laws, regulations and standards in the relevant regions, and provide corresponding operation entrances for users to choose to authorize or refuse.
[0018] First, the terms involved in one or more embodiments of this specification are explained.
[0019] QPS: Queries-per-second, query rate per second, that is, the amount of request data processed by unit computing resources per unit time.
[0020] Availability: The probability or expected time occupancy rate of a system being able to operate normally within a certain period of time.
[0021] Pod: A container group is an abstraction of an application in Kubernetes. It is the smallest schedulable unit and consists of a group of closely related containers that are scheduled to the same node.
[0022] eBPF: Extended Berkeley Packet Filter, is a technology that can run sandbox programs in the operating system kernel. It can dynamically program the kernel to achieve efficient network, observability and security functions.
[0023] In the current cloud-native scenario, microservice architecture has been widely used. The module scale of large projects has exploded, and the complexity between systems has increased. Large projects often have multiple development languages and frameworks between different application modules. This brings challenges to service quality monitoring and traffic monitoring.
[0024] In the cloud-native scenario, Prometheus is the de facto standard for monitoring cloud-native and container platforms, and is also the observable de facto standard. In service quality monitoring, golden indicators (QPS, latency, availability) are relatively common indicators. Given the current situation of multiple development languages and multiple development frameworks, it is necessary to develop for each development language and framework separately, obtain the corresponding data for monitoring, and it takes a lot of manpower and material resources. In the traffic monitoring task, the service will be accessed by unknown traffic due to interface exposure, card method, testing, grayscale, etc., which will have a great impact on service reconstruction and migration.
[0025] Based on this, in the present application, a data processing method is provided. The present application also relates to a data processing apparatus, a computing device, a computer-readable storage medium and a computer program product, which are described in detail one by one in the following embodiments.
[0026] Figure 1 A flowchart of a data processing method provided according to an embodiment of the present application is shown, which specifically includes the following steps: Step 102: Receive monitoring configuration information, wherein the monitoring configuration information is created based on a monitoring task.
[0027] The data processing method provided in the present application is applied to the server side of the cloud native scenario. Multiple business container groups (Pods) are deployed in the server side. The business container group includes at least one business container (container), and the business container includes at least one business process.
[0028] The monitoring configuration information can be understood as the configuration information of the monitoring task used to monitor the business process. The monitoring task is created based on the business needs of the business side. For example, the monitoring task can be to monitor the delay information of a process, to monitor the availability of a process, to monitor the QPS of a process, to monitor the traffic source information of a process, etc.
[0029] The data processing method provided in this application is applied to the server side of the cloud native scenario and is used by technical personnel who provide monitoring services. Business personnel on the business side propose a monitoring task for a certain process. The technical personnel create monitoring configuration information in the configuration platform according to the monitoring task, and send the monitoring configuration information to the server side through the configuration platform. In another specific implementation method provided in this application, the configuration platform can also be developed for business personnel. The business personnel input the monitoring task on the configuration platform. The configuration platform generates corresponding monitoring configuration information according to the monitoring task, and sends the monitoring configuration information to the server side.
[0030] By creating corresponding monitoring configuration information through monitoring tasks, it is easier to better understand the monitoring requirements of the monitoring tasks during subsequent data processing, so that the server can perform corresponding processing based on the monitoring configuration information, thereby improving the computing and processing efficiency of the server.
[0031] In the method provided in the present application, the monitoring configuration information can be created according to the monitoring task, or it can be updated according to the monitoring task. For example, a new monitoring configuration information can be generated according to a new monitoring task configuration on the configuration platform, or the existing monitoring configuration information can be updated according to the monitoring configuration task to obtain new monitoring configuration information. The configuration platform has the ability to dynamically add and modify monitoring configuration information. In addition, various monitoring configuration information is uniformly managed through the configuration platform, which is convenient for normalizing various types of monitoring tasks, unifying and issuing diversified monitoring tasks on the configuration platform, so that subsequent data processing can focus on processing monitoring configuration information of the same format, saving server computing resources and improving data processing efficiency.
[0032] Step 104: Determine the process to be monitored based on the monitoring configuration information.
[0033] The process to be monitored can be understood as the process targeted by the monitoring task, that is, the monitoring task is a monitoring task for the process to be monitored. The process to be monitored can be one, two or more.
[0034] In practical applications, a monitoring task is usually a monitoring task for a certain business, and the monitoring task is usually for at least one business process. Therefore, the corresponding process to be monitored can be found on the server according to the monitoring configuration information corresponding to the monitoring task.
[0035] By determining the process to be monitored in the server according to the monitoring configuration information, the corresponding process can be matched quickly and accurately, thereby avoiding monitoring of processes that do not need to be paid attention to, thus saving the computing resources of the server.
[0036] In a specific implementation provided in the present application, determining the process to be monitored based on the monitoring configuration information includes: Parsing the monitoring configuration information to obtain monitoring configuration parameters in the monitoring configuration information; Container filtering is performed according to the monitoring configuration parameters to determine the process to be monitored.
[0037] Among them, the monitoring configuration parameters can be understood as the parameter information in the monitoring configuration information. In actual applications, the monitoring configuration information includes parameters of multiple dimensions, such as container group ID, container ID, process ID, data type information to be obtained, monitoring tasks, etc. By filtering the monitoring configuration parameters in the server, the processes to be monitored that need to be monitored can be determined.
[0038] In actual applications, an Agent process will run on the server. The Agent process runs on each server (physical machine) and is responsible for processing the container group on the current server.
[0039] The Agent process receives the monitoring configuration information sent by the configuration platform, parses the monitoring configuration information, and obtains the monitoring configuration parameters therefrom.
[0040] In another specific implementation manner provided by the present application, before determining the process to be monitored based on the monitoring configuration information, the method further includes: Performing configuration information verification on the monitoring configuration information; If the monitoring configuration information fails to pass the configuration information verification, configuration error information is returned.
[0041] In actual applications, after receiving the monitoring configuration information, the Agent process will first verify the monitoring configuration information and verify the legitimacy of the content of the monitoring configuration information, including but not limited to whether the format of the monitoring configuration information meets the requirements, whether the monitoring configuration parameter types in the monitoring configuration information are complete, etc. For monitoring configuration information that fails the configuration information verification, the monitoring configuration information will be refused to run and a configuration error message will be returned. The technical staff or relevant business personnel will be informed that the monitoring configuration information is wrong.
[0042] For the monitoring configuration information verified by the configuration information, the Agent process will save the monitoring configuration information to the storage area corresponding to the server, which can be a memory area or a persistent storage area. In a specific implementation provided by the present application, the monitoring configuration information verified by the configuration information is preferably saved in the persistent storage area to ensure that after the server is abnormally restarted, the monitoring task can be continued according to the monitoring configuration information in the persistent storage area.
[0043] In another specific implementation provided by the present application, the monitoring configuration parameters include a container group identifier, a container identifier, and a process identifier; Filtering containers according to the monitoring configuration parameters to determine the process to be monitored includes: Determine a target container group according to the container group identifier; Determine a target container in the target container group according to the container identifier; According to the process identifier, a process to be monitored is determined in the target container.
[0044] In actual applications, the monitoring configuration parameters usually include path information for finding the process to be monitored, that is, the process ID of the process to be monitored, the container ID of the container where the process to be monitored is located, and the container group ID corresponding to the container where the process to be monitored is located.
[0045] In the cloud-native scenario, each server includes at least one container group (POD), each container group includes at least one container, and each container includes at least one business process.
[0046] The container group identifier can be understood as a container group name or a container group ID. Through the container group identifier, a target container group where the process to be monitored is located can be found among multiple container groups of the server.
[0047] The container identifier can be understood as a container name or a container ID, and the container identifier can be used to further filter in the target container group. The target container where the process to be monitored is located is found from multiple containers corresponding to the target container group.
[0048] The process identifier can be understood as the process ID. After determining the target container, the process to be monitored can be queried in the target container according to the process identifier. At this point, the process to be monitored corresponding to the monitoring task and related monitoring configuration parameters can be obtained.
[0049] In a specific implementation provided in the present application, after receiving new monitoring configuration information, the Agent process compares the new monitoring configuration information with the saved monitoring configuration information to determine whether the monitoring configuration information has been updated. If there is an update, the update logic is started to replace the saved monitoring configuration information with the new monitoring configuration information, thereby realizing real-time updating of the monitoring configuration information.
[0050] Step 106: Collect the service data to be monitored corresponding to the process to be monitored, and determine the service parameters to be monitored according to the service data to be monitored.
[0051] After determining the process to be monitored and the related monitoring configuration parameters, the process to be monitored can be monitored and the business data to be monitored corresponding to the process to be monitored can be collected. The business data to be monitored can be understood as the business data obtained from the process to be monitored based on the monitoring task.
[0052] In actual applications, after the Agent process determines the process to be monitored, it sets the collection program, the process ID to be monitored, and the relevant monitoring configuration parameters in the server, and collects data from the process to be monitored corresponding to the process ID to be monitored based on the collection program and monitoring configuration parameters, thereby obtaining the business data to be monitored corresponding to the process to be monitored.
[0053] In a specific implementation manner provided in the present application, collecting the service data to be monitored corresponding to the process to be monitored includes: Acquire the service data to be monitored based on the eBPF program and the process identifier of the process to be monitored in the kernel state; The service data to be monitored is stored in a preset storage location in the kernel state; The agent program based on the user state reads the service data to be monitored from the preset storage location.
[0054] Furthermore, the Agent process needs to hang the collection program, the process identifier to be monitored, and the monitoring configuration parameters in the kernel state of the server to collect business data. The process of injecting the collection program into the kernel state and taking effect is implemented based on the Linux eBPF mechanism.
[0055] eBPF: The full name is extended Berkeley Packet Filter, which is a technology that can run sandbox programs in the operating system kernel. It can dynamically program the kernel to achieve efficient network, observability and security functions. eBPF is a virtual machine that can run in the Linux kernel. It evolved from Berkeley Packet Filter (BPF) and was originally used mainly for network packet filtering. However, with the development of technology, the function of eBPF has far exceeded network packet filtering, and now it can be used for observation and control tasks of many systems and networks.
[0056] The main feature of eBPF is the ability to run custom programs in the kernel without modifying the kernel source code or loading kernel modules. This means that users can customize programs to collect and process data in the kernel, thereby achieving deep observation and control of the system. eBPF programs are usually compiled and loaded into the kernel by user space tools. They can be attached to many types of kernel objects, such as system calls, network interfaces, task switching, etc. When these events occur, eBPF programs are executed, and they can read and modify data in the kernel, and even change the behavior of the system.
[0057] User Mode is the normal running program of the program. Most user programs (such as text editors, browsers, database applications, etc.) are executed in user mode. In user mode, the program cannot directly access the operating system kernel, hardware or the memory space of other programs. It can only request the kernel to complete some operations that require special permissions by initiating system calls, such as reading and writing files, sending network data, etc.
[0058] Kernel Mode is also called system mode. The operating system kernel runs in this mode. The kernel can directly access hardware and memory and perform tasks such as managing memory, responding to interrupts, and processing system calls. When a user-mode program initiates a system call, the system switches to kernel mode. After the kernel completes the requested service, it switches back to user mode. This mode switching mechanism is designed to protect the security and stability of the system. By limiting the behavior of user-mode programs, malicious or erroneous code can be prevented from damaging the operating system kernel or other programs. When a program needs to perform special permission operations, it switches to kernel mode through a system call, which is completed by the kernel, ensuring the normal operation and security of the system.
[0059] There are the following differences between programs running in kernel mode and user mode: Permissions: Programs running in kernel mode have higher permissions. They can directly access hardware and kernel data structures, while programs in user space need to request kernel services through system calls. This means that programs running in kernel mode can do more things, but it also means greater risks because a wrong operation may damage the entire operating system.
[0060] Performance: Programs in kernel state usually run faster than programs in user state because programs running in kernel state can directly access hardware and kernel data structures without the overhead of system calls, which is very important for tasks that require high performance.
[0061] Security: Programs in user mode run in a restricted environment and cannot directly access hardware or affect other programs. This provides a certain level of security for the operating system, while programs in kernel mode need to be more careful because incorrect operations may cause the operating system to crash.
[0062] The eBPF program provides a security mechanism for running custom programs in kernel state, so that you can enjoy the high performance of kernel state without worrying about the security of the operating system. In practical applications, the eBPF program is divided into two parts: kernel state and user state. In the method provided in the embodiment of the present application, the eBPF program in user state is used to load the eBPF in kernel state into the kernel, and the process identifier of the process to be monitored in the eBPF program in kernel state obtains the business data to be monitored.
[0063] eBPF also supports a kernel data structure called "Maps", which can be used to store and share data. In the method provided in this application, the preset storage location can be understood as eBPF Maps. eBPF programs can read and modify the data in Maps, and user space programs can also read and modify these data. This allows user space programs and kernel space eBPF programs to exchange data efficiently. eBPF is a powerful tool that can be used to implement observation and control tasks for various systems and networks.
[0064] In kernel state, after obtaining the business data to be monitored based on the process identifier of the eBPF program and the process to be monitored, the business data to be monitored can be continuously written to the eBPF Maps, and the Agent process in user state can read the business data to be monitored from the eBPF Map, thereby extracting the business data to be monitored obtained in kernel state into user state, which is convenient for subsequent further processing of the business data to be monitored.
[0065] In a specific implementation manner provided in the present application, obtaining the service data to be monitored based on the eBPF program and the process identifier of the process to be monitored in the kernel state includes: Acquire initial network data in kernel state based on the eBPF program and the process identifier of the process to be monitored; Acquire a service structure to be monitored from the initial network data according to the data offset information; Extract the service data to be monitored from the service structure to be monitored.
[0066] In actual applications, the eBPF program runs in kernel state, and the initial network data obtained by the process to be monitored can be obtained according to the process ID of the process to be monitored. Specifically, the process to be monitored can be a system call such as sys_read, sys_recvfrom, sys_recvmsg, sys_readv, and sys_write. After obtaining the initial network data, the initial network data can be further parsed, and the service structure to be monitored (i.e., socket object) can be obtained from the initial network data according to the eBPF Offset. Then extract the service data to be monitored from the service structure to be monitored.
[0067] By running the eBPF program in the kernel state, the initial network data corresponding to the process to be monitored is obtained from the kernel protocol stack according to the process ID of the process to be monitored. This method can quickly and accurately obtain the business data of the process to be monitored from the kernel state, so that the business data to be monitored required for the subsequent processing flow can be obtained more quickly and conveniently, thereby improving the efficiency of data processing.
[0068] In another specific implementation manner provided in the present application, determining the service parameter to be monitored according to the service data to be monitored includes: Determining task requirement information according to the monitoring task; Extracting the service parameters to be monitored from the service data to be monitored according to the task requirement information.
[0069] The service data to be monitored may include a variety of service parameters, and different service parameters to be monitored may be extracted from the service data according to different monitoring tasks.
[0070] In practical applications, different monitoring tasks require different business parameters to be monitored. For example, when the monitoring task is to determine the communication protocol, the business parameter to be monitored may be the business format information; when the monitoring task is delay information, the business parameter to be monitored may be the sending timestamp and receiving timestamp of the business data; when the monitoring task is availability information, the business parameter to be monitored may be the number of errors, and so on.
[0071] In the method provided in the present application, the corresponding task requirement information can be determined according to the monitoring task, and then the corresponding service parameters to be monitored can be extracted from the service data to be monitored according to the task requirement information, so as to facilitate the subsequent processing of the service data.
[0072] Step 108: Obtaining a monitoring result corresponding to the monitoring task based on the service parameter to be monitored.
[0073] After determining the service parameters to be monitored, the monitoring task can be executed according to the service parameters to be monitored, so as to obtain the monitoring result corresponding to the monitoring task. In practical applications, obtaining the monitoring result corresponding to the monitoring task based on the service parameters to be monitored includes: Based on the business parameters to be monitored, at least one of the communication protocol information, delay information, availability information, query volume per second, and traffic source information corresponding to the process to be monitored is obtained.
[0074] Depending on the monitoring task, the monitoring result may be at least one of communication protocol information, delay information, availability information, query volume per second, traffic source information, etc. The specific monitoring result may be further determined according to the actual business situation.
[0075] Optionally, the service parameters to be monitored include service information format; Obtaining communication protocol information corresponding to the process to be monitored based on the service parameter to be monitored includes: Compare the service information format in a preset communication protocol information base; The communication protocol information corresponding to the process to be monitored is determined according to the matching result.
[0076] The communication protocol information can be understood as what communication protocol is used by the process to be monitored. In practical applications, the service parameters to be monitored may include the service information format. The communication protocol of the process to be monitored can be inferred from the service information format.
[0077] Specifically, the business information format corresponding to each communication protocol is different. A preset communication protocol database will be set in the server, and a variety of communication protocol information and the business information format corresponding to each communication protocol information are stored in the preset communication protocol database. The communication protocol information includes but is not limited to application protocols for scenarios such as Http, Apache Thrift, Grpc, and redis. After receiving the business data of the business process to be monitored, the business information format (such as header data, etc.) can be extracted from the business data, and the business format information can be compared with the preset communication protocol database in the server. When a format that is the same as the business format information is matched, the communication protocol information corresponding to the process to be monitored can be determined.
[0078] Optionally, the service parameters to be monitored include a sending timestamp and a receiving timestamp; Obtaining delay information corresponding to the process to be monitored based on the service parameter to be monitored includes: Delay information corresponding to the process to be monitored is calculated according to the receiving timestamp and the sending timestamp.
[0079] When the monitoring result is delay information, the service parameter to be monitored is the sending timestamp and receiving timestamp corresponding to the service data packet on a socket. The sending timestamp and receiving timestamp are used as the service parameters to be monitored, and the delay information of the current socket request and response can be obtained through the difference between the two.
[0080] Optionally, obtaining the query volume per second corresponding to the process to be monitored based on the business parameter to be monitored includes: Count the number of business data of business parameters to be monitored within a unit time; The query volume per second corresponding to the process to be monitored is determined according to the amount of business data.
[0081] When the monitoring result is the number of queries per second (QPS), it is necessary to continuously count the monitored business parameters. Specifically, it is necessary to count the number of business data obtained from the business parameters to be monitored within a unit time, which can be 1 second. That is, the number of business data received within 1 second is counted, and after the statistics are completed, the data is aggregated to calculate the number of queries per second corresponding to the business process to be monitored.
[0082] Optionally, obtaining availability information corresponding to the process to be monitored based on the service parameter to be monitored includes: Count the amount of business data and the amount of completed business communications of business parameters to be monitored within a unit time; The availability information corresponding to the process to be monitored is determined according to the number of completed business communications and the amount of business data.
[0083] When the monitoring result is availability information, the service parameter to be monitored can be the error code quantity information stored in the socket object. According to the service data quantity and error code quantity in a unit time, the service communication quantity completed in a unit time can be calculated. Then, according to the service data completion quantity and service data quantity, the availability information of the process to be monitored in the unit time can be determined.
[0084] Optionally, the service parameters to be monitored include a traffic source address; Obtaining traffic source information corresponding to the process to be monitored based on the service parameter to be monitored includes: Determine the traffic source information corresponding to the business process to be monitored based on the traffic source address corresponding to each business data.
[0085] When the monitoring result is traffic source information, it is classified and summarized according to the IP address, port, type and other fields in the monitored business parameters, and aggregated within a certain period of time to generate traffic source information corresponding to the monitored business process. The traffic source information includes the source IP of each business flow.
[0086] In a specific embodiment provided in the present application, the method further comprises: The monitoring results are sent to a data integration server so that the data integration server processes the monitoring results of each server.
[0087] The above operations of obtaining the monitoring results corresponding to the monitoring tasks based on the business parameters to be monitored are all performed by the Agent process operation running in the user state. For the monitoring results obtained by the Agent on each server, the present application also provides a data integration server, which is responsible for collecting the monitoring results generated by the Agent on each server and performing centralized integration processing.
[0088] Specifically, the IP address and port data in each monitoring result are extracted, and at least one of the traffic source service information, traffic source cluster information, traffic source area information, and traffic source deployment information corresponding to each monitoring result is queried from the preset operation and maintenance metadata service based on the IP address, port data and other information.
[0089] In the data integration server, a preset operation and maintenance metadata service (CMDB service) is maintained in advance. The CMDB service stores the IP address, the service corresponding to the IP address, the K8s cluster corresponding to the IP address, the region information corresponding to the IP address, the deployment information corresponding to the IP address, and so on.
[0090] After obtaining the IP address and port information from the monitoring results, you can obtain the traffic source service information, traffic source cluster information, traffic source region information, and traffic source deployment information corresponding to each flow from the CMDB service. Among them, the traffic source service information is what service the traffic source provides; the traffic source cluster information is the k8s cluster where the traffic source is located; the traffic source region information is the location information of the traffic source; the traffic source deployment information is the corresponding deployment type of the traffic source and other information.
[0091] In actual applications, if a service is deployed to containers of multiple servers through a distributed service architecture, the monitoring results of each server can be uniformly integrated and processed through a data integration server to obtain a more comprehensive and accurate monitoring result.
[0092] In another specific implementation provided in the present application, in order to speed up the query speed, reduce the query delay, and reduce the query pressure of the preset operation and maintenance metadata service, a cache mechanism can also be established in the data integration server to save the processed data in the cache area. After the IP address and port data are extracted from the subsequent monitoring results, the query is first performed from the cache area. If the query in the cache area is not found, the query is performed from the CMDB.
[0093] In addition, the information in the cache area can be periodically stored in the local storage persistently to avoid data loss caused by server restart. At the same time, the information in the cache area can be synchronized with the data in the CMDB regularly to clear expired data. The data integration server can also store various indicator data, and the specific storage method can be local storage or uploaded to other storage servers for storage. The specific storage method is not limited in this application.
[0094] Through the data integration server, the monitoring results of distributed deployed services in each server can be uniformly collected, verified and processed to ensure more accurate monitoring results for distributed deployed services.
[0095] If you need to query the monitoring results of the service later, you can find the corresponding QPS, availability, latency and other golden indicators of the service from the storage area according to the service name, and you can also find the corresponding upstream source service information of the service. The query results are displayed in a visual way on the front end.
[0096] The method provided in the embodiment of the present application injects the collection program into the kernel state, directly obtains the business data from the kernel state through the eBPF program and analyzes it. This method is decoupled from the development language and technical framework of each service, and can adapt to various development languages and technical frameworks through a common data processing method, thereby achieving the universality of the monitoring task.
[0097] Secondly, monitoring configuration information is created based on monitoring tasks and triggered by the configuration platform. All monitoring configuration information can be changed in real time according to the needs of the monitoring tasks and issued in real time through the configuration platform. There is no need to start, stop, and configure the eBPF program running in the kernel state. Daily operation and maintenance processing is simpler and more flexible, with higher processing efficiency.
[0098] The following combination Figure 2 , taking the application of the data processing method provided by this application in the gold index monitoring scenario as an example, the data processing method is further explained. Figure 2 A structural diagram of a data processing method applied to a gold index monitoring scenario provided by an embodiment of the present application is shown. Figure 2As shown: The monitoring requirements of the monitoring tasks are received in the configuration platform, monitoring configuration information is generated according to the monitoring requirements, and the monitoring configuration information is sent to the user state of the server through the configuration platform.
[0099] The monitoring configuration information includes the container group ID, container ID and process ID. The container group ID is used to filter the container group to determine the target container group; the target container is filtered by the container ID in the target container group to determine the target container; the process ID is used to filter the target container to determine the process to be monitored. After determining the process to be monitored, a traffic collection program is generated according to the monitoring configuration information and the process to be monitored, and the eBPF program with traffic collection function is injected into the kernel state of the server.
[0100] In kernel mode, the eBPF program collects data for the process to be monitored and obtains the business data to be monitored. After the monitoring business data is collected by the eBPF program, the monitoring business data is parsed by protocol. Specifically, the preset communication protocol information library is queried according to the data header information in the monitoring business data to determine the communication protocol information corresponding to the data header information, and the communication protocol information is cached so that when there is a subsequent query for the same data, the communication protocol information can be quickly and efficiently determined according to the cached information.
[0101] At the same time, the collected business data to be monitored is written into the eBPF MAP in the kernel state. The Agent program in the user state can read the business data to be monitored from the eBPF MAP and perform data analysis to obtain indicator information such as latency, QPS, and availability. At the same time, the indicator information is aggregated and reported to the integration server for indicator integration within the preset time.
[0102] After obtaining the indicators collected by the server in the integration server, the source IP address information in the indicator can be obtained by parsing the indicator, and the service information can be further determined through the source IP address information. Specifically, the corresponding service information can be obtained from the CMDB service according to the source IP address. In order to speed up the query speed, reduce the query delay, and reduce the query pressure of the CMDB, a cache mechanism is established in the integration server. The queried data is saved in the cache, and the subsequent source IP address is first queried from the cache. If it cannot be found in the cache, it is queried from the CMDB. The data in the cache is persisted and saved to the disk regularly. At the same time, the data in the cache is regularly compared and synchronized with the data in the CMDB, and expired and invalid data is cleared in a timely manner.
[0103] After the service information is determined, the service information is added to the indicator and the indicator is saved, so that when the golden indicator of the service is subsequently queried, the universal golden indicator corresponding to the service can be found directly from the storage area through the saved records according to the name or ID of the service.
[0104] The following combination Figure 3 , taking the application of the data processing method provided by this application in the traffic monitoring scenario as an example, the data processing method is further explained. Figure 3 A schematic diagram of a data processing method for a traffic monitoring scenario provided by an embodiment of the present application is shown, and the method steps include: Step 302: Receive traffic monitoring configuration information, wherein the traffic monitoring configuration information is created based on a traffic monitoring task.
[0105] Step 304: Determine the process to be monitored based on the traffic monitoring configuration information.
[0106] Specifically, for the specific implementation of steps 302 to 304, refer to the implementation of steps 102 to 104 above, which will not be repeated here.
[0107] Step 306: Collect the monitored business data corresponding to the monitored business process, and determine the traffic source address according to the monitored business data.
[0108] Specifically, the eBPF program running in kernel state collects the business data to be monitored for the business process to be monitored, and saves the business data to be monitored in the eBPF MAP. The Agent program running in user state obtains the business data to be monitored from the eBPF MAP.
[0109] In addition, in order to reduce the overall consumption, the method provided in this application also supports the configuration of the sampling rate, that is, avoiding sampling of all data volumes, thereby improving data processing efficiency. The configuration sampling rate can also be issued through the configuration platform, and the Agent process writes the configuration sampling rate into the eBPF MAP. The eBPF program reads the configuration sampling rate through the eBPF MAP, and then samples and reads the data traffic based on this information.
[0110] The Agent process reads the service data to be detected from the eBPF MAP, classifies and aggregates the data according to fields such as the IP address, and obtains the traffic information of the upstream node accessing the service (the traffic source address of the upstream node, i.e., the source IP).
[0111] Step 308: Query the traffic source information corresponding to the traffic source address in the preset operation and maintenance metadata service according to the traffic source address.
[0112] After the traffic source address is determined, the traffic source information corresponding to the traffic source address can be queried in the CMDB operation and maintenance metadata service according to the traffic source address. In actual applications, the number of traffic source addresses can be one, two, or more, so each traffic source address needs to be queried to determine whether the corresponding traffic source information is queried in the CMDB service for each traffic source address.
[0113] After determining the traffic source information corresponding to the traffic source address, the traffic source address and the traffic source information can be bound and saved. This facilitates subsequent query requests for the traffic source address, which can be queried from the saved data, thereby speeding up the query speed, reducing query latency, and reducing the query pressure on the CMDB.
[0114] In actual applications, there may be a situation where the traffic source information corresponding to the traffic source address cannot be queried. At this time, the traffic source address can be reported to the operation and maintenance personnel of the CMDB service to request assistance in querying whether there is any missing information for the traffic source address. If it is determined that the traffic source address cannot query the known traffic source information, it can be determined that the service request issued by the traffic source address is abnormal traffic. For abnormal traffic, corresponding processing measures can be taken according to actual business needs. In the method provided in this application, the processing method of abnormal traffic is not limited, and it is subject to actual application.
[0115] The data processing method for the traffic monitoring scenario provided by the embodiment of the present application adopts a free configuration method for the monitoring configuration information, so that the monitoring configuration information can be changed and adjusted in real time according to the traffic monitoring task, and issued through the monitoring platform. There is no need to perform additional start, stop, configuration and other operations on the collection program, making daily operation and maintenance more simplified, flexible and efficient.
[0116] Secondly, the overall resource consumption of this method is low, the CPU resource occupancy rate does not exceed 0.5 cores, and the memory occupancy does not exceed 2G, which brings a better user experience.
[0117] At the same time, the method provided in this application decouples the development language, technical framework, etc. of the service, provides a universal processing method, supports various development languages and technical frameworks, and saves development costs.
[0118] Corresponding to the above method embodiment, the present application also provides a data processing device embodiment, Figure 4 FIG. 1 is a schematic diagram showing the structure of a data processing device provided by an embodiment of the present application. Figure 4 As shown, the device comprises: The receiving module 402 is configured to receive monitoring configuration information, wherein the monitoring configuration information is created based on the monitoring task; A determination module 404 is configured to determine a process to be monitored based on the monitoring configuration information; The collection module 406 is configured to collect the service data to be monitored corresponding to the process to be monitored, and determine the service parameters to be monitored according to the service data to be monitored; The acquisition module 408 is configured to obtain the monitoring result corresponding to the monitoring task based on the service parameter to be monitored.
[0119] Optionally, the device further includes a verification module configured to: Performing configuration information verification on the monitoring configuration information; If the monitoring configuration information fails to pass the configuration information verification, configuration error information is returned.
[0120] Optionally, the determining module 404 is further configured to: Parsing the monitoring configuration information to obtain monitoring configuration parameters in the monitoring configuration information; Container filtering is performed according to the monitoring configuration parameters to determine the process to be monitored.
[0121] Optionally, the monitoring configuration parameters include a container group identifier, a container identifier, and a process identifier; The determining module 404 is further configured to: Determine a target container group according to the container group identifier; Determine a target container in the target container group according to the container identifier; According to the process identifier, a process to be monitored is determined in the target container.
[0122] Optionally, the acquisition module 406 is further configured to: Acquire the service data to be monitored based on the eBPF program and the process identifier of the process to be monitored in the kernel state; The service data to be monitored is stored in a preset storage location in the kernel state; The agent program based on the user state reads the service data to be monitored from the preset storage location.
[0123] Optionally, the acquisition module 406 is further configured to: Acquire initial network data in kernel state based on the eBPF program and the process identifier of the process to be monitored; Acquire a service structure to be monitored from the initial network data according to the data offset information; Extract the service data to be monitored from the service structure to be monitored.
[0124] Optionally, the acquisition module 406 is further configured to: Determining task requirement information according to the monitoring task; Extracting the service parameters to be monitored from the service data to be monitored according to the task requirement information.
[0125] Optionally, the acquisition module 408 is further configured to: Based on the business parameters to be monitored, at least one of the communication protocol information, delay information, availability information, query volume per second, and traffic source information corresponding to the process to be monitored is obtained.
[0126] Optionally, the service parameters to be monitored include service information format; The acquisition module 408 is further configured to: Compare the service information format in a preset communication protocol information base; The communication protocol information corresponding to the process to be monitored is determined according to the matching result.
[0127] Optionally, the service parameters to be monitored include a sending timestamp and a receiving timestamp; The acquisition module 408 is further configured to: Delay information corresponding to the process to be monitored is calculated according to the receiving timestamp and the sending timestamp.
[0128] Optionally, the acquisition module 408 is further configured to: Count the number of business data of business parameters to be monitored within a unit time; The query volume per second corresponding to the process to be monitored is determined according to the amount of business data.
[0129] Optionally, the acquisition module 408 is further configured to: Count the amount of business data and the amount of completed business communications of business parameters to be monitored within a unit time; The availability information corresponding to the process to be monitored is determined according to the number of completed business communications and the amount of business data.
[0130] Optionally, the service parameters to be monitored include a traffic source address; The acquisition module 408 is further configured to: Determine the traffic source information corresponding to the business process to be monitored based on the traffic source address corresponding to each business data.
[0131] Optionally, the device further includes a sending module configured to: The monitoring results are sent to a data integration server so that the data integration server processes the monitoring results of each server.
[0132] The device provided in the embodiment of the present application injects the collection program into the kernel state, directly obtains the business data from the kernel state through the eBPF program and analyzes it. This method is decoupled from the development language and technical framework of each service, and can adapt to various development languages and technical frameworks through a common data processing method, thereby achieving the universality of the monitoring task.
[0133] Secondly, monitoring configuration information is created based on monitoring tasks and triggered by the configuration platform. All monitoring configuration information can be changed in real time according to the needs of the monitoring tasks and issued in real time through the configuration platform. There is no need to start, stop, and configure the eBPF program running in the kernel state. Daily operation and maintenance processing is simpler and more flexible, with higher processing efficiency.
[0134] The above is a schematic scheme of a data processing device of this embodiment. It should be noted that the technical scheme of the data processing device and the technical scheme of the above data processing method belong to the same concept, and the details of the technical scheme of the data processing device that are not described in detail can be referred to the description of the technical scheme of the above data processing method.
[0135] Figure 5 The block diagram of a computing device 500 provided according to an embodiment of the present application is shown. The components of the computing device 500 include but are not limited to a memory 510 and a processor 520. The processor 520 is connected to the memory 510 via a bus 530, and the database 550 is used to store data.
[0136] The computing device 500 also includes an access device 540 that enables the computing device 500 to communicate via one or more networks 560. Examples of these networks include a public switched telephone network (PSTN), a local area network (LAN), a wide area network (WAN), a personal area network (PAN), or a combination of communication networks such as the Internet. The access device 540 may include one or more of any type of network interface (e.g., a network interface card (NIC)) of wired or wireless, such as an IEEE 802.11 wireless local area network (WLAN) wireless interface, a world-wide interoperability for microwave access (Wi-MAX) interface, an Ethernet interface, a universal serial bus (USB) interface, a cellular network interface, a Bluetooth interface, a near field communication (NFC) interface, and the like.
[0137] In one embodiment of the present application, the above components of the computing device 500 and Figure 5 Other components not shown in the figure may also be connected to each other, for example, via a bus. It should be understood that Figure 5 The computing device structure block diagram shown is only for the purpose of illustration, and is not intended to limit the scope of the present application. Those skilled in the art may add or replace other components as needed.
[0138] The computing device 500 may be any type of stationary or mobile computing device, including a mobile computer or mobile computing device (e.g., a tablet computer, a personal digital assistant, a laptop computer, a notebook computer, a netbook, etc.), a mobile phone (e.g., a smart phone), a wearable computing device (e.g., a smart watch, smart glasses, etc.), or other types of mobile devices, or a stationary computing device such as a desktop computer or a personal computer (PC). The computing device 500 may also be a mobile or stationary server.
[0139] The processor 520 is used to execute the following computer program / instructions, which implement the steps of the above-mentioned data processing method when executed by the processor.
[0140] The above is a schematic scheme of a computing device of this embodiment. It should be noted that the technical scheme of the computing device and the technical scheme of the above data processing method belong to the same concept, and the details not described in detail in the technical scheme of the computing device can be referred to the description of the technical scheme of the above data processing method.
[0141] An embodiment of the present specification further provides a computer-readable storage medium storing a computer program / instruction, which implements the steps of the above-mentioned data processing method when executed by a processor.
[0142] The above is a schematic scheme of a computer-readable storage medium of this embodiment. It should be noted that the technical scheme of the storage medium and the technical scheme of the above data processing method belong to the same concept, and the details not described in detail in the technical scheme of the storage medium can be referred to the description of the technical scheme of the above data processing method.
[0143] An embodiment of the present specification also provides a computer program product, including a computer program / instruction, which implements the steps of the above data processing method when executed by a processor.
[0144] The above is a schematic scheme of a computer program product of this embodiment. It should be noted that the technical scheme of the computer program product and the technical scheme of the above data processing method belong to the same concept, and the details not described in detail in the technical scheme of the computer program product can be referred to the description of the technical scheme of the above data processing method.
[0145] The above describes specific embodiments of the present application. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the embodiments and still achieve the desired results. In addition, the processes depicted in the accompanying drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0146] The computer instructions include computer program codes, which may be in source code form, object code form, executable files or some intermediate forms, etc. The computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, USB flash drive, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electric carrier signal, telecommunication signal and software distribution medium, etc. It should be noted that the content contained in the computer-readable medium may be appropriately increased or decreased according to the requirements of patent practice. For example, in some regions, according to patent practice, computer-readable media do not include electric carrier signals and telecommunication signals.
[0147] It should be noted that, for the above-mentioned method embodiments, for the sake of simplicity of description, they are all expressed as a series of action combinations, but those skilled in the art should be aware that the present application is not limited by the described action sequence, because according to the present application, certain steps can be performed in other sequences or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the present application.
[0148] In the above embodiments, the description of each embodiment has its own emphasis. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0149] The preferred embodiments of the present application disclosed above are only used to help explain the present application. The optional embodiments do not describe all the details in detail, nor do they limit the invention to the specific implementation methods described. Obviously, many modifications and changes can be made according to the content of the present application. The present application selects and specifically describes these embodiments in order to better explain the principles and practical applications of the present application, so that those skilled in the art can understand and use the present application well. The present application is only limited by the claims and their full scope and equivalents.
Claims
1. A data processing method, characterized in that: include: Receiving monitoring configuration information, wherein the monitoring configuration information is created based on the monitoring task; Determining a process to be monitored based on the monitoring configuration information; Collecting the service data to be monitored corresponding to the process to be monitored, and determining the service parameters to be monitored according to the service data to be monitored; A monitoring result corresponding to the monitoring task is obtained based on the service parameter to be monitored.
2. The method according to claim 1, characterized in that Before determining the process to be monitored based on the monitoring configuration information, the method further includes: Performing configuration information verification on the monitoring configuration information; If the monitoring configuration information fails to pass the configuration information verification, configuration error information is returned.
3. The method according to claim 1, characterized in that Determining a process to be monitored based on the monitoring configuration information includes: Parsing the monitoring configuration information to obtain monitoring configuration parameters in the monitoring configuration information; Container filtering is performed according to the monitoring configuration parameters to determine the process to be monitored.
4. The method according to claim 3, characterized in that The monitoring configuration parameters include a container group identifier, a container identifier, and a process identifier; Filtering containers according to the monitoring configuration parameters to determine the process to be monitored includes: Determine a target container group according to the container group identifier; Determine a target container in the target container group according to the container identifier; According to the process identifier, a process to be monitored is determined in the target container.
5. The method according to claim 1, characterized in that Collecting the monitored business data corresponding to the monitored process includes: Acquire the service data to be monitored based on the eBPF program and the process identifier of the process to be monitored in the kernel state; The service data to be monitored is stored in a preset storage location in the kernel state; The agent program based on the user state reads the service data to be monitored from the preset storage location.
6. The method according to claim 5, characterized in that Obtaining the service data to be monitored based on the eBPF program and the process identifier of the process to be monitored in the kernel state includes: Acquire initial network data in kernel state based on the eBPF program and the process identifier of the process to be monitored; Acquire a service structure to be monitored from the initial network data according to the data offset information; Extract the service data to be monitored from the service structure to be monitored.
7. The method according to claim 1, characterized in that Determining the service parameters to be monitored according to the service data to be monitored includes: Determining task requirement information according to the monitoring task; Extracting the service parameters to be monitored from the service data to be monitored according to the task requirement information.
8. The method according to any one of claims 1 to 7, characterized in that: Obtaining a monitoring result corresponding to the monitoring task based on the service parameter to be monitored includes: Based on the business parameters to be monitored, at least one of the communication protocol information, delay information, availability information, query volume per second, and traffic source information corresponding to the process to be monitored is obtained.
9. The method according to any one of claims 1 to 7, characterized in that: The service parameters to be monitored include service information format; Obtaining communication protocol information corresponding to the process to be monitored based on the service parameter to be monitored includes: Compare the service information format in a preset communication protocol information base; The communication protocol information corresponding to the process to be monitored is determined according to the matching result.
10. The method according to any one of claims 1 to 7, characterized in that: The service parameters to be monitored include a sending timestamp and a receiving timestamp; Obtaining delay information corresponding to the process to be monitored based on the service parameter to be monitored includes: Delay information corresponding to the process to be monitored is calculated according to the receiving timestamp and the sending timestamp.
11. The method according to any one of claims 1 to 7, characterized in that: Obtaining the query volume per second corresponding to the process to be monitored based on the business parameter to be monitored includes: Count the number of business data of business parameters to be monitored within a unit time; The query volume per second corresponding to the process to be monitored is determined according to the amount of business data.
12. The method according to any one of claims 1 to 7, characterized in that: Obtaining availability information corresponding to the process to be monitored based on the service parameter to be monitored includes: Count the amount of business data and the amount of completed business communications of business parameters to be monitored within a unit time; The availability information corresponding to the process to be monitored is determined according to the number of completed business communications and the amount of business data.
13. The method according to any one of claims 1 to 7, characterized in that: The service parameters to be monitored include the traffic source address; Obtaining traffic source information corresponding to the process to be monitored based on the service parameter to be monitored includes: Determine the traffic source information corresponding to the business process to be monitored based on the traffic source address corresponding to each business data.
14. The method according to claim 1, wherein: The method further comprises: The monitoring results are sent to a data integration server so that the data integration server processes the monitoring results of each server.
15. A data processing method, characterized in that: include: Receiving flow monitoring configuration information, wherein the flow monitoring configuration information is created based on a flow monitoring task; Determine the process to be monitored based on the traffic monitoring configuration information; Collecting the service data to be monitored corresponding to the service process to be monitored, and determining the traffic source address according to the service data to be monitored; According to the traffic source address, the traffic source information corresponding to the traffic source address is queried in the preset operation and maintenance metadata service.
16. A data processing device, characterized in that: include: A receiving module, configured to receive monitoring configuration information, wherein the monitoring configuration information is created based on the monitoring task; A determination module, configured to determine a process to be monitored based on the monitoring configuration information; A collection module is configured to collect the service data to be monitored corresponding to the process to be monitored, and determine the service parameters to be monitored according to the service data to be monitored; The acquisition module is configured to obtain the monitoring result corresponding to the monitoring task based on the service parameter to be monitored.
17. A computing device, characterized in that include: Memory and processor; The memory is used to store computer programs / instructions, and the processor is used to execute the computer programs / instructions. When the computer program / instructions are executed by the processor, the steps of the method described in any one of claims 1 to 15 are implemented.
18. A computer-readable storage medium storing a computer program / instruction, characterized in that: When the computer program / instructions are executed by a processor, the steps of the method according to any one of claims 1 to 15 are implemented.
19. A computer program product comprising a computer program / instructions, characterized in that When the computer program / instructions are executed by a processor, the steps of the method according to any one of claims 1 to 15 are implemented.