Method for generating observable indicators, method for generating software architecture, and application system
By automatically acquiring the software architecture information of the application system to generate an observation model, the problem of time-consuming manual analysis in the existing technology for generating observable indicators is solved, and automated and standardized indicator generation is achieved, thereby improving efficiency and accuracy.
Patent Information
- Application Number
- PCT/IB2025/051400
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-29
- Filing Date
- 2025-02-11
- Publication Date
- 2025-10-02
AI Technical Summary
In existing technologies, the process of generating observable indicators relies on manual analysis and design by engineers, which is time-consuming and inefficient, and lacks automated and standardized generation methods.
By automatically acquiring the software architecture information of the application system, generating an observation model, and synchronizing it to the server, the indicator values of observable indicators are automatically parsed based on traffic data, reducing manual analysis and design work.
It realizes the automated and standardized generation of observable indicators, reduces the analysis work of engineers, and improves generation efficiency and accuracy.
Smart Images

Figure IB2025051400_02102025_PF_FP_ABST
Abstract
Description
[0001] This disclosure claims priority to Chinese patent application number 202410381569.0, filed with the China Patent Office on March 29, 2024, entitled "Method for Generating Observable Indicators, Software Architecture Generation, and Application System," the entire contents of which are incorporated herein by reference. Technical Field: This disclosure relates to the field of software applications, and more specifically, to methods for generating observable indicators, software architecture generation, and application systems. Background: Observability is one of the core technical requirements of modern Internet architecture, helping engineers build software monitoring, exception event monitoring, and anomaly tracking and analysis capabilities. In practical scenarios, a series of observable indicators are typically developed based on the characteristics of the application system, such as query rate (QPS) trends, response time (RT) trends, and availability trends. The process of developing observable indicators can vary depending on the application system. Typically, establishing observable indicators requires engineers familiar with the application system to analyze and develop global and local observable indicators based on their experience. This entire process relies on manual analysis and design by engineers, which is very time-consuming. SUMMARY OF THE INVENTION This disclosure provides a method for generating observable indicators, a software architecture for generating observable indicators, and an application system, enabling the automated generation of observable indicators.In a first aspect, the present disclosure provides a method for generating observable indicators, which is applied to a server of an application system, and includes: determining observable indicator information of the server based on an observation model of the application system, wherein the observation model is generated based on software architecture information of the application system, the observation model includes topology information of the application system and observable indicator information of one or more servers in the application system, the observable indicator information including observable indicators and methods for obtaining the observable indicators; and determining an indicator value of the observable indicator of the server based on traffic data of the server and the observation model. In a second aspect, the present disclosure provides a method for generating observable indicators, which is applied to a management node of an application system, and includes: obtaining software architecture information of the application system, and generating an observation model of the application system based on the software architecture information of the application system, the observation model including topology information of the application system and observable indicator information of one or more servers in the application system, the observable indicator information including observable indicators and methods for obtaining the observable indicators; and sending the observation model to the one or more servers, so that the servers determine the indicator values of the observable indicators of the servers based on the observation model and the traffic data of the servers. In a third aspect, the present disclosure provides a method for generating a software architecture, which is applied to a management node of an application system. The method includes: obtaining software architecture information of one or more servers in the application system detected by the servers; and generating software architecture information of the application system based on the software architecture information detected by the one or more servers, wherein the software architecture information is used to generate an observation model of the application system, wherein the observation model includes topology information of the application system and observable indicator information of each server in the application system, wherein the observable indicator information includes observable indicators and methods for obtaining the observable indicators. In a fourth aspect, the present disclosure provides an application system, comprising: a management node and one or more servers; the management node obtains software architecture information of the application system, and generates an observation model of the application system based on the software architecture information of the application system, wherein the observation model includes topology information of the application system and observable indicator information of one or more servers in the application system, and the observable indicator information includes observable indicators and a method for obtaining the observable indicators; the management node sends the observation model to the one or more servers; the server determines the observable indicator information of the server based on the observation model of the application system; the server determines the indicator value of the observable indicator of the server based on the traffic data of the server and the observation model.In a fifth aspect, the present disclosure provides an electronic device comprising: a memory and a processor; the memory is configured to store a computer program; and the processor is configured to execute the computer program stored in the memory, wherein the computer program, when executed, causes the processor to perform the method according to the first, second, or third aspect. In a sixth aspect, the present disclosure provides a computer-readable storage medium, wherein the computer program is stored. When the computer program is executed by the processor, the processor performs the method according to the first, second, or third aspect. In a seventh aspect, the present disclosure provides a computer program product, comprising the computer program. When executed by the processor, the computer program implements the method according to the first, second, or third aspect. The observable indicator generation method, software architecture generation, and application system provided in the present disclosure can automatically obtain software architecture information for generating an application system, reducing the extensive analysis work of software architecture components and dependencies by engineers. Based on the software architecture information, an observation model for the application system can be automatically generated, eliminating extensive manual analysis and design work. This reduces the cost and complexity of manual design in an automated and standardized manner, thereby improving the efficiency of indicator generation. To more clearly illustrate the embodiments of the present disclosure or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or descriptions of the prior art. Obviously, the drawings described below represent some embodiments of the present disclosure. Persons skilled in the art can derive other drawings based on these drawings without inventive effort. Figure 1 is a schematic diagram of a scenario for a method for generating observable indicators provided in an embodiment of the present disclosure; Figure 2 is a schematic diagram of a flow chart of a method for generating observable indicators provided in an embodiment of the present disclosure; Figure 3 is a schematic diagram of a flow chart of a method for generating observable indicators provided in an embodiment of the present disclosure; Figure 4 is a schematic diagram of a flow chart of a method for generating software architecture provided in an embodiment of the present disclosure; Figure 5 is a schematic diagram of a structure of an apparatus for generating observable indicators provided in an embodiment of the present disclosure; Figure 6 is a schematic diagram of a structure of an apparatus for generating observable indicators provided in an embodiment of the present disclosure; and Figure 7 is a schematic block diagram of an electronic device provided in an embodiment of the present disclosure. To further clarify the objectives, technical solutions, and advantages of the embodiments of the present disclosure, the technical solutions in the embodiments of the present disclosure will be described clearly and completely below with reference to the accompanying drawings. It should be understood that the described embodiments represent only a portion of the embodiments of the present disclosure, but are not exhaustive. All other embodiments derived by persons of ordinary skill in the art based on the embodiments of the present disclosure without inventive effort are intended to fall within the scope of protection of the present disclosure.The following describes the terms involved in the embodiments of the present disclosure. Observability: Observability is the ability to measure the internal state of a system by examining its output. In the field of software engineering, observability is often used to help engineers monitor systems more effectively and find the impact and causes of anomalies in complex chains. Prometheus: defines a metric description format and a remote write protocol. Extensible Packet Filter (eBPF): is a virtual machine running in the Linux kernel that can be used for high-performance network packet filtering and analysis. It can execute custom code in kernel space to capture, modify, and filter network packets. eBPF has a wide range of applications in network performance optimization, security monitoring, container networking, and other fields. To build observable indicators for an application system, the solution in the embodiments of the present disclosure automatically obtains the application system's software architecture information and generates an observation model for the application system based on the software architecture information. The observation model is then synchronized with each server in the system. Based on the topology information, observable indicators, and the method used to obtain the observable indicators in the observation model, the server analyzes the server's traffic volume to determine the indicator value of the observable indicator. This enables automated and standardized generation of observable indicators, eliminates manual analysis, and improves efficiency. Figure 1 is a scenario diagram of a method for generating observable indicators provided by an embodiment of the present disclosure. As shown in Figure 1, the application system includes multiple servers and a management node. The server can be a physical server or a cloud server. The management node can generate the observation model for the application system based on the application system's software architecture information. The software architecture information can be software architecture information detected by each server and obtained by the management node, or it can be software architecture information input by the user. In addition, the user can also input observable indicator information for the server. The management node distributes the observation model to each server. The server can store the observation model in an in-memory database. When calculating observability indicators, the server collects and analyzes the server's traffic data based on the observability model to determine the indicator value of the observability indicator. The server can also store the observability indicator value in a time series database in a standard format. Figure 2 is a flowchart of a method for generating observability indicators provided in an embodiment of the present disclosure. As shown in Figure 2, the method includes:
[0002] S201: The management node obtains software architecture information of the application system and generates an observation model for the application system based on the software architecture information. The observation model includes the topology information of the application system and observable indicator information of each server in the application system. The observable indicator information includes observable indicators and methods for obtaining the observable indicators. The management node may obtain the software architecture information of the application system through automated detection. For example, a detection agent may be deployed on each server in the application system. The management node may detect the software architecture information of the application system using the detection agent deployed on each server in the application system. That is, the management node may obtain software architecture information of one or more servers in the application system detected by the server. The detection agent may include one or more plug-ins for detecting software architecture. Different plug-ins may be used to detect different types of software architecture information. The plug-in detection method may be to execute a command line on the server, parse traffic data on the server, or otherwise determine the server's software architecture information based on the command line execution results or parsed results. A server can proactively detect software architecture information and send it to the management node, allowing the management node to obtain the latest software architecture information. Alternatively, the server can detect and send the server's software architecture information to the management node based on instructions from the management node, avoiding unnecessary detection and reducing server resource usage. The management node generates software architecture information for the application system based on the software architecture information detected by one or more servers. The management node can merge the software architecture information from each server to obtain the software architecture information for the application system. The software architecture information for the application system includes information such as the type of each server in the application system, information about the processes running on the server, and dependency information. Optionally, the management node can also receive user-input software architecture information and / or observable metric information for a target server, which can be any server in the application system. The management node can generate the software architecture for the application system based on the software architecture information detected by one or more servers and the software architecture information input by the user. Users can operate through the management page provided by the management node. On the management page, users can enter the software architecture information of one or more servers. For example, users can enter information such as the server type and the processes running on the server. The management node receives the software architecture information entered by the user and merges it with the software architecture information detected by the server. Alternatively, the management node can modify the software architecture information detected by the server based on the software architecture information entered by the user, and finally obtain the software architecture information of the application system.Based on the software architecture information of the application system, the management node can determine the observable indicator information for each server from multiple preset observable indicator information. Each server's observable indicator corresponds to the server type, processes running on the server, and services, middleware, or databases on which the server depends. The observable indicator information includes observable indicators and methods for obtaining the observable indicators. The methods for obtaining the observable indicators can indicate how to determine the values of the observable indicators, such as which information is counted to obtain the observable indicators or how the statistical information is calculated to obtain the observable indicators. They can also indicate the path, file, or data packet from which the statistical information originates. Optionally, the methods for obtaining the observable indicators can include calculation functions, such as count, sum, and avg, which indicate how to collect statistics or calculate the statistical information to obtain the indicator values. If the user enters the observable indicator information of the target server in addition to the software architecture information, the management node generates an observation model for the application system based on the software architecture information of the application system and the user-entered observable indicator information of the target server. When a user enters observable metric information for a target server through the management page, the management node automatically generates the observable metric information using the aforementioned method and also adds the user-entered observable metric information to the observation model. For example, for a database server, the user may enter the total number of slow Structured Query Language (SQL) queries as the observable metric and specify that the total number of slow SQL queries is obtained by using a summation function to calculate the total number of slow SQL queries within a minute. When generating the observation model, the management node incorporates this observable metric information into the observation model. When the server subsequently calculates the total number of slow SQL queries, it can parse the database log to identify the slow SQL queries and then use the summation function to calculate the total number of slow SQL queries. Optionally, the observation model may also include basic information such as the software name, version, language, technology used, and runtime. The information included in the observation model can be referred to as application model meta information. Optionally, after generating an observation model, in embodiments of the present disclosure, the user can modify the generated observation model through a management page provided by the management node. The management node receives configuration instructions for the observation model input by the user and modifies the observation model according to the configuration instructions. The configuration instructions may be for configuring the topology information of the application system or for configuring observable indicators of each server. The management node can modify the generated observation model based on the configuration instructions input by the user to improve accuracy and usability.
[0003] S202: The management node sends the observation model to one or more servers in the application system, so that the servers determine the values of the observable indicators of the servers based on the observation model and the server traffic data. The management node and the servers may have synchronization capabilities. The management node may proactively send the observation model to the servers or send the management model to the servers upon request. For example, the management node automatically distributes the observation model to each server in the application system via HTTP communication. Optionally, after receiving the observation model from the management node, the server may store it in a local in-memory database on the server. The process of determining indicators based on the acquired observation model and traffic data by any server in the application system will be described in subsequent embodiments. In the embodiments of the present disclosure, the management node of the application system automatically generates software architecture information for the application system and generates an observation model for the application system based on the software architecture information. This reduces a significant amount of manual analysis and design work and enables the generation of observable indicators in an automated and standardized manner. Furthermore, based on the automated generation, user input may be further received. By combining automation with manual input, the accuracy and usability of the observation model can be further improved. Figure 3 is a second flow diagram of a method for generating observable indicators provided in the embodiments of the present disclosure. As shown in FIG3 , the method includes:
[0004] S301: The server obtains an observation model of the application system. The observation model is generated based on the software architecture information of the application system. The observation model includes the application system's topology information and observable indicator information of one or more servers in the application system. The observable indicator information includes observable indicators and methods for obtaining the observable indicators. This step may involve the server receiving the observation model from the management node, or the server obtaining the observation model from a local in-memory database. The observation model generation process has been described in the previous embodiment. A detection agent deployed on the server detects the server's software architecture. The detection agent is configured with one or more plug-ins for detecting software architecture. The server sends the detected server software architecture to the management node of the application system. After the management node generates the observation model, the server receives the observation model from the management node. The detection agent on the server detects the server's software architecture by querying the server's processes using the one or more plug-ins and parsing the server's traffic data to obtain the server's software architecture. The traffic data may include files on the server, such as log files, as well as request messages and data packets sent or received by the server. For example, the detection agent plugins include one or more of the following types: plugins for detecting server types, plugins for detecting processes running on servers, plugins for detecting databases that processes rely on, plugins for detecting network services that processes rely on, plugins for detecting cloud vendors that processes rely on, and plugins for detecting middleware that processes rely on. For example, the detection agent plugins can execute command lines to query processes to detect processes running on servers, the programming language used by the processes, and the server type. The server type can be an application, database, or middleware. For example, the detection agent plugins can be implemented based on eBPF. For example, the eBPF plugins can parse data packets sent or received by the server and, based on the database identifier, service name, middleware information, or address information contained in the data packets, determine the database, service, or middleware that the application process relies on, such as the Remote Procedure Call (RPC) framework or message-based middleware. Optionally, users can customize plugins to implement software architecture detection extensions. The server type can also be referred to as the server role.
[0005] S302: The server determines the value of the server's observable indicator based on the server's traffic data and the observation model. As described in the previous embodiment, the observation model includes the server's observable indicator information, namely, the server's observable indicator and the method for obtaining the observable indicator. The acquisition method can indicate how to determine the value of the observable indicator, such as which information is counted or calculated to obtain the observable indicator value. It can also indicate the path, file, or data packet of the information source to be counted or calculated. Therefore, based on the observation model and the method for obtaining the observable indicator, the server's traffic data is parsed and the corresponding information statistics or calculations are performed to determine the value of the observable indicator. Optionally, parsing the traffic data can be implemented based on eBPF or other file parsing tools or log parsing tools. For any server in the application system, the server determines the server's observable indicator from the application system's observation model based on the server's identifier. Based on the application system's topology information and the method for obtaining the observable indicator, the server's traffic data is parsed to determine the value of the observable indicator. The topology information indicates the dependencies between the application system's servers. The observation model contains observable metrics for each server in the application system. For each server, observable metrics are filtered from the observation model based on the server's identification information. For example, the observation model contains each server's IP address and its corresponding observable metrics. A server filters the observable metrics corresponding to that server from the observation model based on its IP address. The observable metrics corresponding to a server may involve dependencies between other servers. The application system's topology information can be used to determine the traffic data that needs to be parsed. For example, if the observable metric is the number of requests from an application server to a middleware server, the application system's topology information can determine that the application server depends on multiple middleware servers. Therefore, the traffic data exchanged between the application server and these multiple middleware servers needs to be parsed to determine the number of requests. For example, the server's traffic data is parsed to identify the communication target of the data packet. For remote network call protocols such as Dubbo, remote service information including Domain Name System (DNS), IP address, port, etc. is identified. Combined with the dependencies in the topology information and the method for obtaining observable indicators, the data packet related to the observable indicator is determined, and the information required to determine the observable indicator is extracted from the data packet according to the instructions in the acquisition method.When the acquisition method includes a calculation function, based on the application system's topology information and the acquisition method for observable indicators, the server's traffic data is parsed to obtain statistical information corresponding to the calculation function. The statistical information is then calculated according to the calculation function to obtain the indicator value of the observable indicator. The statistical information is the information required to determine the observable indicator indicated in the acquisition method. For example, if the server is an application server and the observable indicator is CPU peak utilization, the acquisition method is to use the max function to determine the maximum CPU utilization within a minute. The server can parse the CPU log to obtain multiple CPU utilization values collected within the minute before the current time and use the max function to determine the maximum value. For another example, if the server is a database server and the observable indicator is the total number of slow SQL statements, the acquisition method is to use a sum function to determine the total number of slow SQL statements within a minute. The server parses the database log to determine the slow SQL statements and calculates the total number of slow SQL statements using the sum function. For another example, if the server is a middleware server and the observable metric type is queries per minute (QPM), it is obtained by using a summation function to determine the total number of times the application server calls the middleware interface within one minute. If the application system topology information indicates that there are multiple application servers with dependencies on the middleware server, the server parses the data packets received by the middleware server, identifies the data packets between the middleware server and the multiple application servers, parses the fields in the data packets to determine the requests that call the middleware interface, and uses a summation function to calculate the total number of calls to the middleware interface. The server can generate observable metrics and corresponding metric values according to a specific standard format, such as generating standard Prometheus metrics, and can also store the observable metrics in the user's time series database. The method of the disclosed embodiments can automatically detect and generate software architecture information, reducing the extensive work of engineers analyzing software architecture components and dependencies. Secondly, based on the detected software architecture information and in conjunction with assisted manual configuration, an observation model for the application system can be automatically generated, eliminating extensive manual analysis and design work. Finally, the values of observable indicators are generated based on the observation model and traffic data. This automated and standardized generation of observable indicators reduces the cost and complexity of manual design and improves indicator generation efficiency. Figure 4 is a flow chart of a software architecture generation method provided by an embodiment of the present disclosure. This method is applied to a management node of an application system. As shown in Figure 4, the method includes the following steps:
[0006] 5401. Obtain software architecture information of one or more servers in an application system.
[0007] S402. Based on the software architecture information detected by one or more servers, software architecture information of the application system is generated. The software architecture information is used to generate an observation model for the application system. The observation model includes the application system topology information and observable indicator information of each server in the application system. The observable indicator information includes observable indicators and methods for obtaining the observable indicators. The management node may detect the software architecture information of the application system using detection agents deployed on each server of the application system. The detection agents may include one or more plug-ins for detecting software architecture. Different plug-ins may be used to detect different types of software architecture information. The plug-ins may detect by executing command lines on the servers, parsing traffic data on the servers, or other methods. The server's software architecture information is determined based on the command line execution results or parsed results. Optionally, the management node receives software architecture information input by a user and generates the software architecture information of the application system based on the software architecture information detected by one or more servers and the software architecture information input by the user. Users can operate through the management page provided by the management node, entering software architecture information for one or more servers. For example, users can enter information such as the server type and the processes running on the server. The management node receives the software architecture information entered by the user and merges it with the software architecture information detected by the server, or modifies the software architecture information detected by the server based on the user-entered software architecture information, ultimately obtaining the software architecture information of the application system. The server automatically detects the software architecture information of the server, and the management node automatically generates the software architecture information of the application system based on the software architecture information of each server. This reduces a large amount of manual analysis and design work and enables the generation of observable indicators in an automated and standardized manner. In addition to automated generation, the management node can also receive user-entered information and further improve the accuracy of the observation model through a combination of automated and manual correction. Figure 5 is a first structural diagram of a device for generating observable indicators provided in an embodiment of the present disclosure. The observable indicator generation device is applied to a management node. As shown in FIG5 , the observable indicator generation device 500 includes: a generation module 501, which obtains software architecture information of an application system and generates an observation model of the application system based on the software architecture information of the application system. The observation model includes topology information of the application system and observable indicator information of one or more servers in the application system. The observable indicator information includes observable indicators and methods for obtaining the observable indicators; and a sending module 502, which is used to send the observation model to one or more servers, so that the servers determine the indicator values of the observable indicators of the servers based on the observation model and traffic data of the servers.In one implementation, the generation module 501 is configured to obtain software architecture information of servers detected by one or more servers; and generate software architecture information of the application system based on the software architecture information detected by the one or more servers. In one implementation, the generation module 501 is further configured to generate software architecture information of the application system based on the software architecture information detected by the one or more servers and the software architecture information input by the user. In one implementation, the generation module 501 is further configured to generate software architecture information of the application system based on the software architecture information detected by the one or more servers and the software architecture information input by the user. In one implementation, the generation module 501 is further configured to generate an observation model of the application system based on the software architecture information of the application system and the observable indicator information of the target server input by the user. In one implementation, the generation module 501 is further configured to generate an observation model of the application system based on the software architecture information of the application system and the observable indicator information of the target server input by the user. In one implementation, the generation module 501 is further configured to receive configuration instructions for the observation model input by the user and modify the observation model according to the configuration instructions. The apparatus of the present embodiment can be used to execute the observable indicator generation method of the aforementioned embodiment. Its implementation principles and technical effects are similar and are not further described here. Figure 6 is a second structural diagram of an apparatus for generating observable indicators provided in an embodiment of the present disclosure. The observable metric generation device is applied to a server. As shown in FIG6 , the observable metric generation device 600 includes: an acquisition module 601 for acquiring an observation model of an application system. The observation model is generated based on the software architecture information of the application system. The observation model includes the topology information of the application system and observable metric information of one or more servers in the application system. The observable metric information includes observable metrics and a method for obtaining the observable metrics; and a determination module 602 for determining the value of the observable metric of the server based on the server's traffic data and the observation model. In one implementation, the determination module 602 is configured to: determine the observable metric of the server from the observation model based on the server's identifier; and parse the server's traffic data based on the application system's topology information and the method for obtaining the observable metrics to determine the value of the observable metric. The topology information indicates the dependencies between servers in the application system. In one implementation, the acquisition method includes an operation function, and the determination module 602 is used to: based on the topology information of the application system and the acquisition method of the observable indicator, parse the server traffic data to obtain statistical information corresponding to the operation function, calculate the statistical information according to the operation function, and obtain the indicator value of the observable indicator.In one implementation, the system further includes: a detection module for detecting the server's software architecture via a detection agent deployed on the server, wherein the detection agent is configured with one or more plug-ins for detecting the software architecture; a sending module for sending the detected server's software architecture to the application system's management node; and a receiving module for receiving the observation model sent by the application system's management node. In one implementation, the detection module is configured to query processes on the server and parse the server's traffic data via one or more plug-ins to obtain the server's software architecture. In one implementation, the plug-ins include one or more of the following types: for detecting the server type, for detecting processes running on the server, for detecting databases on which processes depend, for detecting network services on which processes depend, for detecting cloud vendors on which processes depend, and for detecting middleware on which processes depend. The apparatus of the present embodiment can be used to execute the observable indicator generation method of the aforementioned embodiment. The implementation principles and technical effects are similar and will not be further described here. Figure 7 is a schematic block diagram of an electronic device provided by an embodiment of the present disclosure. As shown in Figure 7, the electronic device 700 may include at least one processor 701 for implementing the observable indicator generation method or software architecture generation method provided in the embodiments of the present disclosure. Optionally, the electronic device 700 also includes at least one memory 702 for storing program instructions and / or data. The memory 702 is coupled to the processor 701. Coupling in the embodiments of the present disclosure refers to an indirect coupling or communication connection between devices, units, or modules, which may be electrical, mechanical, or other forms, and is used for information exchange between the devices, units, or modules. The processor 701 may operate in conjunction with the memory 702. The processor 701 may execute program instructions stored in the memory 702. At least one of the at least one memory may be included in the processor. Optionally, the electronic device 700 also includes a communication interface 703 for communicating with other devices via a transmission medium, thereby enabling the electronic device 700 to communicate with other devices. The communication interface 703 may be, for example, a transceiver, an interface, a bus, a circuit, or a device capable of performing transceiver functions. The processor 701 can use the communication interface 703 to send and receive data and / or information and implement the methods provided in the embodiments of the present disclosure. For details, please refer to the detailed description in the previous embodiments and will not be repeated here. The specific connection medium between the processor 701, memory 702, and communication interface 703 is not limited in the embodiments of the present disclosure. In Figure 7, the processor 701, memory 702, and communication interface 703 are connected via a bus 704.Bus 704 is represented by a bold line in FIG7 , and the connections between other components are for illustrative purposes only and are not intended to be limiting. Such buses can be divided into address buses, data buses, control buses, and the like. For ease of illustration, FIG7 shows only one bold line, but this does not imply that there is only one bus or only one type of bus. It should be understood that the processor in the embodiments of the present disclosure may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above-described method embodiment may be completed by hardware integrated logic circuits in the processor or by software instructions. The processor may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the various methods, steps, and logic block diagrams disclosed in the embodiments of the present disclosure. The general-purpose processor may be a microprocessor or any conventional processor. The steps of the method disclosed in conjunction with the embodiments of the present disclosure can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules within the decoding processor. The software module can be located in a storage medium known in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, or registers. The storage medium is located in the memory, and the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the method. It should also be understood that the memory in the embodiments of the present disclosure can be volatile memory or non-volatile memory, or can include both volatile and non-volatile memory. Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory can be random access memory (RAM), which serves as an external cache.By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM (DR RAM). It should be noted that the memory of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory. The present disclosure also provides an application system comprising: a management node and one or more servers. The management node obtains software architecture information for the application system and generates an observation model for the application system based on the software architecture information. The observation model includes topology information for the application system and observable metric information for one or more servers in the application system. The observable metric information includes observable metrics and methods for obtaining the observable metrics. The management node sends the observation model to one or more servers. The servers determine the observable metric information for the servers based on the observation model. The servers determine the values of the observable metrics for the servers based on the server traffic data and the observation model. In one implementation, the management node obtains software architecture information for the application system, including: obtaining software architecture information for the servers detected by one or more servers and receiving software architecture information input by a user; and generating software architecture information for the application system based on the software architecture information detected by the one or more servers and the software architecture information input by the user. The methods executed by the management node and servers in the application system can be found in the description of the aforementioned embodiments. This disclosure also provides a computer-readable storage medium storing a computer program (also referred to as code or instructions). When executed by a processor, the computer executes the method described in any of the aforementioned embodiments. The present disclosure also provides a computer program product, including a computer program, which implements the method in any of the aforementioned embodiments when executed by a processor.As used in this disclosure, the terms "unit," "module," and the like may be used to refer to computer-related entities, hardware, firmware, a combination of hardware and software, software, or software in execution. Those skilled in the art will appreciate that the various illustrative logic blocks and steps described in conjunction with the embodiments disclosed herein can be implemented using electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented using hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementations should not be considered beyond the scope of this disclosure. In the several embodiments provided in this disclosure, it should be understood that the disclosed devices, equipment, and methods may be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of units is merely a logical functional division. In actual implementation, other divisions may be employed. For example, multiple units or components may be combined or integrated into another system, or some features may be omitted or not implemented. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through interfaces, or indirect coupling or communication connection between devices or units, and may be electrical, mechanical, or other forms. The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, i.e., they may be located in one location or distributed across multiple network units. Some or all of these units may be selected to achieve the objectives of the present embodiments based on actual needs. Furthermore, the functional units in the various embodiments of the present disclosure may be integrated into a single processing unit, each unit may exist physically separately, or two or more units may be integrated into a single unit. In the above embodiments, the functions of each functional unit may be implemented in whole or in part through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions (programs). When the computer program instructions (programs) are loaded and executed on a computer, the processes or functions according to the embodiments of the present disclosure are generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium may be any available medium accessible by a computer or a data storage device such as a server or data center that integrates one or more available media. The available medium may be a magnetic medium (e.g., a floppy disk, hard disk, or magnetic tape), an optical medium (e.g., a digital video disc (DVD), or a semiconductor medium (e.g., a solid-state drive (SSD)). If the function is implemented as a software functional unit and sold or used as an independent product, it may be stored in a computer-readable storage medium. Based on this understanding, The technical solution of this disclosure, or the portion that contributes to the prior art, or the portion of this technical solution, can be embodied in the form of a software product. This computer software product, stored in a storage medium, includes instructions for enabling a computer device (such as a personal computer, server, or network device) to execute all or part of the steps of the various embodiments of the method of this disclosure. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, mobile hard drives, ROM, RAM, magnetic disks, or optical disks. 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, storage, and display) involved in this disclosure are all authorized by the user or fully authorized by all parties. The collection, use, and processing of relevant data must comply with the relevant laws, regulations, and standards of the relevant countries and regions, and corresponding operation portals are provided for users to choose to authorize or reject. The above description is merely a specific embodiment of this disclosure, but the scope of protection of this disclosure is not limited thereto. Any modifications or substitutions that can be easily conceived by any person skilled in the art within the technical scope of this disclosure should be covered by the scope of protection of this disclosure. Therefore, The protection scope of the present disclosure shall be based on the protection scope of the claims.
Claims
Claims 1. A method for generating observable indicators, wherein: Applied to a server of an application system, the method includes: obtaining an observation model of the application system, wherein the observation model is generated based on software architecture information of the application system, the observation model includes topology information of the application system and observable indicator information of one or more servers in the application system, the observable indicator information including observable indicators and a method for obtaining the observable indicators; and determining an indicator value of the observable indicator of the server based on traffic data of the server and the observation model.
2. The method according to claim 1, wherein: Determining the index value of the observable index of the server based on the traffic data of the server and the observation model includes: determining the observable index of the server from the observation model based on the identifier of the server; parsing the traffic data of the server to determine the index value of the observable index based on the topology information of the application system and the method for obtaining the observable index, wherein the topology information is used to indicate the dependency relationship between the servers of the application system.
3. The method according to claim 2, wherein: The acquisition method includes an operation function, and the acquisition method based on the topology information of the application system and the observable indicator is used to parse the traffic data of the server to determine the index value of the observable indicator, including: based on the topology information of the application system and the acquisition method of the observable indicator, parsing the traffic data of the server to obtain statistical information corresponding to the operation function, calculating the statistical information according to the operation function, and obtaining the index value of the observable indicator.
4. The method according to any one of claims 1 to 3, wherein: Also includes: Detecting the software architecture of the server by using a detection agent deployed in the server, wherein the detection agent is provided with one or more plug-ins for detecting the software architecture; sending the detected software architecture of the server to the management node of the application system; and receiving the observation model sent by the management node of the application system.
5. The method according to claim 4, wherein: The detecting the software architecture of the server by using the detection agent deployed in the server includes: querying the processes in the server by using the one or more plug-ins, and parsing the traffic data of the server to obtain the software architecture of the server.
6. The method according to claim 4 or 5, wherein: The plug-in includes one or more of the following types: for detecting server type, for detecting processes running on the server, for detecting databases that processes depend on, for detecting network services that processes depend on, for detecting cloud vendors that processes depend on, and for detecting middleware that processes depend on.
7. A method for generating observable indicators, wherein: A management node applied to an application system includes: obtaining software architecture information of the application system, and generating an observation model of the application system based on the software architecture information of the application system, wherein the observation model includes topology information of the application system and observable indicator information of one or more servers in the application system, wherein the observable indicator information includes observable indicators and a method for obtaining the observable indicators; and sending the observation model to the one or more servers so that the servers determine indicator values of the observable indicators of the servers based on the observation model and traffic data of the servers.
8. The method according to claim 7, wherein: The acquiring of the software architecture information of the application system includes: acquiring the software architecture information of the server detected by the one or more servers; and generating the software architecture information of the application system based on the software architecture information detected by the one or more servers.
9. The method according to claim 8, wherein: Also includes: Receive software architecture information input by the user; The generating the software architecture information of the application system based on the software architecture information detected by the one or more servers includes: generating the software architecture information of the application system based on the software architecture information detected by the one or more servers and the software architecture information input by the user.
10. The method according to any one of claims 7 to 9, wherein: Also includes: Receiving observable indicator information of a target server input by a user, where the target server is any server of the application system; The generating the observation model of the application system based on the software architecture information of the application system includes: generating the observation model of the application system based on the software architecture information of the application system and the observable indicator information of the target server input by the user.
11. The method according to any one of claims 7 to 10, wherein: Also includes: A configuration instruction for the observation model input by a user is received, and the observation model is modified according to the configuration instruction.
12. A method for generating a software architecture, wherein: Applied to a management node of an application system, the method includes: obtaining software architecture information of one or more servers in the application system detected by the servers; generating software architecture information of the application system based on the software architecture information detected by the one or more servers, wherein the software architecture information is used to generate an observation model of the application system, wherein the observation model includes topology information of the application system and observable indicator information of each server in the application system, wherein the observable indicator information includes observable indicators and a method for obtaining the observable indicators.
13. The method according to claim 12, wherein: Also includes: Receive software architecture information input by the user; The generating the software architecture information of the application system based on the software architecture information detected by the one or more servers includes: generating the software architecture information of the application system based on the software architecture information detected by the one or more servers and the software architecture information input by the user.
14. An application system, wherein: include: Manage nodes and one or more servers; The management node obtains software architecture information of the application system and generates an observation model of the application system based on the software architecture information of the application system, wherein the observation model includes topology information of the application system and observable indicator information of one or more servers in the application system, wherein the observable indicator information includes observable indicators and a method for obtaining the observable indicators; the management node sends the observation model to the one or more servers; the server determines the observable indicator information of the server based on the observation model of the application system; the server determines the indicator value of the observable indicator of the server based on the traffic data of the server and the observation model.
15. The system according to claim 14, wherein: The management node obtains the software architecture information of the application system, including: the management node obtains the software architecture information of the server detected by the one or more servers, and receives the software architecture information input by the user; based on the software architecture information detected by the one or more servers and the software architecture information input by the user, generates the software architecture information of the application system.
16. A computer-readable storage medium, wherein: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the processor is caused to perform the method according to any one of claims 1 to 13.
17. A computer program product, wherein: The method comprises a computer program, wherein when the computer program is executed by a processor, the method implements the method according to any one of claims 1 to 3.
Citation Information
Patent Citations
Method of generating monitoring topological graph by using simplified configuration item correlation model
CN104683164A
Network application running method and device
CN111314330A
Method for realizing observability for cloud native chaos engineering experiment
CN114791846A
Method and device for realizing observability, readable storage medium and electronic equipment
CN115437610A
System and method of adaptively and dynamically modelling and monitoring applications and software architecture hosted by an IAAS provider
US20150081883A1