Intelligent data analysis method, apparatus, medium, device and product
By integrating an SDK into the business server to achieve local traffic offloading, the latency and performance impact caused by RPC calls are resolved, ensuring the response efficiency and accuracy of A/B tests.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- BEIJING VOLCANO ENGINE TECH CO LTD
- Filing Date
- 2026-05-27
- Publication Date
- 2026-06-26
Smart Images

Figure CN122285531A_ABST
Abstract
Description
Technical Field
[0001] This content relates to the field of computer technology, specifically to an intelligent data analysis method, apparatus, medium, device, and product. Background Technology
[0002] A / B testing is a core infrastructure for product iteration in internet services. During A / B testing, multiple experimental groups can be pre-set for a business service based on real-world application scenarios. The results are then analyzed based on the success rate of each experimental group. When determining the experimental group that a business request should hit, the business service uses a network RPC (Remote Procedure Call) to invoke a traffic distribution service to identify the experimental group. The traffic distribution service then returns the relevant parameters of the hit experimental group to the business service via an RPC response, enabling the business service to respond to the request. Summary of the Invention
[0003] This content section is provided to briefly introduce the concepts, which will be described in detail in the examples section later. This content section is not intended to identify key or essential features of the claimed technical solution, nor is it intended to limit the scope of the claimed technical solution.
[0004] Firstly, an intelligent data analysis method is provided, including: In response to receiving a business request, a first response group is determined based on a software development kit (SDK) and a first test configuration file. The SSD is integrated into the business server and runs in the same process or container as the business server. The first test configuration file contains multiple test groups and routing logic for responding to the business request. The first response group is one of the test groups determined based on the routing logic. The first response group is used to respond to the business request. Data analysis is performed based on the identification information in the business request and the first response group.
[0005] Secondly, a smart data analysis device is provided, the device comprising: A determination module is used to determine a first response group based on a software development kit (SDK) and a first test configuration file in response to a received business request. The SSD is integrated into the business server and runs in the same process or container as the business server. The first test configuration file contains multiple test groups and routing logic for responding to the business request. The first response group is one of the test groups determined based on the routing logic. The first response group is used to respond to the business request. The analysis module is used to perform data analysis based on the identification information in the business request and the first response group.
[0006] Thirdly, a computer-readable medium is provided having a computer program stored thereon, wherein the computer program, when executed by a processing device, implements the steps of the method described in the first aspect.
[0007] Fourthly, an electronic device is provided, comprising: A storage device on which computer programs are stored; A processing device for executing the computer program in the storage device to implement the steps of the method described in the first aspect.
[0008] Fifthly, a computer program product is provided, comprising a computer program, wherein the computer program, when executed by a processor, implements the steps of the method described in the first aspect.
[0009] Therefore, a software development kit (SDK) can be integrated into the business server, and the SSD runs in the same process or container as the business server. This allows for local traffic splitting processing on the business server based directly on the SDK and test configuration files during testing. This eliminates the need for the business server to call the traffic splitting service via RPC, and also avoids waiting for the traffic splitting service to return hit response packets, thus avoiding response latency caused by network calls. This ensures efficient response to business requests while minimizing the impact of testing on business service performance. Furthermore, executing the traffic splitting logic locally on the business server also mitigates the impact of centralized traffic splitting service failures on the overall testing process, ensuring accurate and effective test execution.
[0010] Other features and advantages of the technical solution will be described in detail in the following examples section. Attached Figure Description
[0011] The above and other features, advantages, and aspects of the technical solution will become more apparent when considered in conjunction with the accompanying drawings and the following examples. Throughout the drawings, the same or similar reference numerals denote the same or similar elements. It should be understood that the drawings are schematic, and the originals and elements are not necessarily drawn to scale. In the drawings: Figure 1 This is a flowchart illustrating intelligent data analysis methods based on certain scenarios.
[0012] Figure 2 This is a schematic diagram illustrating the architecture of intelligent data analysis methods based on certain scenarios.
[0013] Figure 3 This is a block diagram illustrating an intelligent data analysis device based on certain scenarios.
[0014] Figure 4It is a block diagram of an electronic device shown according to certain scenarios. Detailed Implementation
[0015] The technical solution will now be described in more detail with reference to the accompanying drawings. Although certain scenarios are shown in the drawings, it should be understood that the technical solution can be implemented in various forms and should not be construed as limited to the scenarios described herein. Rather, these scenarios are provided to provide a more thorough and complete understanding of the technical solution. It should be understood that the accompanying drawings and the scenarios described are for illustrative purposes only and are not intended to limit the scope of protection of the technical solution.
[0016] It should be understood that the steps described in the method implementation may be performed in different orders and / or in parallel. Furthermore, the method implementation may include additional steps and / or omit the steps shown. The scope of the technical solution is not limited in this respect.
[0017] The term "comprising" and its variations as used herein can be open-ended, meaning "including but not limited to". The term "based on" can mean "at least partially based on". The term "one case" means "at least one case"; the term "another case" means "at least one additional case"; the term "some cases" means "at least some cases". Definitions of other terms will be given in the following description.
[0018] It should be noted that the concepts of "first" and "second" mentioned here are only used to distinguish different devices, modules or units, and are not used to limit the order of the functions performed by these devices, modules or units or their interdependencies.
[0019] It should be noted that the terms "one" and "more" used here are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".
[0020] The names of messages or information exchanged between the multiple devices in the implementation are for illustrative purposes only and are not intended to limit the scope of these messages or information.
[0021] It is understandable that before using the technical solutions provided here, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in accordance with relevant laws and regulations, and their authorization should be obtained through appropriate means.
[0022] For example, upon receiving a user's active request, a prompt message is sent to the user to explicitly inform them that the requested operation will require the acquisition and use of the user's personal information. This allows the user to independently choose, based on the prompt message, whether to provide personal information to the software or hardware such as electronic devices, applications, servers, or storage media performing the operations described herein.
[0023] As an optional but non-limiting implementation, in response to a user's active request, sending a prompt message to the user can be done via a pop-up window, where the prompt message can be presented in text format. Furthermore, the pop-up window can also include a selection control allowing the user to choose "agree" or "disagree" to provide personal information to the electronic device.
[0024] It is understood that the above notification and user authorization process are merely illustrative and do not constitute a limitation on the implementation of the technical solution. Other methods that comply with relevant laws and regulations may also be applied to the implementation of the technical solution.
[0025] At the same time, it is understood that the data involved in the technical solution (including but not limited to the data itself, the acquisition or use of the data) should comply with the requirements of relevant laws, regulations and related provisions.
[0026] Figure 1 The diagram shows a flowchart of an intelligent data analysis method based on certain scenarios. The method may include: In step 11, in response to receiving a business request, a first response group is determined based on a software development kit (SDK) and a first test configuration file. The SSD is integrated into the business server and runs in the same process or container as the business server. The first test configuration file contains multiple test groups and routing logic for responding to the business request. The first response group is one of the test groups determined based on the routing logic, and the first response group is used to respond to the business request.
[0027] As an example, this method can be applied to A / B testing scenarios. Multiple test groups can be configured based on the actual testing needs of the business server, with each test group corresponding to different configuration parameters. For instance, in a business service version iteration scenario, two test groups can be pre-configured: one group provides services through the old version, and the other group provides services through the new version. Thus, the success rate of switching to the new version can be determined by the hit rate of these two test groups.
[0028] Specifically, business services can interact with users through the client, allowing users to trigger business requests by performing actions on the client. The business service then determines the response to the business request and returns it to the client, thus achieving interaction with the user. For example, the client can display a visual interface, where users can trigger business requests by entering text or voice input, or through interactive controls within the visual interface. The specific triggering method is determined based on the actual configuration of the business service and is not limited in this regard.
[0029] In a testing scenario, when the business server receives a business request, it needs to determine which test group to respond to. Here, a Software Development Kit (SDK) can be integrated into the business server. This SDK runs in the same process or container as the business server. When determining the first response group to respond to the business request, it can be based on a first test configuration file and the local implementation of the SDK on the business server.
[0030] In step 12, data analysis is performed based on the identification information in the business request and the first response group.
[0031] For example, fields for testing can be pre-defined in the business request. When a business request is initiated from the client, the values of the corresponding fields can be carried in the request. Specifically, with user authorization, the values of the corresponding fields can be retrieved and added to the business request as identification information. This identification information could include user attributes, device information, etc.
[0032] After determining the first response group based on the SDK, a response can be made based on the configuration information of that first response group. For example, if the first response group is a new version, the business server can respond to the business request based on the new version. For instance, the identification information in the business request can represent information related to the initiated business request, and the first response group can represent information about the hit test group. Therefore, the identification information in the business request and the first response group can be used as test data for data analysis.
[0033] Therefore, a software development kit (SDK) can be integrated into the business server, and the SSD runs in the same process or container as the business server. This allows for local traffic splitting processing on the business server based directly on the SDK and test configuration files during testing. This eliminates the need for the business server to call the traffic splitting service via RPC, and also avoids waiting for the traffic splitting service to return hit response packets, thus avoiding response latency caused by network calls. This ensures efficient response to business requests while minimizing the impact of testing on business service performance. Furthermore, executing the traffic splitting logic locally on the business server also mitigates the impact of centralized traffic splitting service failures on the overall testing process, ensuring accurate and effective test execution.
[0034] In some cases, the software development kit includes a traffic splitting component for executing the traffic splitting logic. For example, this splitting component may embed an algorithm consistent with the traffic splitting service of the RPC call, including a hash algorithm for identification information, traffic layering and filtering logic, conditional judgments, and traffic allocation algorithms. This allows the traffic splitting component to support the execution of the traffic splitting logic in the first test configuration file.
[0035] Accordingly, the response to receiving a service request, determining a first response group based on the software development kit and the first test configuration file, may include: The identification information in the service request and the grouping information of the test group are determined. The identification information can be obtained by parsing the service request, and the grouping information of each test group can be obtained by parsing the first test configuration file. For example, the grouping information may include a group identifier for the test group to uniquely identify it.
[0036] The traffic splitting logic is executed based on the traffic splitting component, the identification information, and the grouping information to determine the first response group.
[0037] For example, the routing logic can be executed based on the grouping component to match the test group identified by the identifier information in the business request. For instance, if the routing logic is a hash algorithm based on the identifier information, then after obtaining the identifier information, a hash calculation can be performed on the identifier information using the hash algorithm in the routing component to obtain a hash value. This hash value can then be used as the test group identified by the group identifier and determined as the first response group.
[0038] Therefore, the traffic splitting logic can be implemented by embedding a grouping component in the software development kit. This allows the same traffic splitting process as the traffic splitting service that executes RPC calls locally on the business server side, without the need for network calls. This avoids situations where business requests become unresponsive due to RPC call traffic splitting service failures, reduces bandwidth consumption on the business server side, and ensures the stable operation of business services.
[0039] In some cases, the first test configuration file includes filtering conditions used to determine the business requests to be tested; the method further includes: In response to receiving the service request, based on the identification information in the service request and the filtering conditions, it is determined whether the service request is used for testing.
[0040] For example, in some scenarios, product iteration and optimization can be performed first based on a subset of device models, and then testing can be conducted on other models after the initial testing is complete. Therefore, the filter conditions can include the device models used for testing. Correspondingly, the device model corresponding to a business request can be obtained by parsing the request. If the device model in the business request belongs to one of the device models in the filter conditions, then the business request is determined to be used for testing. If the device model in the business request does not belong to one of the device models in the filter conditions, then the business request is determined not to be used for testing.
[0041] If it is determined that the business request is for testing, then the step of determining the response group based on the software development kit and the first test configuration file is executed to respond to the business request. If it is determined that the business request is not for testing, then a response can be directly given based on the default configuration of the business server. The default configuration can be set based on the actual application scenario, and there are no restrictions on it.
[0042] Therefore, filtering conditions can be used to select business requests, so that the test process can be executed based on the business requests required by the test scenario, thereby improving the accuracy of test results.
[0043] In some cases, the first test configuration file is stored in the cache of the business server. The first test configuration file represents all the test metadata required by the current business service. Therefore, when the business server receives a business request, it can call the traffic splitting interface. The traffic splitting interface is used by the business server to determine the first response group. This traffic splitting interface can be a unified interface compatible with RPC calls to the traffic splitting service. That is, the traffic splitting interface can call the SDK or the traffic splitting service via RPC. The implementation of the traffic splitting interface can be configured based on specific scenarios. Therefore, configuring the implementation of the traffic splitting interface to call the SDK allows the business server to quickly switch from RPC calls to the traffic splitting service to local calls to the SDK based on the traffic splitting interface, to call the grouping component in the SDK, and directly obtain the first test configuration file from the cache, so as to directly execute the traffic splitting logic based on the traffic splitting component in the first test configuration file.
[0044] Accordingly, the first test configuration file is obtained in the following way: The agent process pulls a second test configuration file from the storage platform, which represents the latest version of the test configuration file in the storage platform.
[0045] For example, test configuration files may be modified during testing, necessitating synchronization and updates to the test configuration files used by the business server. This can be achieved through a proxy process. The proxy process can be implemented using an agent, deployed within the software development kit (SDK) or within the business server's container, allowing it to start automatically upon business server startup, thus ensuring the real-time availability of the business server's test configuration files.
[0046] In some cases, test configuration can be performed within a test configuration platform. This includes creating new tests or modifying existing ones. This can be achieved based on existing test configuration platforms and test configuration file generation methods, and is not limited to any particular method. For example, after test configuration or modification, test metadata can be packaged into a test configuration file to compress the metadata and improve the transmission efficiency of the test configuration file.
[0047] Accordingly, after generating the test configuration file, the test configuration file can be pushed to a storage platform, which can be a highly available distributed storage system or a distributed coordination service, thereby enabling data distribution to be moved to the storage platform.
[0048] As an example, the agent process can pull data from the storage platform at preset intervals. As another example, when configuring a test, the test category can be configured, so the generated test configuration file can be associated with a test category when published to the storage platform. For example, this test category can be based on business lines, such as the test configuration file for test A1 being classified as business line Y1, the test configuration file for test A2 being classified as business line Y1, and the test configuration file for test A3 being classified as business line Y2. Accordingly, the step of pulling the second test configuration file from the storage platform based on the agent process can include: Determine the test category subscribed to by the service to which the business request belongs.
[0049] For example, each business service can pre-configure its subscribed test categories, which can be maintained through the agent process. Subscribed test categories can be added or removed. For instance, the current business service subscribes to test categories Y1 and Y2.
[0050] The agent process retrieves test configuration files under the aforementioned test categories from the storage platform, using them as the second test configuration files. The agent process can communicate with the storage platform to obtain the test configuration files for test categories Y1 and Y2.
[0051] As an example, the test configuration files for each test under a subscribed test category can be loaded as a second test configuration file onto the business server. As another example, for each test under a subscribed test category, if the business server does not store the test configuration file for that test, then that test configuration file is used as the second test configuration file. If the business server stores the test configuration file for the test, and the version of the test configuration file in the storage platform is higher than the version of the test configuration file on the business server, then the test configuration file for that test is used as the second test configuration file to pull the latest version from the storage platform.
[0052] Therefore, test configuration files in the business server can be synchronized through a proxy process. Each service only needs to receive and load test configuration files under its own subscribed test categories, avoiding invalid storage and parsing caused by loading a large number of test configuration files, thus optimizing resource utilization efficiency. Simultaneously, it ensures the accuracy and validity of the first response group determined based on the SDK and test configuration files, improving the accuracy of test data and consequently enhancing the reliability of test results obtained from data analysis. This provides effective data support for service iteration and optimization based on test results.
[0053] Then, an effective test configuration file is generated based on the second test configuration file, and the effective test configuration file is stored in the local storage resources of the business server. For example, the local storage resources may include shared memory or local disk.
[0054] Then, the effective test configuration file is loaded into the cache of the business server as the first test configuration file.
[0055] Therefore, through this publish-subscribe asynchronous model, the updating of test configuration files is completely decoupled from the distribution and processing of business requests, greatly improving the robustness of the business system. Even if the distribution chain of test configuration files experiences a brief failure, the business server can still continue to provide services using the locally cached test configuration files via the SDK, ensuring business continuity.
[0056] In some cases, generating an effective test configuration file based on the second test configuration file includes: If no effective test configuration file is stored in the local storage resource, then the second test configuration file will be used as the effective test configuration file. For example, after initially pulling the test configuration file from the storage platform, if there is no used test configuration file in the local storage resource, the pulled second test configuration file can be directly used as the effective test configuration file.
[0057] If a valid test configuration file is stored in the local storage resource, the second test configuration file and the valid test configuration file are merged, and the merged test configuration file is used as the valid test configuration file.
[0058] As an example, if the second test configuration file contains all the information used for testing, then the second test configuration file can be used as the effective test configuration file.
[0059] As an example, if the second test configuration file contains incremental information about the modifications used for testing, the second test configuration file and the effective test configuration file can be merged. For example, a copy of the effective test configuration file can be created first, and then it can be merged with the incremental information to obtain an updated, complete test configuration file. The merged test configuration file can then be used as the effective test configuration file.
[0060] Therefore, the effective test configuration file in the business server can be quickly obtained based on the second configuration file pulled from the storage platform. This allows the updated test configuration file to be obtained in real time on the business server after a test update, enabling traffic distribution based on the updated test configuration file, improving the accuracy of the obtained test data, and thus ensuring the reliability of the test results.
[0061] In some cases, as test grouping and test complexity increase, the size of the generated second test configuration file package may become quite large. To facilitate the transmission of the second test configuration file, it can be split into multiple sub-files. Therefore, after receiving multiple sub-files, the complete test configuration file can be obtained according to the test configuration file processing rules. Accordingly, the second test configuration file can be validated to determine if it is a complete file. If the validation passes, the step of generating an effective test configuration file based on the second test configuration file is executed.
[0062] In some cases, the method further includes: If the first test configuration file is abnormal, the previously effective test configuration file is retrieved from the local storage resources, and the previously effective test configuration file is loaded into the cache as the new first test configuration file.
[0063] For example, an abnormal operating environment might cause the first test configuration file in the cache to malfunction, such as failing to load or run. To ensure the stability of business services under extreme conditions and the smoothness of business migration, the previously effective test configuration file can be loaded from local storage resources into the cache to continue responding to business requests based on the previously effective test configuration file. For instance, if the current version of the first test configuration file in the cache is V2, and it malfunctions, the previously effective test configuration file can be retrieved from local storage resources, such as version V1, and loaded into the cache as the first test configuration file. Then, the response to business requests can be determined based on the version V1 test configuration file, maintaining the continuity of business operations, forming a multi-layered disaster recovery, and ensuring effective traffic distribution for business services.
[0064] In some cases, if the configuration parameters of the first response group contain a first parameter with a missing parameter value, an empty value or a default value can be used as the parameter value of the first parameter. The default value can be a pre-configured value. This makes the format of the configuration parameters of the first response group complete and avoids the impact of missing parameter values in the configuration parameters on the operation of business services.
[0065] In some cases, if there is no available test configuration file in the storage resources, the first response group is determined by calling the traffic distribution service via RPC to ensure the normal response of the business service.
[0066] In some cases, the data analysis based on the identification information in the service request and the first response packet may include: A data record is generated based on the identification information and the first response group.
[0067] For example, when a business request hits the first response group, a data record can be generated. This data record can contain multiple record fields, which must at least include identification information and the group identifier of the first response group. The data record can also contain other fields, which can be configured based on specific application scenarios. For example, the data record may contain user attributes corresponding to the business request, device identifier, version identifier of the business service, and group identifier of the first response group.
[0068] The data records are then stored in the local storage resources of the business server. For example, the data records can be written to a local log file or a memory queue.
[0069] The data records are asynchronously reported to a data analysis platform, which is used for data analysis. For example, a software development kit (SDK) may include a data collection component, which can be used to implement the process of generating and asynchronously reporting the data records.
[0070] To ensure the accuracy of test result analysis, data records generated during local traffic splitting on the business server need to be reported to the data analysis platform for unified analysis. Here, after obtaining the data records, they can be temporarily stored in local storage resources and reported asynchronously to avoid consuming network bandwidth by reporting large amounts of data records, thus ensuring the performance of the business service.
[0071] In some cases, the method may further include: Obtain the runtime information of the software development kit (SDK). This runtime information may include multiple runtime metrics, which can be set based on the actual application scenario. For example, runtime metrics may include the time consumed by the corresponding traffic splitting process of the SDK, memory usage, and the success rate of loading the first test configuration file. This allows for characterizing the SDK's runtime process based on runtime metrics, enabling alerts when the SDK malfunctions. For instance, this runtime information can also be stored in the local storage resources of the business server and then asynchronously reported to the data analysis platform.
[0072] In some cases, the asynchronous reporting of the data records to a data analysis platform, which is used for data analysis, may include: In response to determining that the network bandwidth utilization rate corresponding to the business server is less than a first threshold, the data record is reported to the data analysis platform.
[0073] The first threshold can be configured based on the actual application scenario. When the network bandwidth utilization rate corresponding to the business server is less than the first threshold, it indicates that there is sufficient available network bandwidth on the business server, and data from local storage resources can be reported to the data analysis platform. For example, data records and operational information can be stored in local storage resources through a local proxy or log collection component and reported to the data analysis platform asynchronously, such as through a message queue architecture. This effectively reduces the impact of data reporting on business service performance while simultaneously enabling the test data analysis process.
[0074] like Figure 2The diagram illustrates the architecture of an intelligent data analysis method under several scenarios. Test configuration files are obtained through a test configuration platform, which can then publish these files to a storage platform via a publisher. The business server integrates a software development kit (SDK) and an agent process. The agent process retrieves the latest test configuration files from the storage platform and uses the SSD to generate effective test configuration files based on these files, storing them in local storage resources. These effective test configuration files are then loaded into the cache. Furthermore, the data collected from the tests can be asynchronously reported to the data analysis platform using the data collection component within the SSD. The data analysis platform may include a preprocessing component for cleaning and aggregating the received data, which is then analyzed by the analysis component to obtain the test results.
[0075] In some cases, for existing services, the determination of the response group corresponding to a service request is based on an RPC call routing service. To achieve service migration, the method may further include: In response to receiving the business request, a traffic splitting service is invoked based on a remote call service. The traffic splitting service is used to determine a second response group for the business request based on a third test configuration file, which represents the test configuration file that is active in the traffic splitting service.
[0076] For example, upon receiving a business request, a first response packet can be determined based on the SDK integrated in the business server, and a second response packet can be determined based on the RPC call routing service. Therefore, by comparing whether the first and second response packets are consistent, it can be determined whether to switch to responding to the business request based on the SDK integrated in the business server.
[0077] If the number of consecutively received valid service requests reaches the second threshold, the call to the traffic splitting service will be stopped. The valid service requests refer to service requests that are the same as the first response group and the second response group.
[0078] For example, a business request initiated within a specified time period can simultaneously invoke both the SDK and RPC call routing service integrated in the business server. If the determined first response group and second response group are consistent, the corresponding business request is considered a valid business request. If the number of consecutively received valid business requests reaches a second threshold, it indicates that the routing processing results achieved by invoking the SDK and RPC call routing service integrated in the business server are the same. At this point, the invocation of the routing service can be stopped, i.e., switching to determining the first response group based on the SDK integrated in the business server, to improve the response efficiency of the business request.
[0079] Therefore, by comparing whether the first response packet determined by the SDK integrated in the business server is consistent with the second response packet determined by the RPC call routing service, the system can automatically switch to routing based on the SDK integrated in the business server. This ensures the accuracy of the response packet for the business request, reduces the network bandwidth consumption of the business server, improves the efficiency of determining the response packet, and reduces the latency of the business request response.
[0080] Figure 3 The diagram shown is a block diagram of an intelligent data analysis device based on some scenarios. The intelligent data analysis device 30 includes: The determination module 31 is used to determine a first response group based on a software development kit (SDK) and a first test configuration file in response to a received business request. The SSD is integrated in the business server and runs in the same process or container as the business server. The first test configuration file contains multiple test groups and routing logic for responding to the business request. The first response group is one of the test groups determined based on the routing logic. The first response group is used to respond to the business request. Analysis module 32 is used to perform data analysis based on the identification information in the business request and the first response group.
[0081] Therefore, a software development kit (SDK) can be integrated into the business server, and the SSD runs in the same process or container as the business server. This allows for local traffic splitting processing on the business server based directly on the SDK and test configuration files during testing. This eliminates the need for the business server to call the traffic splitting service via RPC, and also avoids waiting for the traffic splitting service to return hit response packets, thus avoiding response latency caused by network calls. This ensures efficient response to business requests while minimizing the impact of testing on business service performance. Furthermore, executing the traffic splitting logic locally on the business server also mitigates the impact of centralized traffic splitting service failures on the overall testing process, ensuring accurate and effective test execution.
[0082] Optionally, the first test configuration file is stored in the cache of the business server; the first test configuration file is obtained through a configuration module, the configuration module comprising: The pull submodule is used to pull a second test configuration file from the storage platform based on the agent process. The agent process is deployed in the software development kit or in the container of the business server. The second test configuration file represents the latest version of the test configuration file in the storage platform. A generation submodule is used to generate an effective test configuration file based on the second test configuration file, and store the effective test configuration file in the local storage resources of the business server. The loading submodule is used to load the effective test configuration file as the first test configuration file into the cache of the business server.
[0083] Optionally, the pull submodule is used for: Determine the test category subscribed to by the service to which the business request belongs; The agent process pulls the test configuration files under the test category from the storage platform as the second test configuration files.
[0084] Optionally, the generation submodule is used for: If the local storage resource does not store a valid test configuration file, then the second test configuration file will be used as the valid test configuration file. If a valid test configuration file is stored in the local storage resource, the second test configuration file and the valid test configuration file are merged, and the merged test configuration file is used as the valid test configuration file.
[0085] Optionally, the intelligent data analysis device 30 further includes: The acquisition module is used to retrieve the previously effective test configuration file from the local storage resource if the first test configuration file is abnormal, and load the previously effective test configuration file as the new first test configuration file into the cache.
[0086] Optionally, the software development kit includes a traffic offloading component; The determining module 31 is used for: Determine the identification information in the service request and the grouping information of the test group; The traffic splitting logic is executed based on the traffic splitting component, the identification information, and the grouping information to determine the first response group.
[0087] Optionally, the analysis module 32 is used for: Data records are generated based on the identification information and the first response group; The data records are stored in the local storage resources of the business server; The data records are asynchronously reported to the data analysis platform, which is used for data analysis.
[0088] Optionally, the intelligent data analysis device 30 further includes: The calling module is used to respond to the received business request by calling the traffic splitting service based on the remote call service. The traffic splitting service is used to determine the second response group of the business request based on the third test configuration file. The third test configuration file is used to represent the test configuration file that is effective in the traffic splitting service. The processing module is used to stop calling the traffic splitting service if the number of consecutively received valid service requests reaches a second threshold. The valid service requests refer to service requests that are the same as the first response group and the second response group.
[0089] The following is for reference. Figure 4 The diagram illustrates the structure of an electronic device (e.g., a server) 400 suitable for implementing the above-described technical solutions. Terminal devices may include, but are not limited to, mobile terminals such as mobile phones, laptops, digital radio receivers, PDAs (Personal Digital Assistants), PADs (Tablet Personal Computers), PMPs (Portable Media Players), in-vehicle terminals (e.g., in-vehicle navigation terminals), and fixed terminals such as digital TVs (Televisions), desktop computers, etc. Figure 4 The electronic device shown is merely an example and should not be construed as limiting its functionality or scope of use.
[0090] like Figure 4 As shown, electronic device 400 may include a processing unit (e.g., a central processing unit, a graphics processing unit, etc.) 401, which can perform various appropriate actions and processes according to a program stored in read-only memory (ROM) 402 or a program loaded from storage device 408 into random access memory (RAM) 403. The random access memory 403 also stores various programs and data required for the operation of electronic device 400. The processing unit 401, ROM 402, and RAM 403 are interconnected via bus 404. Input / output (I / O) interface 405 is also connected to bus 404.
[0091] Typically, the following devices can be connected to the input / output interface 405: input devices 406 including, for example, a touchscreen, touchpad, keyboard, mouse, camera, microphone, accelerometer, gyroscope, etc.; output devices 407 including, for example, a liquid crystal display (LCD), speaker, vibrator, etc.; storage devices 408 including, for example, magnetic tape, hard disk, etc.; and communication devices 409. Communication device 409 allows electronic device 400 to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 4 An electronic device 400 with various devices is shown; however, it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented or possessed alternatively.
[0092] In particular, depending on certain circumstances, the processes described in the above-referenced flowchart can be implemented as computer software programs. For example, a computer program product is provided, comprising a computer program carried on a non-transitory computer-readable medium, the computer program containing program code for performing the methods shown in the flowchart. This computer program can be downloaded and installed from a network via communication device 409, or installed from storage device 408, or installed from read-only memory 402. When the computer program is executed by processing device 401, it performs the functions defined in the above-described methods.
[0093] It should be noted that the aforementioned computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium, or any combination thereof. A computer-readable storage medium may be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM, or flash memory), optical fiber, portable compact disc read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In one case, a computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. In another case, a computer-readable signal medium may include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. The transmitted data signal can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. The computer-readable signal medium can also be any computer-readable medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (Radio Frequency), etc., or any suitable combination thereof.
[0094] In some implementations, clients and servers can communicate using any currently known or future-developed network protocol, such as HTTP (Hypertext Transfer Protocol), and can interconnect with digital data communication (e.g., communication networks) of any form or medium. Examples of communication networks include local area networks (LANs), wide area networks (WANs), the internet (e.g., the Internet), and peer-to-peer networks (e.g., ad-hoc peer-to-peer networks), as well as any currently known or future-developed networks.
[0095] The aforementioned computer-readable medium may be included in the aforementioned electronic device; or it may exist independently and not assembled into the electronic device.
[0096] The aforementioned computer-readable medium carries one or more programs. When the electronic device executes the aforementioned one or more programs, the electronic device causes the following actions in response to receiving a service request: determining a first response group based on a software development kit (SDK) and a first test configuration file. The SSD is integrated into a service server and runs in the same process or container as the service server. The first test configuration file contains multiple test groups and routing logic for responding to the service request. The first response group is one of the test groups determined based on the routing logic and is used to respond to the service request. The first response group also performs data analysis based on the identification information in the service request and the first response group.
[0097] Computer program code for performing the above operations can be written in one or more programming languages or a combination thereof. These programming languages include, but are not limited to, object-oriented programming languages, as well as conventional procedural programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0098] The flowcharts and block diagrams in the accompanying figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products under various scenarios. In this respect, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the figures. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0099] The modules mentioned above can be implemented in software or hardware. In some cases, the name of a module does not necessarily limit the module itself; for example, a module can also be described as "a module that, in response to a received business request, determines a first response group based on the software development kit and a first test configuration file."
[0100] The functions described above can be performed, at least in part, by one or more hardware logic components. For example, exemplary types of hardware logic components that can be used, without limitation, include: Field-Programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application-Specific Standard Parts (ASSPs), Systems on Chips (SoCs), Complex Programmable Logic Devices (CPLDs), and so on.
[0101] In this context, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0102] The above description is merely illustrative and explains the technical principles employed. Those skilled in the art should understand that the scope of the technical solution is not limited to specific combinations of the above-described technical features, but also includes other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above concept. For example, technical solutions formed by substituting the above-described features with (but not limited to) technical features provided herein that have similar functions.
[0103] Furthermore, while the operations are described in a specific order, this should not be construed as requiring these operations to be performed in the specific order shown or in a sequential order. Multitasking and parallel processing may be advantageous in certain environments. Similarly, although some specific implementation details are included in the above discussion, these should not be interpreted as limitations on the scope of the technical solution. Certain features described in the context of a single example can also be implemented in combination in a single example. Conversely, various features described in the context of a single example can also be implemented individually or in any suitable sub-combination in multiple examples.
[0104] Although the technical solution has been described using language specific to structural features and / or methodological logic, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are merely illustrative examples of implementing the claims. Regarding the aforementioned apparatus, the specific manner in which each module performs its operation has already been described in detail in the section concerning the method, and will not be elaborated upon here.
Claims
1. An intelligent data analysis method, comprising: determining a first response group based on a software development kit and a first test configuration file in response to receiving a service request, the software development kit being integrated in a service server, the software development kit and the service server running in a same process or container, the first test configuration file containing a plurality of test groups and a shunting logic for responding to the service request, the first response group being one of the test groups determined based on the shunting logic, the first response group being used to respond to the service request; performing data analysis based on identification information in the service request and the first response group.
2. The method of claim 1, the first test configuration file being stored in a cache of the service server; the first test configuration file being obtained by: pulling a second test configuration file from a storage platform based on an agent process, the agent process being deployed in the software development kit or the agent process being deployed in a container of the service server, the second test configuration file representing a latest version of test configuration file in the storage platform; generating an effective test configuration file according to the second test configuration file and storing the effective test configuration file in a local storage resource of the service server; loading the effective test configuration file as the first test configuration file into the cache of the service server.
3. The method of claim 2, the pulling of the second test configuration file from the storage platform based on the agent process comprising: determining a test category to which a service to which the service request belongs subscribes; pulling a test configuration file under the test category from the storage platform as the second test configuration file based on the agent process.
4. The method of claim 2, the generating of the effective test configuration file according to the second test configuration file comprising: if no effective test configuration file is stored in the local storage resource, taking the second test configuration file as the effective test configuration file; if an effective test configuration file is stored in the local storage resource, merging the second test configuration file and the effective test configuration file, and taking the merged test configuration file as the effective test configuration file.
5. The method of claim 2, further comprising: if the first test configuration file is abnormal, obtaining a last effective test configuration file from the local storage resource, and loading the last effective test configuration file as a new first test configuration file into the cache.
6. The method of claim 1, the software development kit containing a shunting component; the determining of the first response group based on the software development kit and the first test configuration file in response to receiving the service request comprising: determining identification information in the service request and group information of the test groups; executing the shunting logic based on the shunting component, the identification information and the group information to determine the first response group. 7.The method of claim 1, wherein the data analysis based on the identification information in the service request and the first response packet comprises: generating a data record based on the identification information and the first response packet; storing the data record into a local storage resource of the service server; and reporting the data record to a data analysis platform asynchronously, the data analysis platform being configured to perform data analysis. 8.The method of claim 1, further comprising: in response to receiving the service request, invoking a shunting service based on a remote invocation service, the shunting service being configured to determine a second response packet of the service request based on a third test configuration file, the third test configuration file being configured to represent a test configuration file in effect in the shunting service; and stopping invoking the shunting service if a number of valid service requests received consecutively reaches a second threshold, the valid service request being configured to represent a service request with the same first response packet and the same second response packet. 9.An intelligent data analysis apparatus, comprising: a determination module configured to determine a first response packet based on a software development kit and a first test configuration file in response to receiving a service request, the software development kit being integrated in a service server, the software development kit being run in a same process or container as the service server, the first test configuration file comprising a plurality of test packets and shunting logic for responding to the service request, the first response packet being one of the test packets determined based on the shunting logic, the first response packet being configured to respond to the service request; and an analysis module configured to perform data analysis based on identification information in the service request and the first response packet. The computer program, when executed by the processing apparatus, implements the steps of the method of any one of claims 1-8. 11.An electronic device, comprising: a storage device having a computer program stored thereon; and a processing apparatus configured to execute the computer program in the storage device to implement the steps of the method of any one of claims 1-8. The computer program, when executed by the processing apparatus, implements the steps of the method of any one of claims 1-8. The computer program, when executed by the processing apparatus, implements the steps of the method of any one of claims 1-8. 10. A computer readable medium having stored thereon a computer program, wherein, 12. A computer program product comprising a computer program, wherein,