CN108628719B - Application data acquisition method, medium, device and computing equipment - Google Patents

Application data acquisition method, medium, device and computing equipment Download PDF

Info

Publication number
CN108628719B
CN108628719B CN201810353220.0A CN201810353220A CN108628719B CN 108628719 B CN108628719 B CN 108628719B CN 201810353220 A CN201810353220 A CN 201810353220A CN 108628719 B CN108628719 B CN 108628719B
Authority
CN
China
Prior art keywords
tracking unit
stack
data tracking
data
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810353220.0A
Other languages
Chinese (zh)
Other versions
CN108628719A (en
Inventor
陈咨余
焦智慧
张晓龙
陈谔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Netease Shuzhifan Technology Co ltd
Original Assignee
Hangzhou Langhe Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Langhe Technology Co Ltd filed Critical Hangzhou Langhe Technology Co Ltd
Priority to CN201810353220.0A priority Critical patent/CN108628719B/en
Publication of CN108628719A publication Critical patent/CN108628719A/en
Application granted granted Critical
Publication of CN108628719B publication Critical patent/CN108628719B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring

Abstract

The embodiment of the invention provides an application data acquisition method, medium, device and computing equipment. The method for acquiring the application data comprises the following steps: a probe-capture-data-based tracking unit; storing a data tracking unit captured by the probe into a stack; acquiring a user-defined data tracking unit, and storing the user-defined data tracking unit into the stack; and acquiring application data based on a data tracking unit in the stack. The technical scheme of the embodiment of the invention can combine the data tracking unit captured by the probe and the user-defined data tracking unit to obtain the application data, thereby avoiding the great invasion to the program source code caused by only adopting the user-defined data tracking unit, solving the problem of poor flexibility caused by only adopting the probe mode, and improving the convenience and the flexibility of obtaining the application data.

Description

Application data acquisition method, medium, device and computing equipment
Technical Field
The embodiment of the invention relates to the technical field of communication and computers, in particular to an application data acquisition method, medium, device and computing equipment.
Background
This section is intended to provide a background or context to the embodiments of the invention that are recited in the claims. The description herein is not admitted to be prior art by inclusion in this section.
Application Performance Management (Application Performance Management) is a systematic solution to Application Performance Management and fault Management. The traditional monitoring system mainly monitors the resources of the service, and the application performance management platform is positioned on monitoring application indexes of the service, such as application load (throughput), response time, error rate and the like, and provides an effective troubleshooting and diagnosis tool on the basis, so that the operation and maintenance efficiency is improved.
Disclosure of Invention
However, how to flexibly and conveniently acquire the call data and the related data of the application is a key problem, and an effective solution is not available at present.
For this reason, an improved scheme for acquiring application data is highly required to improve the convenience and flexibility of application data acquisition.
In this context, embodiments of the present invention are intended to provide an application data acquisition method, medium, apparatus, and computing device.
In a first aspect of embodiments of the present invention, a method for acquiring application data is provided, including: a probe-capture-data-based tracking unit; storing a data tracking unit captured by the probe into a stack; acquiring a user-defined data tracking unit, and storing the user-defined data tracking unit into the stack; and acquiring application data based on a data tracking unit in the stack.
In some embodiments of the present invention, based on the foregoing scheme, storing the user-defined data tracking unit in the stack includes: acquiring a target data tracking unit from the stack; and storing the user-defined data tracking unit into the stack by taking the target data tracking unit as a father node.
In some embodiments of the present invention, based on the foregoing scheme, the target data tracking unit is a data tracking unit located at the top of the stack in the stack.
In some embodiments of the present invention, based on the foregoing scheme, storing the user-defined data tracking unit in the stack includes: and storing the user-defined data tracking unit as a stack top element in the stack so as to trigger a data acquisition process through the user-defined data tracking unit.
In some embodiments of the invention, based on the foregoing scheme, the stack is located in a shared global area.
In some embodiments of the present invention, based on the foregoing scheme, the method further comprises: and popping the data tracking unit out of the stack after the data tracking unit in the stack finishes data collection.
In some embodiments of the present invention, based on the foregoing solution, the probe-captured data tracking unit and the user-defined data tracking unit are developed based on the same set of SDKs and have the same data structure.
In some embodiments of the present invention, based on the foregoing solution, the user-defined data tracking unit is implemented by an SDK based on opentracking.
In a second aspect of embodiments of the present invention, there is provided a medium having a program stored thereon, which when executed by a processor, performs the method as described in the first aspect above.
In a third aspect of embodiments of the present invention, there is provided an apparatus for acquiring application data, including: the capturing unit is used for capturing a data tracking unit based on the probe and storing the data tracking unit captured by the probe into a stack; the first acquisition unit is used for acquiring a user-defined data tracking unit; the processing unit is used for storing the user-defined data tracking unit into the stack; and the second acquisition unit is used for acquiring the application data based on the data tracking unit in the stack.
In some embodiments of the present invention, based on the foregoing solution, the processing unit is configured to: acquiring a target data tracking unit from the stack; and storing the user-defined data tracking unit into the stack by taking the target data tracking unit as a father node.
In some embodiments of the present invention, based on the foregoing scheme, the target data tracking unit is a data tracking unit located at the top of the stack in the stack.
In some embodiments of the present invention, based on the foregoing solution, the processing unit is configured to: and storing the user-defined data tracking unit as a stack top element in the stack so as to trigger a data acquisition process through the user-defined data tracking unit.
In some embodiments of the invention, based on the foregoing scheme, the stack is located in a shared global area.
In some embodiments of the present invention, based on the foregoing scheme, the second obtaining unit is further configured to: and popping the data tracking unit out of the stack after the data tracking unit in the stack finishes data collection.
In some embodiments of the present invention, based on the foregoing solution, the probe-captured data tracking unit and the user-defined data tracking unit are developed based on the same set of SDKs and have the same data structure.
In some embodiments of the present invention, based on the foregoing solution, the user-defined data tracking unit is implemented by an SDK based on opentracking.
In a fourth aspect of embodiments of the present invention, there is provided a computing device comprising: a processor and a memory, the memory storing executable instructions, the processor being configured to invoke the memory stored executable instructions to perform the method according to the first aspect.
According to the acquisition method, the medium, the device and the computing equipment of the application data, the acquisition of the application data can be conveniently realized through the probe without changing codes and configuration files of software engineering by a user through the probe based on the probe capture data tracking unit; by acquiring the user-defined data tracking unit, the user can define the application data required to be acquired according to the requirement; by storing the data tracking unit captured by the probe and the user-defined data tracking unit into a stack, the application data captured based on the probe and the application data captured by the user-defined can be compatible with each other. Therefore, the technical scheme of the embodiment of the invention can combine the data tracking unit captured by the probe and the user-defined data tracking unit to acquire the application data, thereby avoiding the great invasion to the program source code caused by only adopting the user-defined data tracking unit, solving the problem of poor flexibility caused by only adopting the probe mode, and improving the convenience and the flexibility for acquiring the application data.
Drawings
The above and other objects, features and advantages of exemplary embodiments of the present invention will become readily apparent from the following detailed description read in conjunction with the accompanying drawings. Several embodiments of the invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which:
fig. 1 is a view schematically showing a scenario of an acquisition scheme of application data to which an embodiment of the present invention is applied;
FIG. 2 schematically shows a flow diagram of a method of acquisition of application data according to an embodiment of the invention;
FIG. 3 schematically shows a flow chart of a method of obtaining application data according to another embodiment of the invention;
FIG. 4 schematically illustrates a block diagram of a system for tracking application data in accordance with an embodiment of the present invention;
fig. 5 schematically shows a block diagram of an acquisition apparatus of application data according to an embodiment of the present invention.
In the drawings, the same or corresponding reference numerals indicate the same or corresponding parts.
Detailed Description
The principles and spirit of the present invention will be described with reference to a number of exemplary embodiments. It is understood that these embodiments are given solely for the purpose of enabling those skilled in the art to better understand and to practice the invention, and are not intended to limit the scope of the invention in any way. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art.
As will be appreciated by one skilled in the art, embodiments of the present invention may be embodied as a system, apparatus, device, method, or computer program product. Thus, the present invention may be embodied in the form of: entirely hardware, entirely software (including firmware, resident software, micro-code, etc.), or a combination of hardware and software.
According to the embodiment of the invention, an application data acquisition method, a medium, an apparatus and a computing device are provided.
In this context, it should be understood that the term "opentracking" is referred to as a set of distributed tracking open standards that enable developers to easily add (or replace) implementations of tracking systems by providing platform-independent, vendor-independent APIs (Application Programming interfaces).
The term "data tracking unit," or Span, is the basic unit of data tracking, indicating that work has been done and contains trace data when an RPC (Remote Procedure Call) Call arrives, each Span containing a TraceId. A Trace represents the execution process of a transaction or flow in a (distributed) system, and in the OpenTracing standard, a Trace is a directed acyclic graph composed of multiple spans, and each span represents a named and timed continuous execution segment in the Trace.
The term "probe" is a Web script program, which is a script file that is implemented by a Web programming language (such as javascript) to detect sensitive information, and is usually used to detect a website directory, a server operating system, the number of CPUs, Session timeout time, a server Session variable, a server Application variable, component support, computation speed, disk read/write speed, network connection speed, and the like. Of course, the "probe" may also be written in a high-level programming language, such as C language, C + + language, Java language, etc.
The term "stack", also known as stack, is an operation-constrained linear table whose constraints allow only insert and delete operations at one end of the table, called the top of the stack; the other end is referred to as the bottom of the stack, correspondingly. Inserting a new element into a stack, also called pushing, stacking or pushing, is to put the new element on the top element of the stack to make it become a new top element; deleting an element from a stack, also known as popping or popping, deletes the top-of-stack element, making its neighbors a new top-of-stack element.
Moreover, any number of elements in the drawings are by way of example and not by way of limitation, and any nomenclature is used solely for differentiation and not by way of limitation.
The principles and spirit of the present invention are explained in detail below with reference to several representative embodiments of the invention.
Summary of The Invention
The inventor finds that the current application performance management scheme cannot flexibly and conveniently acquire the call data and the related data of the application.
Therefore, embodiments of the present invention provide an application data acquisition method, medium, apparatus, and computing device, which may combine a data tracking unit captured by a probe and a user-defined data tracking unit to acquire application data, thereby avoiding a situation where a program source code is more intrusive due to a simple adoption of the user-defined data tracking unit, and simultaneously solving a problem of poor flexibility due to a simple adoption of the probe, and improving convenience and flexibility of application data acquisition.
Having described the general principles of the invention, various non-limiting embodiments of the invention are described in detail below.
Application scene overview
It should be noted that the following application scenarios are merely illustrated to facilitate understanding of the spirit and principles of the present invention, and the embodiments of the present invention are not limited in this respect. Rather, embodiments of the present invention may be applied to any scenario where applicable.
As shown in fig. 1, in a specific application scenario of the present invention, a span captured by a probe (i.e., a data tracking unit) and a span customized by a user through a code are both stored in a stack, so that the span captured by the probe and the span customized by the user can be combined to obtain application data, thereby avoiding a situation that a program source code is more intrusive due to a simple adoption of the span customized by the user, and simultaneously solving a problem of poor flexibility due to a simple adoption of the probe, and improving convenience and flexibility of application data acquisition.
Meanwhile, the user-defined span and the span captured by the probe can be realized based on the same set of SDK (Software Development Kit), so that the system can conveniently process the user-defined span.
Exemplary method
In the following, in conjunction with the above application scenarios, a method for acquiring application data according to an exemplary embodiment of the present invention is described with reference to fig. 2 to 4.
Fig. 2 schematically shows a flow chart of an acquisition method of application data according to an embodiment of the invention.
Referring to fig. 2, the method for acquiring application data according to an embodiment of the present invention includes steps S210 to S240, which are described below.
In step S210, the unit is tracked based on the probe capture data.
In an embodiment of the present invention, the probe may be written through a scripting language (e.g., JavaScript, etc.), or may be written through a high-level programming language, such as C language, C + + language, Java, etc. The data tracking unit is Span, and is a basic unit for data tracking.
In step S220, the data tracking unit captured by the probe is stored in a stack.
In one embodiment of the invention, the stack is located in a shared global area, so that the span captured by the probe and the user-defined span can be conveniently put into the stack.
In step S230, a user-defined data tracking unit is obtained and stored in the stack.
In an embodiment of the present invention, the data tracking unit defined by the user may be implemented by an SDK based on opentraining, which may further facilitate migration from other platforms supporting opentraining and also facilitate the platforms to support the user by using other resources of opentraining.
In an embodiment of the present invention, step S230 specifically includes: and acquiring a target data tracking unit from a stack, and storing the user-defined data tracking unit into the stack by taking the target data tracking unit as a father node. The technical scheme of the embodiment can conveniently fuse the data tracking unit customized by the user and the data tracking unit captured by the probe. Wherein the target data tracking cell may be the data tracking cell at the top of the stack.
In an embodiment of the present invention, a user-defined data tracking unit may also be stored in the stack as a stack top element, so as to trigger a data collection process by the user-defined data tracking unit. According to the technical scheme of the embodiment, the user can directly put the self-defined span on the stack top to trigger the collection process in the place where the span collection cannot be triggered originally.
Continuing with FIG. 2, in step S240, application data is obtained based on the data tracking unit in the stack.
The technical scheme of the embodiment shown in fig. 2 can combine the data tracking unit captured by the probe with the user-defined data tracking unit to acquire the application data, thereby avoiding the great invasiveness to the program source code caused by only adopting the user-defined data tracking unit, solving the problem of poor flexibility caused by only adopting the probe, and improving the convenience and flexibility of acquiring the application data.
In an embodiment of the invention, the data tracking unit captured by the probe and the user-defined data tracking unit can be developed based on the same set of SDK and have the same data structure, so that the system can be ensured to conveniently process the user-defined span.
In an embodiment of the present invention, as shown in fig. 3, the method for acquiring application data according to another embodiment of the present invention, based on the steps shown in fig. 2, may further include step S310, after any data tracking unit in the stack completes data collection, popping from the stack.
The following describes in detail various implementation details of the method for acquiring application data according to the embodiment of the present invention:
in the process of application performance management, if application data needs to be acquired, an invasive SDK mode and a probe mode can be adopted.
The intrusive SDK method needs to rely on the SDK, and defines a data tracking method by calling an SDK API, such as zipkin (distributed link call monitoring system). However, the use of the intrusive SDK needs to be based on destroying original engineering codes or configurations, that is, a user needs to embed relevant SDK codes at a specific code to define and obtain relevant calling information and application data, so that not only the functionality of the original codes is destroyed, but also a large number of similar modifications need to be made to increase the complexity of performance management of the access application, and in addition, some acquisition points may be missed.
The mode of the probe does not need a user to change codes and configuration files, and the acquisition of the application data can be realized only by adding certain parameters during starting. Taking Java as an example, namely, by using a Java byte engine mechanism, after Java byte codes are generated, the probe modifies the Java byte codes to enhance the functions of the Java byte codes, which is equivalent to modifying binary files of application programs. However, if a user has a need for monitoring a new component, the user needs to provide the need for a developer or develop a probe corresponding to the component by himself, and the development of the component probe has a high threshold and also needs a certain development period, and the probe is difficult to flexibly meet the user-defined needs of functions such as a special method and a timing task, that is, the mode of the probe cannot be customized or is difficult to customized tracking.
Therefore, the embodiment of the invention provides a technical scheme for combining the probe and the invasive SDK, so that a user can acquire the span of the application through the probe without any modification, and the user-defined span can be directly increased in a SDK mode to meet the user-defined requirement of the user.
As shown in fig. 4, the system for tracking application data according to the embodiment of the present invention mainly includes the following parts:
A. the OpenTracing API enables developers to conveniently add the implementation of a tracking system by providing platform-independent and vendor-independent APIs.
B. The SDK is realized, and the OpenTracing API is realized, so that the method can be directly provided for a user to track and acquire invasive application data.
C. And the probe is provided for the user to track and acquire the application data in a non-invasive manner.
D. And the application is the application which needs to acquire the application data.
Based on the system shown in fig. 4, referring to fig. 1, in the embodiment of the present invention, a stack may be put into a shared global area, a common probe may have a data structure similar to the stack, and each Trace may have its corresponding stack. The probe will put the collected span into this stack, where each span is the data for a certain RPC call or method. When a user uses the probe, the probe can automatically capture the span applied by the user, when a certain span starts to acquire data, the span is put into a stack, and when the span finishes acquiring the data, the span is popped out from the stack, so that the effect of associating the spans in the same Trace is achieved, and the spans form a tree-shaped structure integrally. If the user has the requirement of self-defining tracking function, the current span can be acquired from the stack top, then the acquired span is used as a parent span, the self-defined span is put into the stack, and the span is popped up after data collection is finished, so that the self-defined span is seamlessly combined with the span acquired by the probe. Meanwhile, in places such as timing tasks and the like where span acquisition cannot be triggered originally, a user can directly put a self-defined span on the stack top to trigger the whole acquisition.
In an embodiment of the invention, the user-defined span and the span acquired by the probe are both based on the same set of SDK and the same set of data structure, so that the server can conveniently process the user-defined span.
In an embodiment of the invention, in order to ensure that data acquired by a probe is compatible with data acquired by a user-defined span, the data acquisition method can be realized by adopting an SDK (software development kit) based on OpenTracing, so that a user can conveniently migrate from other platforms supporting OpenTracing, and the platform can conveniently support the user by utilizing other resources of OpenTracing. If the implementation of the opentraining SDK is performed first and then the implementation of the probe is performed through the SDK, so that the API of the data model is consistent with the opentraining standard of the open source, and the user can also obtain the application data in a manner of directly using the probe, that is, in the embodiment of the present invention, the manner of customizing the span and the probe by the user can be supported by one platform, thereby satisfying different requirements of the user.
According to the technical scheme of the embodiment of the invention, the SDK defined by the user is combined with the probe, so that the problem that the user-defined application information cannot be added due to the original mode of simply adopting the probe is solved, and the method is simple and convenient and gives consideration to the flexibility; meanwhile, a user can adopt a data acquisition mode of a user-defined span and a probe mode in one platform; in addition, for some users who already use the OpenTracing API, the platform can be conveniently migrated based on the technical scheme of the embodiment of the invention, and the flexibility is greatly improved.
Exemplary Medium
Having described the method of the exemplary embodiments of the present invention, the media of the exemplary embodiments of the present invention will be described next.
In some possible embodiments, aspects of the present invention may also be implemented as a medium having stored thereon program code for implementing, when executed by a processor of a device, the steps in the method for acquiring application data according to various exemplary embodiments of the present invention described in the above section "exemplary method" of this specification.
Specifically, the processor of the device, when executing the program code, is configured to implement the following steps: a probe-capture-data-based tracking unit; storing a data tracking unit captured by the probe into a stack; acquiring a user-defined data tracking unit, and storing the user-defined data tracking unit into the stack; and acquiring application data based on a data tracking unit in the stack.
In some embodiments of the invention, the program code is executable by a processor of the device to perform the steps of: acquiring a target data tracking unit from the stack; and storing the user-defined data tracking unit into the stack by taking the target data tracking unit as a father node.
In some embodiments of the present invention, based on the foregoing scheme, the target data tracking unit is a data tracking unit located at the top of the stack in the stack.
In some embodiments of the invention, the program code is executable by a processor of the device to perform the steps of: and storing the user-defined data tracking unit as a stack top element in the stack so as to trigger a data acquisition process through the user-defined data tracking unit.
In some embodiments of the invention, based on the foregoing scheme, the stack is located in a shared global area.
In some embodiments of the invention, the program code is further configured to, when executed by the processor of the device, perform the following steps: and popping the data tracking unit out of the stack after the data tracking unit in the stack finishes data collection.
In some embodiments of the present invention, based on the foregoing solution, the probe-captured data tracking unit and the user-defined data tracking unit are developed based on the same set of SDKs and have the same data structure.
In some embodiments of the present invention, based on the foregoing solution, the user-defined data tracking unit is implemented by an SDK based on opentracking.
It should be noted that: the above-mentioned medium may be a readable signal medium or a readable storage medium. The 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 (a non-exhaustive list) of the readable storage medium include: an electrical connection having one or more wires, a portable disk, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
A readable signal medium may include a propagated data signal with readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated data signal may take a variety of forms, including, but not limited to: an electromagnetic signal, an optical signal, or any suitable combination of the foregoing. A readable signal medium may also be any readable medium that is not a readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a readable medium may be transmitted using any appropriate medium, including but not limited to: wireless, wired, fiber optic cable, RF, etc., or any suitable combination of the foregoing.
Program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, C + + or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user computing device, partly on a remote computing device, or entirely on the remote computing device or server. In the case of a remote computing device, the remote computing device may be connected to the user computing device over any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computing device (e.g., over the internet using an internet service provider).
Exemplary devices
Having described the medium of an exemplary embodiment of the present invention, next, an acquisition apparatus of application data of an exemplary embodiment of the present invention will be described with reference to fig. 5.
Fig. 5 schematically shows a block diagram of an acquisition apparatus of application data according to an embodiment of the present invention.
Referring to fig. 5, an apparatus 500 for acquiring application data according to an embodiment of the present invention includes: a capture unit 502, a first acquisition unit 504, a processing unit 506 and a second acquisition unit 508.
The capturing unit 502 is used for capturing a data tracking unit based on a probe and storing the data tracking unit captured by the probe into a stack; the first obtaining unit 504 is configured to obtain a user-defined data tracking unit; the processing unit 506 is configured to store the user-defined data tracking unit in the stack; the second obtaining unit 508 is configured to obtain the application data based on the data tracking unit in the stack.
In some embodiments of the present invention, based on the foregoing solution, the processing unit 506 is configured to: acquiring a target data tracking unit from the stack; and storing the user-defined data tracking unit into the stack by taking the target data tracking unit as a father node.
In some embodiments of the present invention, based on the foregoing scheme, the target data tracking unit is a data tracking unit located at the top of the stack in the stack.
In some embodiments of the present invention, based on the foregoing solution, the processing unit 506 is configured to: and storing the user-defined data tracking unit as a stack top element in the stack so as to trigger a data acquisition process through the user-defined data tracking unit.
In some embodiments of the invention, based on the foregoing scheme, the stack is located in a shared global area.
In some embodiments of the present invention, based on the foregoing solution, the second obtaining unit 508 is further configured to: and popping the data tracking unit out of the stack after the data tracking unit in the stack finishes data collection.
In some embodiments of the present invention, based on the foregoing solution, the probe-captured data tracking unit and the user-defined data tracking unit are developed based on the same set of SDKs and have the same data structure.
In some embodiments of the present invention, based on the foregoing solution, the user-defined data tracking unit is implemented by an SDK based on opentracking.
Exemplary computing device
Having described the method, medium, and apparatus of exemplary embodiments of the present invention, a computing device in accordance with another exemplary embodiment of the present invention is described.
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or program product. Thus, various aspects of the invention may be embodied in the form of: an entirely hardware embodiment, an entirely software embodiment (including firmware, microcode, etc.) or an embodiment combining hardware and software aspects that may all generally be referred to herein as a "circuit," module "or" system.
In some possible implementations, a computing device according to an embodiment of the invention may include at least one processor, and at least one memory. Wherein the memory stores program code which, when executed by the processor, causes the processor to perform the steps in the acquisition method of application data according to various exemplary embodiments of the present invention described in the section "exemplary method" above in this specification. For example, the processor may perform step S210 as shown in fig. 2, tracking the unit based on the probe-captured data; step S220, storing the data tracking unit captured by the probe into a stack; step S230, acquiring a user-defined data tracking unit, and storing the user-defined data tracking unit into the stack; step S240, acquiring application data based on the data tracking unit in the stack. As another example, the processor may also perform the steps as shown in fig. 3.
It should be noted that although in the above detailed description several units or sub-units of the acquisition means of the application data are mentioned, such a division is merely exemplary and not mandatory. Indeed, the features and functions of two or more modules or units described above may be embodied in one module or unit according to embodiments of the invention. Conversely, the features and functions of one module or unit described above may be further divided into embodiments by a plurality of modules or units.
Moreover, while the operations of the method of the invention are depicted in the drawings in a particular order, this does not require or imply that the operations must be performed in this particular order, or that all of the illustrated operations must be performed, to achieve desirable results. Additionally or alternatively, certain steps may be omitted, multiple steps combined into one step execution, and/or one step broken down into multiple step executions.
While the spirit and principles of the invention have been described with reference to several particular embodiments, it is to be understood that the invention is not limited to the particular embodiments disclosed, nor is the division of the aspects, which is for convenience only as the features in these aspects may not be combined to benefit from the present disclosure. The invention is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.

Claims (10)

1. An application data acquisition method comprises the following steps:
capturing a data tracking unit of an application to be tracked based on a probe, wherein the data tracking unit comprises data of remote procedure calls or methods, the probe corresponds to a stack, and the stack is located in a shared global area;
storing a data tracking unit captured by the probe in the stack;
acquiring a user-defined data tracking unit, and storing the user-defined data tracking unit into the stack storing the data tracking unit captured by the probe, wherein the data tracking unit captured by the probe and the user-defined data tracking unit are developed based on the same set of SDK and have the same data structure;
acquiring application data of the application to be tracked based on a data tracking unit captured by the probe in the stack and a user-defined data tracking unit;
wherein storing the user-defined data tracking unit into the stack in which the data tracking unit captured by the probe is stored comprises:
acquiring a target data tracking unit from the stack in which the data tracking unit captured by the probe is stored; storing the user-defined data tracking unit into the stack by taking the target data tracking unit as a father node,
wherein storing the user-defined data tracking unit into the stack comprises:
and storing the user-defined data tracking unit as a stack top element in the stack so as to trigger a data acquisition process through the user-defined data tracking unit.
2. The method of claim 1, wherein the target data trace element is a data trace element at a top of a stack in the stack.
3. The method of claim 1, further comprising: and popping the data tracking unit out of the stack after the data tracking unit in the stack finishes data collection.
4. The method of claim 1, wherein the user-customized data tracking unit is implemented by an opentracking-based SDK.
5. A medium having stored thereon a program which, when executed by a processor, carries out the method of any one of claims 1 to 4.
6. An apparatus for acquiring application data, comprising:
the system comprises a capturing unit, a processing unit and a processing unit, wherein the capturing unit is used for capturing a data tracking unit of an application to be tracked based on a probe and storing the data tracking unit captured by the probe into a stack, the data tracking unit comprises data of remote procedure call or method, the probe corresponds to the stack, and the stack is positioned in a shared global area;
the system comprises a first acquisition unit, a second acquisition unit and a third acquisition unit, wherein the first acquisition unit is used for acquiring a user-defined data tracking unit, and the data tracking unit captured by the probe and the user-defined data tracking unit are developed based on the same set of SDK and have the same data structure;
the processing unit is used for storing the user-defined data tracking unit into the stack storing the data tracking unit captured by the probe;
the second acquisition unit is used for acquiring the application data of the application to be tracked based on the data tracking unit captured by the probe in the stack and the user-defined data tracking unit;
wherein the processing unit is configured to:
acquiring a target data tracking unit from the stack in which the data tracking unit captured by the probe is stored; storing the user-defined data tracking unit into the stack by taking the target data tracking unit as a father node,
the processing unit is further configured to:
and storing the user-defined data tracking unit as a stack top element in the stack so as to trigger a data acquisition process through the user-defined data tracking unit.
7. The apparatus of claim 6, wherein the target data trace element is a data trace element at a top of a stack in the stack.
8. The apparatus of claim 6, wherein the second obtaining unit is further configured to: and popping the data tracking unit out of the stack after the data tracking unit in the stack finishes data collection.
9. The apparatus of claim 6, wherein the user-customized data tracking unit is implemented by an OpenTracing-based SDK.
10. A computing device, comprising: a processor and a memory, the memory storing executable instructions, the processor to invoke the memory-stored executable instructions to perform the method of any of claims 1 to 4.
CN201810353220.0A 2018-04-19 2018-04-19 Application data acquisition method, medium, device and computing equipment Active CN108628719B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810353220.0A CN108628719B (en) 2018-04-19 2018-04-19 Application data acquisition method, medium, device and computing equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810353220.0A CN108628719B (en) 2018-04-19 2018-04-19 Application data acquisition method, medium, device and computing equipment

Publications (2)

Publication Number Publication Date
CN108628719A CN108628719A (en) 2018-10-09
CN108628719B true CN108628719B (en) 2022-01-11

Family

ID=63705605

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810353220.0A Active CN108628719B (en) 2018-04-19 2018-04-19 Application data acquisition method, medium, device and computing equipment

Country Status (1)

Country Link
CN (1) CN108628719B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111198774B (en) * 2018-10-31 2023-09-29 百度在线网络技术(北京)有限公司 Unmanned vehicle simulation anomaly tracking method, device, equipment and computer readable medium
CN111541590B (en) * 2020-07-08 2020-11-06 广州市玄武无线科技股份有限公司 Link monitoring method, alarm method, system, terminal and storage medium
CN112783734A (en) * 2021-02-02 2021-05-11 北京比特易湃信息技术有限公司 System suitable for front-end page performance and error index acquisition

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6782350B1 (en) * 2001-04-27 2004-08-24 Blazent, Inc. Method and apparatus for managing resources
US9135133B2 (en) * 2009-09-28 2015-09-15 Softlayer Technologies, Inc. Metric object tracking system
US9170917B2 (en) * 2011-04-01 2015-10-27 Paypal, Inc. Flow tracing though diverse logical and physical application and infrastructure layers/dependencies
CN107844325A (en) * 2017-10-27 2018-03-27 上海斐讯数据通信技术有限公司 The acquisition methods and system of a kind of distributed data

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9581438B2 (en) * 2012-12-31 2017-02-28 General Electric Company Systems and methods for control of a non-destructive testing system
US9588872B2 (en) * 2015-02-20 2017-03-07 Vmware, Inc. Discovery of code paths
CN106445484B (en) * 2015-08-12 2019-09-13 北京易数科技有限公司 The method and system of data tracking are realized by Software Development Kit
CN106487596B (en) * 2016-10-26 2019-12-13 宜人恒业科技发展(北京)有限公司 Distributed service tracking implementation method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6782350B1 (en) * 2001-04-27 2004-08-24 Blazent, Inc. Method and apparatus for managing resources
US9135133B2 (en) * 2009-09-28 2015-09-15 Softlayer Technologies, Inc. Metric object tracking system
US9170917B2 (en) * 2011-04-01 2015-10-27 Paypal, Inc. Flow tracing though diverse logical and physical application and infrastructure layers/dependencies
CN107844325A (en) * 2017-10-27 2018-03-27 上海斐讯数据通信技术有限公司 The acquisition methods and system of a kind of distributed data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Dapper, a Large-Scale Distributed Systems Tracing Infrastructure;Benjamin H. Sigelman 等;《Google Technical Report》;20100430;1-15 *

Also Published As

Publication number Publication date
CN108628719A (en) 2018-10-09

Similar Documents

Publication Publication Date Title
US20200167174A1 (en) System and method for identifying, indexing, and navigating to deep states of mobile applications
US10705811B2 (en) Method and system for automated, static instrumentation for applications designed for execution in environments with restricted resources, like mobile devices or TV set top boxes
US10481964B2 (en) Monitoring activity of software development kits using stack trace analysis
US8347272B2 (en) Call graph dependency extraction by static source code analysis
CN108628719B (en) Application data acquisition method, medium, device and computing equipment
US8572625B2 (en) Method and system for application migration using per-application persistent configuration dependency
US8863100B2 (en) Application services source refactoring
Shan et al. Finding resume and restart errors in android applications
Gianazza et al. Puppetdroid: A user-centric ui exerciser for automatic dynamic analysis of similar android applications
US10445214B2 (en) System and method for tracking callback functions for error identification
US10394561B2 (en) Mechanism for facilitating dynamic and efficient management of instruction atomicity volations in software programs at computing systems
CN106326017A (en) Realization system for call chain based on Annotation application
US20120066674A1 (en) Techniques for conditional deployment of application artifacts
CN113076253A (en) Test method and test device
CN111459499A (en) Program compiling method and device, computer storage medium and electronic equipment
CN108121650B (en) Method and device for testing page user interface
CN114579194B (en) Exception handling method and system based on Spring remote call
Sayagh et al. Multi-layer software configuration: Empirical study on wordpress
CN107943651B (en) Information acquisition method, medium, device and computing equipment
CN112395098A (en) Application program interface calling method and device, storage medium and electronic equipment
CN112463519A (en) Flatter-based page use behavior data non-buried point statistical method, equipment and storage medium
US11782797B2 (en) Achieving activity centric computing using portable containers
US10223238B1 (en) Multiple-stage crash reporting
CN111367796B (en) Application program debugging method and device
Kramer Droidspotter: a forensic tool for android location data collection and analysis

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou NetEase Shuzhifan Technology Co.,Ltd.

Address before: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: HANGZHOU LANGHE TECHNOLOGY Ltd.