Data processing method, and device, storage medium and program product
By incrementally uploading data in the cloud monitoring system, the problem of divergence of cloud product indicator data is solved, transmission bandwidth and storage resources are saved, and the usage cost of cloud product users is reduced.
Patent Information
- Application Number
- PCT/IB2024/062859
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-12
- Filing Date
- 2024-12-19
- Publication Date
- 2025-09-18
AI Technical Summary
The indicator data generated by cloud products has a divergence problem, resulting in a waste of transmission bandwidth and storage resources, and increasing the cost of cloud monitoring services for cloud product users.
During the data collection process, incremental data is generated by comparing it with the historical observable data cached locally, instead of directly uploading the full data, only the difference data is uploaded.
It reduces the consumption of transmission bandwidth and storage resources, and lowers the cost of cloud monitoring services for cloud product users.
Smart Images

Figure IB2024062859_18092025_PF_FP_ABST
Abstract
Description
[0001] TECHNICAL FIELD The present disclosure relates to the field of cloud computing technology, and more particularly to a data processing method, device, storage medium, and program product. Background: With the development of cloud computing technology, various cloud products have emerged, such as cloud gateways, databases, and microservice systems. To ensure the service performance, availability, and stability of cloud products, cloud monitoring services have become an essential component of the entire cloud product architecture. Cloud monitoring services provide capabilities such as metric data collection, storage, query, analysis, and alerting for cloud products, helping cloud product users quickly identify and resolve problems. In actual applications, due to various reasons such as bucket statistics and resource object activity, the metric data generated by cloud products may be scattered. This means that a large amount of metric data may be generated at the same collection time, consuming significant transmission bandwidth and storage resources, and thus increasing the cost of using cloud monitoring services for cloud product users. SUMMARY: Various aspects of the present disclosure provide a data processing method, device, storage medium, and program product to reduce the cost of using cloud monitoring services for cloud product users. An embodiment of the present disclosure provides a data processing method, which is applied to a data collector in a cloud monitoring system. The method includes: collecting first observable data generated by a data source at a current collection moment, where target observable data is observable data corresponding to a target observable indicator at the current collection moment; comparing the target observable data with locally cached baseline observable data, where the baseline observable data is observable data corresponding to the target observable indicator at a historical collection moment; if the two are different, generating incremental data based on the target observable data and the baseline observable data, and updating the baseline observable data to the target observable data; and sending the incremental data to a server in the cloud monitoring system, so that the server can provide data processing services related to the data source based on the incremental data. An embodiment of the present disclosure provides another data processing method, which is applied to a server in a cloud monitoring system. The method includes: receiving first observable data and at least one incremental data corresponding to a target observable indicator sent by a data collector, where the target observable indicator is an observable indicator of a data source; receiving a data processing request from a user, where the data processing request is used to request processing of observable data corresponding to the target observable indicator that meets specified conditions; generating observable data corresponding to the target observable indicator that meets the specified conditions based on the at least one incremental data and the first observable data; processing the observable data corresponding to the target observable indicator that meets the specified conditions, and returning the processing result to the user.An embodiment of the present disclosure provides an electronic device comprising: a memory and a processor; the memory stores a computer program, and the processor is coupled to the memory and configured to execute the computer program to implement the steps of the above method. The embodiment of the present disclosure provides a computer-readable storage medium storing a computer program / instructions. When the computer program / instructions are executed by the processor, the processor is enabled to implement the steps of the above method. The embodiment of the present disclosure also provides a computer program product, comprising the computer program / instructions. When the computer program / instructions are executed by the processor, the processor is enabled to implement the steps of the above method. In the embodiment of the present disclosure, a cloud monitoring system is used to collect and monitor observable data from a data source. During the observable data collection process, the collected observable data is not directly uploaded. Instead, it is compared with locally cached historical observable data that serves as a comparison benchmark. If the two data differ, incremental data is generated and uploaded incrementally, rather than in full. This can, to a certain extent, address the problem of observable data divergence, save transmission bandwidth and storage resources, and thereby help reduce the cost of using cloud monitoring services for cloud product users. BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings described herein are intended to provide a further understanding of the present disclosure and constitute a part of the present disclosure. The exemplary embodiments of the present disclosure and their descriptions are intended to explain the present disclosure and do not constitute undue limitations thereon. In the accompanying drawings: Figure 1 is a schematic diagram of the structure of a data monitoring system provided by an exemplary embodiment of the present disclosure; Figure 2 is a schematic diagram of the data convergence process provided by an exemplary embodiment of the present disclosure; Figure 3 is a schematic diagram of the flow chart of a data processing method provided by an exemplary embodiment of the present disclosure; Figure 4 is a schematic diagram of the flow chart of another data processing method provided by another exemplary embodiment of the present disclosure; Figure 5 is a schematic diagram of the structure of a data processing device provided by another exemplary embodiment of the present disclosure; Figure 6 is a schematic diagram of the structure of another data processing device provided by another exemplary embodiment of the present disclosure; and Figure 7 is a schematic diagram of the structure of an electronic device provided by another exemplary embodiment of the present disclosure. DETAILED DESCRIPTION To further clarify the objectives, technical solutions, and advantages of the present disclosure, the technical solutions of the present disclosure will be described clearly and completely below in conjunction with the specific embodiments of the present disclosure and the corresponding drawings. Obviously, the described embodiments are only some of the embodiments of the present disclosure, and are not intended to be 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.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, 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 such 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 deny. Furthermore, the various models involved in this disclosure (including but not limited to language models or large models) comply with relevant laws and standards. In practical applications, the indicator data produced by some cloud products may require bucketing. Bucketing is a data processing method that divides indicator data into multiple buckets (or containers / intervals) according to specific rules or standards, and then performs statistics and analysis on the data within each bucket. A specific implementation of bucketing is to pre-set N (N is a positive integer) bucket labels. Each indicator at the same collection time will generate N labeled data with different bucket labels. The N indicator data with different bucket labels generated at each collection time are then allocated to the corresponding bucket. When a metric data item satisfies multiple bucketing tags, the same metric data item will generate multiple data items with different bucketing tags, each of which will be allocated to the corresponding buckets. As the number of bucketing tags increases, or the metric data itself may carry other tags, the cross-combination of bucketing tags and other tags can result in a large amount of metric data being generated at the same time. Furthermore, in real applications, cloud products may generate metric data for inactive resource objects. Inactive resource objects refer to resources that are not frequently used or accessed within a specific time period and are relatively static or infrequently active. For example, if the resource object is the CPU and the metric data is CPU utilization, if the CPU is not running or is operating infrequently within a specific time period, the CPU utilization during that time period will be zero or approach a low value. For example, if the resource object is memory and the metric data is memory utilization, if the memory is not used or is used only slightly within a specific time period, the memory utilization during that time period will be zero or approach a low value. In this scenario, the cloud monitoring system periodically collects indicator data generated by resource objects. The same indicator data may be collected repeatedly during periods of inactivity. In this application scenario, the indicator data generated by cloud products may be scattered, meaning a large amount of indicator data may be generated at the same time. This scattering consumes significant amounts of transmission bandwidth and storage resources, further increasing the cost of using cloud monitoring services for cloud product users.Specifically, based on whether the cloud monitoring system charges a fee for processing indicator data, indicator data is divided into paid and free. For paid indicator data processing, large amounts of indicator data consume significant bandwidth and storage resources, increasing costs for cloud product users. For free indicator data processing, large amounts of indicator data increase the storage and computing resources consumed by the cloud monitoring system. To address the above issues, embodiments of the present disclosure utilize a cloud monitoring system to collect and monitor observable data from data sources. During observable data collection, the collected observable data is not directly uploaded. Instead, it is compared with locally cached historical observable data, which serves as a baseline for comparison. When the two data differ, incremental data is generated and uploaded incrementally, rather than in its entirety. This, to a certain extent, addresses the issue of observable data dispersion, saves transmission bandwidth and storage resources, and thus helps reduce costs for cloud product users using cloud monitoring services. The following, in conjunction with the accompanying drawings, details the technical solutions provided by various embodiments of the present disclosure. Figure 1 is a schematic diagram of the cloud monitoring system according to an exemplary embodiment of the present disclosure. As shown in Figure 1, the system includes a data collector 10 and a server 20. When target observable data differs from baseline observable data, the data collector 10 generates incremental data based on the target observable data. The server 20 performs data processing. The data collector 10 and the server 20 can communicate with each other to report observable data and incremental data. Furthermore, the cloud monitoring system also includes a data source 30 and a service discovery component 40. The data source 30, the service discovery component 40, and the data collector 10 can also communicate with each other. In this embodiment, these communication connections can be wired or wireless. Optionally, in the case of a wireless communication connection, the communication connection can be achieved through a mobile network. Accordingly, the network standard of the mobile network can be any one of 2G (GSM), 2.5G (GPRS), 3G (WCDMA, TD-SCDMA, CDMA2000, UTMS), 4G (LTE), 4G+ (LTE+), 5G, Wi Max, or new network standards to be emerged in the future.Optionally, the data source 30, the service discovery component 40, the data collector 10, the server 20, and the storage node 21 may be located in the same local area network, and the storage node 21 may be used for data storage. In the case of wireless communication, the data source 30, the service discovery component 40, the data collector 10, the server 20, and the storage node 21 may also be connected to each other via Bluetooth, Wi-Fi, infrared, ZigBee, or NFC. In this embodiment, the type of data source 30 is not limited. For example, the data source 30 may be various types of gateways (such as Application Service Mesh (ASM) and Microsoft Service Management Engine (MSE)), middleware (such as a message queue), a database (such as MySQL or SQL Server), or a microservice (such as Dubbo or Spring Cloud), etc. Each data source 30 has at least one observable indicator, and each observable indicator data can generate a corresponding type of observable data. Observable data, also referred to as the indicator data mentioned above, specifically refers to data containing digital features generated after the data source 30 is put into operation. In this embodiment, the service discovery component 40 is responsible for service registration, service discovery, container discovery, and customization. Service registration refers to a service instance registering its service information with a registry center, including information such as the Internet Protocol (IP) of the service host, the port providing the service, the exposed service status, and the access protocol. Service discovery refers to a service instance requesting information from the registry center about the services it depends on. The service instance obtains information about the service instances from the registry center and uses this information to request services provided by the corresponding service instances. The observable data generated by the data source 30 can be used by the service discovery component 40 to provide more accurate and real-time service registration and discovery capabilities. In this embodiment, the data collector 10 is used to collect observable data generated by the data source 30 through the service discovery component 40, that is, to perform observable data collection (pull or push). For ease of description and distinction, the observable data collected by the collector at the current collection time is referred to as target observable data. This embodiment does not limit the method by which the data collector 10 collects observable data generated by the data source 30.For example, the collection method can be that the data collector 10 actively pulls the target observable data from the data source 30, or the data source 30 pushes the target observable data to the data collector 10. In this embodiment, there are multiple data sources 30, each of which has at least one observable indicator. Therefore, in actual applications, the target observable indicators to be collected can be pre-configured before the data collector 10 collects data. Based on this, the cloud monitoring system also includes a user configuration terminal 50, which is used to configure the target observable indicators for data collection based on user needs (i.e., observation indicator configuration) and send the target observable indicators to the data collector 10 (i.e., observation indicator sending). Accordingly, the data collector 10 can be used to collect the target observable data it generates based on the configured target observable indicators. Optionally, configuring observable indicators includes generating a configuration file in response to a request for a target observable indicator. The configuration file includes an identifier of the data source 30, the names of the observable indicators to be collected configured for the data source 30, a list of names of observable indicators for which data convergence operations are required, and preset names for incremental data configured for the observable indicators. In this embodiment, the target observable data collected by the data collector 10 at the current collection moment is not directly uploaded to the server 20. Instead, the data collector 10 is functionally expanded by adding a data convergence function between the data collector 10's collection of the target observable data and its reporting of the collected observable data to the server 20. This allows for incremental upload of observable data rather than full upload. This can, to a certain extent, address the issue of observable data divergence, save transmission bandwidth and storage resources, and thereby reduce the cost of cloud monitoring services for cloud product users. The data convergence function is specifically implemented as follows: First, at the current collection time, target observable data generated by data source 30 is collected. The current collection time can be the first collection time or a non-first collection time. The target observable data is the observable data corresponding to the target observable indicator at the current collection time. Furthermore, baseline observable data is cached locally and compared with the cached baseline observable data. The baseline observable data is the observable data corresponding to the target observable indicator at a historical collection time. The historical collection time can be the previous collection time or another collection time several times before. The baseline observable data is dynamically updated over time.Furthermore, if the two are different, the difference between the target observable data and the baseline observable data is calculated, and the baseline observable data is updated to the target observable data. This facilitates the subsequent determination of the target observable data before the update based on the updated target observable data and the corresponding difference. The difference in observable data is then sent to the server 20 in the cloud monitoring system. If the two are the same, this indicates that the data source 30 is inactive and the target observable data under the target observable indicator remains unchanged. That is, the difference between the target observable data and the baseline observable data is zero. Therefore, there is no need to update the target observable data or the baseline observable data. Accordingly, the server 20 is configured to receive the first observable data and at least one incremental data corresponding to the target observable indicator sent by the data collector 10 and store them in the storage node 21. Accordingly, the storage node 21 is configured to store the first observable data and the at least one incremental data to facilitate subsequent retrieval of the first observable data and the at least one incremental data. This embodiment does not limit the implementation of the server 20. The server 20 can be a traditional server or a cloud device such as a cloud server or cloud host. This embodiment does not limit the implementation form of the storage node 21. The storage node 21 can be a traditional storage medium, such as a solid-state drive (SSD), a hard disk drive (HDD), a flash drive (USB flash drive), an SD (Secure Digital) card, an optical disk, etc. The storage node 21 can also be a cloud storage medium, such as a public cloud storage medium, a private cloud storage medium, a hybrid cloud storage medium, an edge cloud storage medium, etc. In the embodiments of the present disclosure, a cloud monitoring system is used to collect and monitor observable data from a data source 30. During the observable data collection process, the collected observable data is not directly uploaded. Instead, it is compared with historical observable data cached locally, which serves as a comparison benchmark. If the two differ, incremental data is generated and uploaded incrementally, rather than in its entirety. This can, to a certain extent, address the issue of observable data divergence, saving transmission bandwidth and storage resources, thereby helping to reduce the cost of cloud monitoring services for cloud product users. It should be noted that in some embodiments of the present disclosure, the focus may be on target observable indicators with monotonically increasing characteristics, but this is not strictly limited to this. The embodiments of the present disclosure are also applicable to observable indicators that are primarily monotonically increasing but experience low-frequency or occasional fluctuations.That is, the target observable data corresponding to the target observable indicator will continue to increase as the operating time of data source 30 increases. Accordingly, the difference between the target observable data and the baseline observable data can be used as incremental data. If the amount of incremental data is less than or equal to the amount of observable data, incremental upload of the observable data is performed instead of full upload. This can, to a certain extent, address the problem of observable data divergence, save transmission bandwidth and storage resources, and thus help reduce the cost of cloud monitoring services for cloud product users. Optionally, based on the monotonically increasing nature of the target observable indicator, incremental data is generated based on the target observable data and the baseline observable data. This includes: if the difference between the target observable data and the baseline observable data is greater than a set threshold, the difference between the target observable data and the baseline observable data is used as incremental data; if the difference between the target observable data and the baseline observable data is less than the set threshold, the target observable data is used as incremental data. The set threshold can be flexibly set based on factors such as the actual application scenario and the different observable indicators. Optionally, the set threshold can be zero, but is not limited to this. Taking the threshold value set to zero as an example, if the difference between the target observable data and the baseline observable data is greater than zero, the difference between the target observable data and the baseline observable data is used as incremental data; if the difference between the target observable data and the baseline observable data is less than zero, the target observable data is used as incremental data. It should be noted that when the data source 30 is restarted, the target observable data is recalculated based on the monotonically increasing characteristic. Furthermore, in addition to target observable indicators with monotonically increasing characteristics, observable indicators with monotonically decreasing characteristics or primarily monotonically decreasing characteristics are also applicable to the embodiments of the present disclosure. The only difference is that when determining whether the difference between the target observable data and the baseline observable data is greater than the set threshold, the determination can be changed to determining whether the difference between the baseline observable data and the target observable data is greater than the set threshold. The rest of the processing logic is the same or similar and will not be further described. In this embodiment, the target observable data is associated with a first name at any collection time, and the first name is used to identify the observable data. To facilitate description and distinction, a second name is assigned to the incremental data between any collection moment and the previous collection moment. The second name is used to identify the incremental data. For example, if the first name of the observable data is "CPU Utilization," the second name of the corresponding incremental data is "CPU Utilization Increment." Optionally, assigning a second name to the incremental data includes: obtaining a preset name for the incremental data configured for the target observable metric from a configuration file; and assigning the preset name as the second name to the incremental data.For example, if the preset name of the incremental data is "CPU Utilization Increment," the preset name "CPU Utilization Increment" can be packaged into a configuration file. When setting a second name for the incremental data, the preset name "CPU Utilization Increment" is retrieved from the configuration file and set as the second name for the incremental data. In some embodiments, before comparing the target observable data with the locally cached baseline observable data, it is necessary to determine whether the target observable data is pre-configured to require data convergence. Specifically, based on the first name corresponding to the target observable data, it is determined whether the target observable data belongs to pre-configured observable data requiring a data convergence operation. If the target observable data belongs to observable data requiring a data convergence operation, the target observable data is compared with locally cached benchmark observable data. If the target observable data does not belong to observable data requiring a data convergence operation, the target observable data is directly reported to the server 20. Optionally, based on the first name corresponding to the target observable data, it is determined whether the target observable data belongs to pre-configured observable data requiring a data convergence operation, including: obtaining, from a configuration file, a list of names of observable indicators configured for a data source 30 requiring a data convergence operation; and determining that the target observable data belongs to observable data requiring a data convergence operation if the first name is in a command list. In some embodiments, before comparing the target observable data with the locally cached benchmark observable data, it is further necessary to determine whether benchmark observable data corresponding to the target observable data exists in the current cache.Specifically, the local cache stores baseline observable data corresponding to each observable indicator. For the same observable indicator, the corresponding observable data have the same name. Therefore, for the target observable indicator, it can be determined whether the baseline observable data exists in the local cache based on the first name corresponding to the target observable data. If the baseline observable data exists in the local cache, an operation of comparing the target observable data with the baseline observable data is performed. If the baseline observable data does not exist in the local cache, it means that the target observable data is the first observable data collected at the first collection moment. The first observable data needs to be reported to the server 20. In this case, the target observable data can be added to the local cache as the baseline observable data, and the target observable data can be sent to the server 20. In addition, if the target objective side data is the first observable data collected at the first collection moment and there is no incremental data, default incremental data can be sent to the server 20 so that the server 20 can determine that data convergence work for the target observable indicator has started. Optionally, determining whether baseline observable data exists in the local cache based on the first name corresponding to the target observable data includes: searching the local cache; if observable data with the same name exists, determining that baseline observable data corresponding to the target observable data is cached in the local cache; conversely, if observable data with the same name does not exist, determining that baseline observable data corresponding to the target observable data does not exist in the local cache. In the above-described embodiments of the present disclosure, whether the target observable metric corresponds to a bucket label, the number of corresponding bucket labels, etc., are not limited. In other words, whether the target observable metric corresponds to a bucket label applies to all embodiments of the present disclosure. Furthermore, in some optional embodiments, the target observable metric corresponds to multiple bucket labels, and the target observable data carries one of the multiple bucket labels. This bucket label may be referred to as a first bucket label, and the first bucket label may be any bucket label from the multiple bucket labels. The multiple bucket labels correspond to multiple buckets, and different buckets are used to collect statistics on variation patterns of the target observable data within different numerical ranges. The numerical ranges corresponding to different buckets are determined by their corresponding bucket labels.For example, if the target observable metric is access requests and the bucket label represents the latency of access requests, four bucket labels can be pre-set: 0.1, 0.5, 0.8, and 1. Bucket label 0.1 indicates a cumulative histogram metric, such as the number or distribution of access requests with a latency of less than 0.1 ms; bucket label 0.5 indicates a cumulative histogram metric, such as the number or distribution of access requests with a latency of less than 0.5 ms; bucket label 0.8 indicates a cumulative histogram metric, such as the number or distribution of access requests with a latency of less than 0.8 ms; and bucket label 1 indicates a cumulative histogram metric, such as the number or distribution of access requests with a latency of less than 1 ms. Based on this, the target observable data can be bucketed according to the first bucket label to divide the target observable data into at least one bucket. Continuing with the previous example, if the first bucket label is 0.1, the target observable data is divided into the bucket corresponding to the bucket label 0.1; if the first bucket label is 0.5, the target observable data is divided into the bucket corresponding to the bucket label 0.1 and the bucket corresponding to the bucket label 0.5; if the first bucket label is 0.8, the target observable data is divided into the bucket corresponding to the bucket label 0.1, the bucket corresponding to the bucket label 0.5, and the bucket corresponding to the bucket label 0.8; if the first bucket label is 1, the target observable data is divided into the bucket corresponding to the bucket label 0.1, the bucket corresponding to the bucket label 0.5, the bucket corresponding to the bucket label 0.8, and the bucket corresponding to the bucket label 1. Continuing with the above embodiment, when the target observable data is the first observable data collected at the first collection moment, and no incremental data exists in each bucket to which it belongs, default incremental data may be sent to the server 20, allowing the server 20 to determine that data convergence for the target observable indicator has been initiated. Each bucket to which the target observable data belongs corresponds to its own default incremental data. This embodiment does not limit the specific bucket for which the default incremental data is sent to the server; as long as the server is informed that data convergence for the target observable indicator has been initiated, the default incremental data may be sent to the server 20. Therefore, sending the default incremental data to the server 20 includes: selecting a target bucket from at least one bucket, and sending the default incremental data to the server 20 for the target observable data in the target bucket. Preferably, the default incremental data selected is the default incremental data corresponding to the last bucket (the bucket with the largest bucket tag value).In some embodiments, bucket statistics are required for a target observable metric. The target observable metric corresponds to multiple bucket labels of varying sizes, each of which has a size. The target observable data is assigned a first bucket label from the multiple bucket labels. The multiple bucket labels correspond to multiple buckets, and each bucket has its own baseline observable data. Based on this, before comparing the target observable data with the locally cached baseline observable data, the process further includes: partitioning the target observable data into at least one bucket based on the first bucket label, so that subsequent processing of the target observable data can be performed at the bucket granularity. Optionally, partitioning the target observable data into at least one bucket based on the first bucket label includes: determining which buckets the first bucket label corresponds to, and partitioning the target observable data into buckets that match the bucket label. For example, the bucket label can be represented by Ie (Iess and equa I) = "set threshold," meaning that data less than or equal to the set threshold is allocated to the bucket corresponding to the label. For example, in the process of bucketing statistics for an indicator data, the pre-set multiple bucket labels are le="0.05", le="0.1", le="0.5", and le="1.0". le="0.05" means that the indicator data with a value less than or equal to 0.05 is packed into the bucket corresponding to the label, le="0.1" means that the indicator data with a value less than or equal to 0.1 is packed into the bucket corresponding to the label, le="0.5" means that the indicator data with a value less than or equal to 0.5 is packed into the bucket corresponding to the label, and le="1.0" means that the indicator data with a value less than or equal to 1.0 is packed into the bucket corresponding to the label. For indicator data that meets multiple labels, such as the indicator data is 0.2, which also meets le="0.5" and le="1.0", the indicator data will be divided into le="0.5" and le="1.0" at the same time. In two buckets.Furthermore, the target observable data is compared with the locally cached baseline observable data. If the two are different, incremental data is generated based on the target observable data and the baseline observable data, and the baseline observable data is updated to the target observable data, and the incremental data is sent to the server 20 in the cloud monitoring system, including: for any bucket in at least one bucket, the target observable data in any bucket is compared with the baseline observable data corresponding to any bucket; if the target observable data in any bucket is different from the baseline observable data corresponding to any bucket, incremental data corresponding to any bucket is generated based on the target observable data in any bucket and the baseline observable data corresponding to any bucket; the baseline observable data corresponding to any bucket is updated to the target observable data in any bucket, and the incremental data corresponding to any bucket is sent to the server 20. Furthermore, optionally, if the target observable data in any bucket is identical to the baseline observable data corresponding to that bucket, tag information is added to the target observable data in that bucket. Furthermore, if the target observable data in the next bucket adjacent to that bucket is different from the baseline observable data corresponding to that next bucket, the target observable data in that bucket is reported and the tag information is cleared. The next bucket adjacent to that bucket refers to a bucket whose bucket tag is adjacent to and greater than the bucket tag corresponding to that bucket. The data convergence process is described in detail below using target observable indicators with bucket tags as an example, with reference to Figure 2. First, the target observable data is collected through a data collector. This target observable data refers to the indicator data corresponding to the target observable indicator. If the target observable indicator has at least one bucket tag, then the target observable data has any of these bucket tags. A determination is then made as to whether the local cache contains the baseline observable data corresponding to the target observable data. This determination is based on the existence of the cache. The determination can be divided into two cases: If the cache does not exist, it indicates that the target observable data was collected at the first collection time. In this case, the target observable data is added to the local cache as the baseline observable data. Furthermore, based on the bucket tags of the target observable data, the corresponding at least one target bucket is determined. The target observable data is then divided into the at least one target bucket, so that each target bucket contains the target observable data.Since the target observable data is the data collected at the first collection moment, there is no baseline observable data for difference calculation. In other words, the incremental data corresponding to the target observable data cannot be calculated based on the baseline observable data. Therefore, a default incremental data is sent to the server to inform the server that data convergence for the target observable indicator has started. The default incremental data can be the default incremental data corresponding to any target bucket. Optionally, the default incremental data corresponding to each target bucket can be the same or different, and there is no limitation on this. Preferably, the default incremental data corresponding to the last target bucket (i.e., the bucket with the largest bucket label value) is selected for reporting, which means that the cache is updated and the default incremental data corresponding to the last bucket is sent. If the result is positive, a difference calculation is performed. For any bucket in at least one target bucket corresponding to the target observable data, the target observable data in any bucket is compared with the corresponding baseline observable data for that bucket. When comparing each bucket, the comparison can be performed sequentially, in descending or ascending order of the bucket labels corresponding to each bucket. For any bucket, the comparison result can be classified into the following three cases: If the target observable data in any bucket is equal to the corresponding baseline observable data for that bucket, the incremental data is zero (=0). In this case, there is no need to update the baseline observable data in the local cache or send incremental data to the server. Simply add a flag "1" to the target observable data, and data convergence is complete. That is, no cache update is required, no difference is sent, and the flag is updated. If the target observable data in any bucket is greater than the corresponding baseline observable data for that bucket, incremental data exists and is positive (>0). At this point, the target observable data is updated as the new baseline observable data in the local cache, and the incremental data is sent to the server. Furthermore, a check is performed to determine whether the target observable data's tag information in the most recent bucket (i.e., the previous bucket) is empty (or zero). If so, data convergence is complete. If not, the target observable data in the previous bucket is reported and the corresponding tag information is cleared (or zero). This concludes data convergence by updating the cache, sending the difference, and determining whether the tag is empty. If so, the process ends. If not, the tag is reported and cleared, and the process ends. If the target observable data in any bucket is less than the corresponding baseline observable data for that bucket, incremental data exists, and this incremental data is negative (<0).At this point, the target observable data is updated as the new baseline observable data in the local cache, and the target observable data in any bucket is sent to the server as incremental data. Furthermore, a determination is made as to whether the tag information of the target observable data in the most recent bucket (i.e., the previous bucket) is empty (or zero). If so, data convergence concludes. If not, the target observable data in the previous bucket is reported and the corresponding tag information is cleared (or zero). Data convergence concludes, i.e., the cache is updated, the difference is sent, and a determination is made as to whether the tag is empty. If so, the process concludes. If not, the tag is reported and cleared, and the process concludes. In this embodiment, after the server 20 stores the data, it can also provide users with corresponding data processing services such as query and analysis. Accordingly, the cloud monitoring system also includes a user query terminal 60 for displaying data processing results. Users can send processing requests to the server 20 through the user query terminal 60. The data processing requests are used to process observable data corresponding to the target observable data indicator that meets specified conditions. Accordingly, the server 20 is configured to receive a user's data processing request, generate observable data corresponding to a target observable indicator that satisfies specified conditions based on at least one incremental data and the first observable data, process the observable data corresponding to the target observable indicator that satisfies the specified conditions, and return the data processing results to the user query terminal 60 for the user to review. In some embodiments, the specified conditions are specified time ranges. In this regard, generating observable data corresponding to the target observable indicator that satisfies the specified conditions based on the at least one incremental data and the first observable data includes: calling a cumulative sum function to cumulatively sum the at least one incremental data based on the first observable data to obtain observable data at multiple collection points; and selecting, based on the specified time range, observable data within the specified time range from the observable data at the multiple collection points. In some embodiments, the data processing request may be a quantile calculation request and include a target quantile. Quantiles, also known as quantile points, refer to numerical points that divide the probability distribution range of a random variable into several equal parts. Commonly used quantiles include the median (i.e., bisector), quartiles, and percentiles. For example, the quartile, also known as the "lower quartile," is equal to the 25th percentile of all values in the sample arranged from smallest to largest. In the prior art, quantiles can be calculated using pre-aggregation or post-aggregation.Pre-aggregation quantile calculation involves calculating scores immediately after capturing bucketed metric data on the data collection side. For example, P50, P90, P95, and P99 quantile results are generated and reported to backend storage. This solution has the following disadvantages: It only produces preset, fixed quantile results. Query requests for P995 and P999 are unavailable. It also prevents secondary aggregation calculations. For example, if the P90 request latency metric is obtained at the granularity of a single microservice instance, calculating the P90 request latency for all microservice instances in the cluster is impossible. Post-aggregation quantile calculation involves the data collector 10 reporting the full set of bucketed metric samples. The subsequent data link performs quantile calculations and writes them to storage, such as with the Prometheus Recording Rune. This solution has the following disadvantages: it relies on reporting all indicator data to the server 20, which is not friendly to edge scenarios; it does not save user costs in observable products that are billed by the amount of received indicators; and in some post-aggregation technologies (such as Prometheus Recording Rule), quantile calculation relies on the full amount of original indicators stored in the database, which does not save user costs. To address the above issues, this embodiment processes the observable data corresponding to the target observable indicator that meets the specified conditions, including: performing quantile calculation on the observable data corresponding to the target observable indicator that meets the specified conditions based on the target quantile, to obtain the observable data corresponding to the target quantile. Incremental upload of observable data, rather than full upload, can, to a certain extent, solve the problem of observable data divergence, save transmission bandwidth and storage resources, and thus help reduce the cost of cloud product users using cloud monitoring services. In addition, data processing requests can also be requests for data queries, data display, and so on. It should be noted that the cloud monitoring system provided in the embodiments of the present disclosure can be self-built or improved from existing cloud monitoring products. For example, it can be implemented as an improved Prometheus system. Figure 3 is a flow chart of a data processing method provided in an exemplary embodiment of the present disclosure. As shown in Figure 3, the method is applied to a data collector in a cloud monitoring system and includes the following steps:
[0002] 301. At a current collection moment, collect target observable data generated by a data source, where the target observable data is observable data corresponding to a target observable indicator at the current collection moment;
[0003] 302. Compare the target observable data with the locally cached benchmark observable data, where the benchmark observable data is the observable data corresponding to the target observable indicator at the historical collection time.
[0004] 303. If the two are different, generate incremental data based on the target observable data and the baseline observable data, and update the baseline observable data to the target observable data;
[0005] 304. Send the incremental data to a server in the cloud monitoring system so that the server can provide data processing services related to the data source based on the incremental data. In some embodiments, generating incremental data based on the target observable data and the baseline observable data includes: if the difference between the target observable data and the baseline observable data is greater than a set threshold, using the difference between the target observable data and the baseline observable data as incremental data; if the difference between the target observable data and the baseline observable data is less than the set threshold, using the target observable data as incremental data. Furthermore, a second name is assigned to the incremental data, the second name being different from the first name corresponding to the target observable data; the first name is used to identify the observable data, and the second name is used to identify the incremental data. Optionally, assigning the second name to the incremental data includes: obtaining a preset name for the incremental data configured for the target observable indicator from a configuration file; and assigning the preset name as the second name to the incremental data. Furthermore, before comparing the target observable data with the locally cached baseline observable data, the method further includes: determining whether the baseline observable data exists in the local cache based on the first name corresponding to the target observable data; if the baseline observable data exists in the local cache, performing an operation to compare the target observable data with the baseline observable data; if the baseline observable data does not exist in the local cache, adding the target observable data to the local cache as the baseline observable data, and sending the target observable data and default incremental data to the server for the server to determine that data convergence for the target observable metric has been initiated. In some embodiments, the target observable metric corresponds to multiple bucket labels, the target observable data has a first bucket label among the multiple bucket labels, and the multiple bucket labels correspond to multiple buckets; the method further includes: bucketing the target observable data based on the first bucket label to divide the target observable data into at least one bucket; and sending the default incremental data to the server includes: selecting a target bucket from the at least one bucket, and sending the default incremental data to the server for the target observable data in the target bucket.Furthermore, before comparing the target observable data with the locally cached baseline observable data, the process further includes: determining, based on the first name corresponding to the target observable data, whether the target observable data belongs to pre-configured observable data requiring a data convergence operation; if the target observable data belongs to observable data requiring a data convergence operation, performing an operation of comparing the target observable data with the locally cached baseline observable data; and if the target observable data does not belong to observable data requiring a data convergence operation, directly reporting the target observable data to the server. Optionally, determining, based on the first name corresponding to the target observable data, whether the target observable data belongs to pre-configured observable data requiring a data convergence operation includes: obtaining, from a configuration file, a list of names of observable indicators configured for the data source requiring a data convergence operation; and determining, if the first name is in a command list, that the target observable data belongs to observable data requiring a data convergence operation. In some embodiments, a target observable metric corresponds to multiple bucket labels of varying sizes. The target observable data carries a first bucket label from the multiple bucket labels. The multiple bucket labels correspond to multiple buckets, and each bucket has its own baseline observable data. Accordingly, before comparing the target observable data with the locally cached baseline observable data, the process further includes: dividing the target observable data into at least one bucket based on the first bucket label, so that subsequent processing of the target observable data is performed at the bucket granularity. In some embodiments, the target observable data is compared with the locally cached baseline observable data. If the two are different, incremental data is generated based on the target observable data and the baseline observable data, and the baseline observable data is updated to the target observable data, and the incremental data is sent to the server in the cloud monitoring system, including: for any bucket in at least one bucket, the target observable data in any bucket is compared with the baseline observable data corresponding to any bucket; if the target observable data in any bucket is different from the baseline observable data corresponding to any bucket, incremental data corresponding to any bucket is generated based on the target observable data in any bucket and the baseline observable data corresponding to any bucket; the baseline observable data corresponding to any bucket is updated to the target observable data in any bucket, and the incremental data corresponding to any bucket is sent to the server.Furthermore, the method further includes: if the target observable data in any bucket is identical to the baseline observable data corresponding to any bucket, adding tag information to the target observable data in any bucket; and if the target observable data in the next bucket adjacent to any bucket is different from the baseline observable data corresponding to the next bucket, reporting the target observable data in the bucket and removing the tag information. Figure 4 is a flow diagram of another data processing method provided by an embodiment of the present disclosure. As shown in Figure 4, the method is applied to a server in a cloud monitoring system and includes:
[0006] 401. Receive first observable data and at least one incremental data corresponding to a target observable indicator sent by a data collector, where the target observable indicator is an observable indicator of a data source;
[0007] 402. Receive a data processing request from a user, where the data processing request is used to request processing of observable data corresponding to a target observable indicator that meets specified conditions.
[0008] 403. Generate observable data that satisfies specified conditions and corresponds to a target observable indicator based on the at least one incremental data and the first observable data.
[0009] 404. Process the observable data corresponding to the target observable indicator that meets the specified conditions and return the processing results to the user. In some embodiments, the specified condition is a specified time range. Generating the observable data corresponding to the target observable indicator that meets the specified condition based on the at least one incremental data and the first observable data includes: calling a cumulative sum function to cumulatively sum the at least one incremental data based on the first observable data to obtain observable data at multiple collection times; and selecting, from the observable data at the multiple collection times, observable data within the specified time range. In some embodiments, if the data processing request is a quantile calculation request and includes a target quantile, processing the observable data corresponding to the target observable indicator that meets the specified condition includes: performing quantile calculation on the observable data corresponding to the target observable indicator that meets the specified condition based on the target quantile to obtain observable data corresponding to the target quantile. The detailed implementation and beneficial effects of each step in the method of this embodiment have been described in detail in the previous embodiments and will not be elaborated on here. Figure 5 is a schematic diagram of the structure of a data processing device provided by an exemplary embodiment of the present disclosure. As shown in Figure 5, the device includes: a collection module 51, which is configured to collect target observable data generated by the data source at the current collection moment, where the target observable data is the observable data corresponding to the target observable indicator at the current collection moment; a comparison module 52, which is configured to compare the target observable data with the locally cached baseline observable data, where the baseline observable data is the observable data corresponding to the target observable indicator at the historical collection moment; a generation module 53, which is configured to generate incremental data based on the target observable data and the baseline observable data if the two are different, and update the baseline observable data to the target observable data; and a sending module 54, which is configured to send the incremental data to the server in the cloud monitoring system, so that the server can provide data processing services related to the data source based on the incremental data. In some embodiments, when the generation module is configured to generate incremental data based on the target observable data and the baseline observable data, it is specifically configured to: if the difference between the target observable data and the baseline observable data is greater than a set threshold, use the difference between the target observable data and the baseline observable data as incremental data; if the difference between the target observable data and the baseline observable data is less than the set threshold, use the target observable data as incremental data.Furthermore, the system further includes a setting module configured to set a second name for the incremental data, the second name being different from the first name corresponding to the target observable data; the first name being used to identify the observable data, and the second name being used to identify the incremental data. Optionally, when the setting module is configured to set the second name for the incremental data, the setting module is specifically configured to: obtain, from a configuration file, a preset name for the incremental data configured for the target observable indicator; and set the preset name as the second name for the incremental data. Furthermore, before comparing the target observable data with the locally cached baseline observable data, the comparison module is further configured to: determine whether baseline observable data exists in the local cache based on the first name corresponding to the target observable data; if baseline observable data exists in the local cache, perform an operation to compare the target observable data with the baseline observable data; if baseline observable data does not exist in the local cache, add the target observable data to the local cache as the baseline observable data, and send the target observable data and default incremental data to the server, so that the server can confirm that data convergence for the target observable indicator has been initiated. In some embodiments, the target observable indicator corresponds to multiple bucket labels, the target observable data carries a first bucket label among the multiple bucket labels, and the multiple bucket labels correspond to multiple buckets; the method also includes: a bucket module, which is configured to perform bucket processing on the target observable data according to the first bucket label to divide the target observable data into at least one bucket; when the sending module is configured to send default incremental data to the server, it is specifically configured to: select a target bucket from at least one bucket, and send default incremental data to the server for the target observable data in the target bucket. Furthermore, before the comparison module is configured to compare the target observable data with the locally cached baseline observable data, it is also configured to: determine, based on the first name corresponding to the target observable data, whether the target observable data belongs to the pre-configured observable data that requires a data convergence operation; if the target observable data belongs to the observable data that requires a data convergence operation, perform an operation of comparing the target observable data with the locally cached baseline observable data; if the target observable data does not belong to the observable data that requires a data convergence operation, directly report the target observable data to the server.Optionally, when the comparison module is configured to determine whether the target observable data belongs to pre-configured observable data requiring data convergence based on the first name corresponding to the target observable data, the comparison module is specifically configured to: obtain, from a configuration file, a list of names of observable metrics configured for the data source requiring data convergence; and if the first name is in the command list, determine that the target observable data belongs to observable data requiring data convergence. In some embodiments, the target observable metric corresponds to multiple bucket labels of varying sizes, the target observable data has a first bucket label among the multiple bucket labels, the multiple bucket labels correspond to multiple buckets, and different buckets have their own baseline observable data. Accordingly, before comparing the target observable data with the locally cached baseline observable data, the comparison module is further configured to: divide the target observable data into at least one bucket based on the first bucket label, so that subsequent processing of the target observable data can be performed at the bucket granularity. In some embodiments, the target observable data is compared with the locally cached baseline observable data through a comparison module. If the two are different, incremental data is generated through a generation module based on the target observable data and the baseline observable data, and the baseline observable data is updated to the target observable data. When the incremental data is sent to the server in the cloud monitoring system through a sending module, it is specifically set to: for any bucket in at least one bucket, the target observable data in any bucket is compared with the baseline observable data corresponding to any bucket; if the target observable data in any bucket is different from the baseline observable data corresponding to any bucket, incremental data corresponding to any bucket is generated based on the target observable data in any bucket and the baseline observable data corresponding to any bucket; the baseline observable data corresponding to any bucket is updated to the target observable data in any bucket, and the incremental data corresponding to any bucket is sent to the server. Furthermore, the method further includes: a marking module configured to add marking information to the target observable data in any bucket if the target observable data in any bucket is identical to the baseline observable data corresponding to the bucket; and to report the target observable data in any bucket and clear the marking information if the target observable data in the next bucket adjacent to the bucket is different from the baseline observable data corresponding to the next bucket. The detailed implementation and beneficial effects of each module in the method of this embodiment have been described in detail in the previous embodiments and will not be elaborated on here. Figure 6 is a schematic structural diagram of another data processing device provided in an embodiment of the present disclosure.As shown in FIG6 , the apparatus includes: a receiving module 61 configured to receive the first observable data and at least one incremental data corresponding to a target observable indicator sent by a data collector, where the target observable indicator is an observable indicator of a data source; the receiving module 61 is further configured to receive a data processing request from a user, where the data processing request is used to request processing of the observable data corresponding to the target observable indicator that meets specified conditions; a generating module 62 configured to generate the observable data corresponding to the target observable indicator that meets specified conditions based on the at least one incremental data and the first observable data; and a processing module 63 configured to process the observable data corresponding to the target observable indicator that meets the specified conditions and return the processing result to the user. In some embodiments, the specified condition is a specified time range. When the generation module 62 is configured to generate observable data corresponding to a target observable indicator that satisfies the specified condition based on at least one incremental data and the first observable data, the generation module 62 is specifically configured to: call a cumulative summation function to perform cumulative summation on the at least one incremental data based on the first observable data to obtain observable data at multiple acquisition times; and select observable data within the specified time range from the observable data at the multiple acquisition times based on the specified time range. In some embodiments, when the data processing request is a quantile calculation request and includes a target quantile, the processing module is specifically configured to: perform quantile calculation on the observable data corresponding to the target observable indicator that satisfies the specified condition based on the target quantile to obtain observable data corresponding to the target quantile. The detailed implementation and beneficial effects of each module in the method of this embodiment have been described in detail in the previous embodiments and will not be elaborated on here. Figure 7 is a schematic structural diagram of an electronic device provided in an embodiment of the present disclosure.As shown in Figure 7, it includes: a memory 70a and a processor 70b; the memory 70a stores a computer program, and the processor 70b is coupled to the memory 70a for executing the computer program to implement the following steps: at the current collection moment, collecting target observable data generated by the data source, where the target observable data is the observable data corresponding to the target observable indicator at the current collection moment; comparing the target observable data with the locally cached baseline observable data, where the baseline observable data is the observable data corresponding to the target observable indicator at the historical collection moment; if the two are different, generating incremental data based on the target observable data and the baseline observable data, and updating the baseline observable data to the target observable data; and sending the incremental data to the server in the cloud monitoring system, so that the server can provide data processing services related to the data source based on the incremental data. In some embodiments, when the processor 70b is configured to generate incremental data based on the target observable data and the baseline observable data, it is specifically configured to: if the difference between the target observable data and the baseline observable data is greater than a set threshold, use the difference between the target observable data and the baseline observable data as the incremental data; and if the difference between the target observable data and the baseline observable data is less than the set threshold, use the target observable data as the incremental data. Furthermore, the processor 70b is further configured to assign a second name to the incremental data, where the second name is different from the first name corresponding to the target observable data; the first name is used to identify the observable data, and the second name is used to identify the incremental data. Optionally, when the processor 70b is configured to assign the second name to the incremental data, it is specifically configured to: obtain, from a configuration file, a preset name for the incremental data configured for the target observable indicator; and assign the preset name as the second name to the incremental data. Furthermore, before the processor 70b compares the target observable data with the benchmark observable data in the local cache, it is also used to: determine whether the benchmark observable data exists in the local cache according to the first name corresponding to the target observable data; if the benchmark observable data exists in the local cache, perform an operation of comparing the target observable data with the benchmark observable data; if the benchmark observable data does not exist in the local cache, add the target observable data as the benchmark observable data to the local cache, and send the target observable data and default incremental data to the server, so that the server can determine that the data convergence work of the target observable indicator has been started.In some embodiments, the target observable indicator corresponds to multiple bucket labels, the target observable data has a first bucket label among the multiple bucket labels, and the multiple bucket labels correspond to multiple buckets; the processor 70b is further used to perform bucket processing on the target observable data according to the first bucket label to divide the target observable data into at least one bucket; when the processor 70b is used to send default incremental data to the server, it is specifically used to: select a target bucket from at least one bucket, and send default incremental data to the server for the target observable data in the target bucket. Furthermore, before comparing the target observable data with the locally cached baseline observable data, the processor 70b is further configured to: determine, based on the first name corresponding to the target observable data, whether the target observable data is pre-configured observable data requiring a data convergence operation; if the target observable data is observable data requiring a data convergence operation, compare the target observable data with the locally cached baseline observable data; and if the target observable data is not observable data requiring a data convergence operation, directly report the target observable data to the server. Optionally, when determining, based on the first name corresponding to the target observable data, whether the target observable data is pre-configured observable data requiring a data convergence operation, the processor 70b is specifically configured to: obtain, from a configuration file, a list of names of observable indicators configured for the data source requiring a data convergence operation; and if the first name is in a command list, determine that the target observable data is observable data requiring a data convergence operation. In some embodiments, a target observable metric corresponds to multiple bucket labels of varying sizes. The target observable data carries a first bucket label from the multiple bucket labels. The multiple bucket labels correspond to multiple buckets, and each bucket has its own baseline observable data. Accordingly, before comparing the target observable data with the locally cached baseline observable data, the processor 70b is further configured to: divide the target observable data into at least one bucket based on the first bucket label, so that subsequent processing of the target observable data is performed at the bucket granularity.In some embodiments, the processor 70b compares the target observable data with the locally cached baseline observable data. If the two are different, incremental data is generated based on the target observable data and the baseline observable data, and the baseline observable data is updated to the target observable data. When the incremental data is sent to the server in the cloud monitoring system, it is specifically used to: for any bucket in at least one bucket, compare the target observable data in any bucket with the baseline observable data corresponding to any bucket; if the target observable data in any bucket is different from the baseline observable data corresponding to any bucket, generate incremental data corresponding to any bucket based on the target observable data in any bucket and the baseline observable data corresponding to any bucket; update the baseline observable data corresponding to any bucket to the target observable data in any bucket, and send the incremental data corresponding to any bucket to the server. Furthermore, processor 70b is further configured to, if the target observable data in any bucket is identical to the baseline observable data corresponding to the bucket, add flag information to the target observable data in the bucket; and if the target observable data in the next bucket adjacent to the bucket is different from the baseline observable data corresponding to the next bucket, report the target observable data in the bucket and remove the flag information. Furthermore, based on the same electronic structure as FIG7 , processor 70b is further configured to implement the following steps: receiving first observable data and at least one incremental data corresponding to a target observable indicator sent by a data collector, where the target observable indicator is an observable indicator of a data source; receiving a data processing request from a user, the data processing request requesting processing of observable data corresponding to the target observable indicator that meets specified conditions; generating observable data corresponding to the target observable indicator that meets the specified conditions based on the at least one incremental data and the first observable data; processing the observable data corresponding to the target observable indicator that meets the specified conditions, and returning the processing result to the user. In some embodiments, the specified condition is a specified time range. When the processor 70b is used to generate observable data corresponding to the target observable indicator and meeting the specified condition based on the at least one incremental data and the first observable data, the processor 70b is specifically used to: call a cumulative summation function to cumulatively sum the at least one incremental data based on the first observable data to obtain observable data at multiple collection moments; and select, based on the specified time range, observable data within the specified time range from the observable data at the multiple collection moments.In some embodiments, if the data processing request is a quantile calculation request and includes a target quantile, the processor 70b, when processing observable data corresponding to a target observable indicator that satisfies specified conditions, is specifically configured to: perform quantile calculation on the observable data corresponding to the target observable indicator that satisfies specified conditions, based on the target quantile, to obtain observable data corresponding to the target quantile. Furthermore, as shown in FIG7 , the electronic device also includes other components, such as a communication component 70c, a display 70d, a power supply component 70e, and an audio component 70f. FIG7 schematically illustrates only some components and does not imply that the electronic device includes only the components shown in FIG7 . The electronic device of this embodiment can be implemented as an electronic device such as a desktop computer, a laptop computer, a smartphone, or an IOT device, or as a server-side device such as a conventional server, a cloud server, or a server array. If the electronic device of this embodiment is implemented as a terminal device such as a desktop computer, laptop computer, or smartphone, it may include the components within the dashed box in Figure 7 . If the electronic device of this embodiment is implemented as a server-side device such as a conventional server, cloud server, or server array, it may not include the components within the dashed box in Figure 7 . The detailed implementation and beneficial effects of each module in the method of this embodiment have been described in detail in the previous embodiments and will not be elaborated on here. This embodiment also provides a computer-readable storage medium storing a computer program / instructions. When the computer program / instructions are executed by a processor, the processor is enabled to implement the steps of the above-described method. This embodiment also provides a computer program product containing the computer program / instructions. When the computer program / instructions are executed by a processor, the processor is enabled to implement the steps of the above-described method. The above-described memory can be implemented by any type of volatile or non-volatile storage device, or a combination thereof, such as static random-access memory (SRAM) or electrically erasable programmable read-only memory.
[0010] (Electrical Erasable Programmable Read On Memory, EEPROM), Erasable Programmable Read-Only Memory (EPROM), Programmable Read-Only Memory (PROM), Read-Only Memory (ROM), magnetic memory, flash memory, magnetic disk or optical disk. The above-mentioned communication component is configured to facilitate wired or wireless communication between the device where the communication component is located and other devices. The device where the communication component is located can access a wireless network based on a communication standard, such as Wi-Fi, 2G, 3G, 4G / LTE, 5G and other mobile communication networks, or a combination thereof. In an exemplary embodiment, the communication component receives a broadcast signal or broadcast-related information from an external broadcast management system via a broadcast channel. In an exemplary embodiment, the communication component also includes a near field communication (NFC) module.
[0011] A Near Field Communication (NFC) module is provided to facilitate short-range communication. For example, the NFC module can be implemented based on Radio Frequency Identification (RFID) technology, Infrared Data Association (IRDA) technology, Ultra Wide Band (UWB) technology, Bluetooth (BT) technology, and other technologies. The display includes a screen, which may include a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen may be implemented as a touch screen to receive input signals from the user. The touch panel includes one or more touch sensors to sense touches, slides, and gestures on the touch panel. The touch sensor can not only sense the boundaries of a touch or slide action, but also detect the duration and pressure associated with the touch or slide operation. The power supply assembly provides power to various components of the device in which the power supply assembly resides. The power supply assembly may include a power management system, one or more power supplies, and other components associated with generating, managing, and distributing power for the device in which the power supply assembly resides. The audio assembly may be configured to output and / or input audio signals. For example, the audio assembly includes a microphone (MIC), which is configured to receive external audio signals when the device in which the audio assembly resides is in an operating mode, such as call mode, recording mode, and voice recognition mode. The received audio signals may be further stored in a memory or transmitted via a communication assembly. In some embodiments, the audio assembly also includes a speaker for outputting audio signals. Those skilled in the art will appreciate that embodiments of the present disclosure may be provided as methods, systems, or computer program products. Therefore, the present disclosure may take the form of entirely hardware embodiments, entirely software embodiments, or embodiments combining software and hardware aspects. Moreover, the present disclosure may take the form of a computer program product implemented on one or more computer-readable storage media (including but not limited to magnetic disk storage, Compact Disk Read-Only Memory (CD-ROM), optical storage, etc.) containing computer-usable program codes.The present disclosure is described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present disclosure. It should be understood that each process and / or block in the flowcharts and / or block diagrams, as well as combinations of processes and / or blocks in the flowcharts and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, such that the instructions, when executed by the processor of the computer or other programmable data processing device, produce means for implementing the functions specified in one or more processes in the flowcharts and / or one or more blocks in the block diagrams. These computer program instructions can also be stored in a computer-readable memory capable of directing the computer or other programmable data processing device to operate in a specific manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means for implementing the functions specified in one or more processes in the flowcharts and / or one or more blocks in the block diagrams. These computer program instructions can also be loaded onto a computer or other programmable data processing device, causing the computer or other programmable device to execute a series of operational steps to produce a computer-implemented process. The instructions executed on the computer or other programmable device thus provide steps for implementing the functions specified in one or more flow charts and / or one or more blocks in a block diagram. In a typical configuration, a computing device includes one or more processors (CPUs), input / output interfaces, network interfaces, and memory. Memory may include non-permanent storage in a computer-readable medium, random access memory (RAM), and / or non-volatile memory, such as read-only memory (ROM) or flash memory. Memory is an example of a computer-readable medium. Computer-readable media, including permanent and non-permanent, removable and non-removable media, can store information using any method or technology. Information can be computer-readable instructions, data structures, program modules, or other data.Examples of computer storage media include, but are not limited to, phase-change random access memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disc read-only memory (CD-ROM), digital versatile discs (DVD) or other optical storage, magnetic cassettes, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device. As defined herein, computer-readable media does not include transient computer-readable media such as modulated data signals and carrier waves. It should also be noted that the terms "comprise," "include," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, product, or apparatus comprising a list of elements includes not only those elements but also other elements not explicitly listed, or elements inherent to such process, method, product, or apparatus. Without further limitation, an element defined by the phrase "comprising a..." does not preclude the presence of additional identical elements in the process, method, product, or apparatus comprising the element. The foregoing are merely examples of the present disclosure and are not intended to limit the present disclosure. Those skilled in the art will readily appreciate that various modifications and variations of the present disclosure are possible. Any modifications, equivalent substitutions, improvements, and the like made within the spirit and principles of the present disclosure are intended to be encompassed by the claims of the present disclosure. Industrial Applicability In the disclosed embodiments, a cloud monitoring system is used to collect and monitor observable data from data sources. During the observable data collection process, the collected observable data is not directly uploaded. Instead, the collected observable data is compared with locally cached historical observable data that can serve as a comparison benchmark. When the two differ, incremental data is generated and uploaded incrementally instead of uploading the entire observable data. This can, to a certain extent, solve the problem of observable data divergence, save transmission bandwidth and storage resources, and thus help reduce the cost of using cloud monitoring services for cloud product users.
Claims
Claims 1. A data processing method, applied to a data collector in a cloud monitoring system, comprising: At the current collection moment, target observable data generated by the data source is collected, where the target observable data is observable data corresponding to the target observable indicator at the current collection moment; The target observable data is compared with the locally cached baseline observable data, where the baseline observable data is the observable data corresponding to the target observable indicator at the historical collection moment; if the two are different, incremental data is generated based on the target observable data and the baseline observable data, and the baseline observable data is updated to the target observable data; the incremental data is sent to the server in the cloud monitoring system, so that the server can provide data processing services related to the data source based on the incremental data.
2. The method according to claim 1, wherein: Generate incremental data based on the target observable data and the baseline observable data, including: if the difference between the target observable data and the baseline observable data is greater than a set threshold, use the difference between the target observable data and the baseline observable data as the incremental data; if the difference between the target observable data and the baseline observable data is less than the set threshold, use the target observable data as the incremental data.
3. The method according to claim 1, wherein: Also includes: A second name is set for the incremental data, where the second name is different from the first name corresponding to the target observable data; the first name is used to identify the observable data, and the second name is used to identify the incremental data.
4. The method according to claim 3, wherein: Setting a second name for the incremental data includes: obtaining, from a configuration file, a preset name for the incremental data configured for the target observable indicator; and setting the preset name as the second name to the incremental data.
5. The method according to claim 1, wherein: Before comparing the target observable data with the benchmark observable data in the local cache, it also includes: judging whether the benchmark observable data exists in the local cache according to the first name corresponding to the target observable data; if the benchmark observable data exists in the local cache, performing an operation of comparing the target observable data with the benchmark observable data; if the benchmark observable data does not exist in the local cache, adding the target observable data as the benchmark observable data to the local cache, and sending the target observable data and default incremental data to the server, so that the server can determine that the data convergence work of the target observable indicator has been started.
6. The method according to claim 1, wherein: Before comparing the target observable data with the locally cached benchmark observable data, the method further includes: determining, according to the first name corresponding to the target observable data, whether the target observable data belongs to pre-configured observable data requiring a data convergence operation; If the target observable data is observable data that requires a data convergence operation, the target observable data is compared with the locally cached benchmark observable data; if the target observable data is not observable data that requires a data convergence operation, the target observable data is directly reported to the server.
7. The method according to claim 6, wherein: Determining, based on the first name corresponding to the target observable data, whether the target observable data belongs to pre-configured observable data that requires a data convergence operation, includes: obtaining, from a configuration file, a list of names of observable indicators that require a data convergence operation configured for the data source; and determining, if the first name is in a command list, that the target observable data belongs to observable data that requires a data convergence operation.
8. The method according to any one of claims 1 to 7, wherein: The target observable indicator corresponds to multiple bucket labels of different sizes, the target observable data carries a first bucket label among the multiple bucket labels, the multiple bucket labels correspond to multiple buckets, and different buckets have their own baseline observable data; before comparing the target observable data with the locally cached baseline observable data, it also includes: according to the first bucket label, dividing the target observable data into at least one bucket, so as to perform subsequent processing on the target observable data at the bucket granularity.
9. The method according to claim 8, wherein: The target observable data is compared with the locally cached baseline observable data. If the two are different, incremental data is generated based on the target observable data and the baseline observable data, and the baseline observable data is updated to the target observable data, and the incremental data is sent to the server in the cloud monitoring system, including: for any bucket of the at least one bucket, the target observable data in the any bucket is compared with the baseline observable data corresponding to the any bucket; if the target observable data in the any bucket is different from the baseline observable data corresponding to the any bucket, incremental data corresponding to the any bucket is generated based on the target observable data in the any bucket and the baseline observable data corresponding to the any bucket; the baseline observable data corresponding to the any bucket is updated to the target observable data in the any bucket, and the incremental data corresponding to the any bucket is sent to the server.
10. The method according to claim 9, wherein: Also includes: If the target observable data in any bucket is the same as the benchmark observable data corresponding to any bucket, add marking information to the target observable data in any bucket; and if the target observable data in the next bucket adjacent to any bucket is different from the benchmark observable data corresponding to the next bucket, report the target observable data in any bucket and clear the marking information.
11. A data processing method, applied to a server in a cloud monitoring system, comprising: Receive the first observable data and at least one incremental data corresponding to the target observable indicator sent by the data collector, where the target observable indicator is the observable indicator of the data source; receive a data processing request from the user, where the data processing request is used to request processing of the observable data corresponding to the target observable indicator that meets specified conditions; generate the observable data corresponding to the target observable indicator that meets the specified conditions based on the at least one incremental data and the first observable data; process the observable data corresponding to the target observable indicator that meets the specified conditions, and return the processing result to the user.
12. The method according to claim 11, wherein: The specified condition is a specified time range, and generating observable data corresponding to the target observable indicator that meets the specified condition based on the at least one incremental data and the first observable data includes: calling a cumulative summation function to cumulatively sum the at least one incremental data based on the first observable data to obtain observable data at multiple collection moments; and selecting, based on the specified time range, observable data within the specified time range from the observable data at the multiple collection moments.
13. The method according to claim 12, wherein: If the data processing request is a quantile calculation request and includes a target quantile, then the observable data corresponding to the target observable indicator that meets the specified conditions is processed, including: performing quantile calculation on the observable data corresponding to the target observable indicator that meets the specified conditions according to the target quantile to obtain the observable data corresponding to the target quantile.
14. An electronic device, comprising: memory and processor; The memory stores a computer program, and the processor is coupled to the memory and is configured to execute the computer program to implement the steps in the method according to any one of claims 1 to 10 and claims 11 to 13.
15. A computer-readable storage medium storing a computer program / instruction, which, when executed by a processor, enables the processor to implement the steps of the method according to any one of claims 1 to 10 and claims 11 to 13.
16. A computer program product, comprising a computer program / instruction, which, when executed by a processor, enables the processor to implement the steps of any one of claims 1 to 10 and claims 11 to 13.
Citation Information
Patent Citations
Data processing method and device, server and computer readable storage medium
CN109379432A
Static resource management method and device, equipment and storage medium
CN110515647A
Data updating method, device and system
CN110609844A
Dynamic analysis and optimization method for AI energy consumption threshold value of data center
CN115630709A
Data maintenance method, intelligent terminal and storage medium
CN116521694A