Abstract:
Periodicity similarity between two different tracer objectives may be used to identify additional input parameters to sample. The tracer objectives may be individual portions of a large tracer operation, and each of the tracer objectives may have separate set of input objects for which data may be collected. After collecting data for a tracer objective, other tracer objectives with similar periodicities may be identified. The input objects from the other tracer objectives may be added to a tracer objective and the tracer objective may be executed to determine a statistical significance of the newly added objective. An iterative process may traverse multiple input objects until exhausting possible input objects and a statistically significant set of input objects are identified.
Abstract:
Dimensionality reduction, such as principal component analysis, may be performed against a time series of performance observations for a computer application. A visual representation of the results may be displayed in one, two, or three dimensions, and often show clusters of operational behavior. The representation may be animated to show a sequence of observations and how the behavior of an application may change from one cluster of operation to another. The representation may be further applied to show both a historical view of the observations and new observations. The time series may contain performance and operational data, as well as metadata observed from a computer application.
Abstract:
A computer monitoring system may predict near term and long term performance by comparing a segment of current time series data with previously observed time series to find matching segments. From a matching segment, a prediction of performance may be made by examining later observations in the time series. Each time series element may include a large number of parameters, and one mechanism for comparing segments may be treating the elements as multi-dimensional vectors and using cosine similarity for finding significant matches. A deployment mechanism may store time series segments in a searchable database, and search the database with a newly observed time series segment for matches.
Abstract:
An analysis system may perform network analysis on data gathered from an executing application. The analysis system may identify relationships between code elements and use tracer data to quantify and classify various code elements. In some cases, the analysis system may operate with only data gathered while tracing an application, while other cases may combine static analysis data with tracing data. The network analysis may identify groups of related code elements through cluster analysis, as well as identify bottlenecks from one to many and many to one relationships. The analysis system may generate visualizations showing the interconnections or relationships within the executing code, along with highlighted elements that may be limiting performance.
Abstract:
A module-specific tracing mechanism may trace the usage of a module on behalf of the module developer. The module may be used by multiple application developers, and the tracing system may collect and summarize data for the module in each of the different applications. The data may include usage data as well as performance data. Usage data may include anonymized data for each time the module may be invoked and called, and performance data may include the processing time, memory consumption, and other metrics. The module-specific tracing may be enabled or disabled by an application developer.
Abstract:
Error logs, bug reports, and other databases identifying problems with a tracer system may be mined to determine how a tracer may interact with a given function, module, or other group of functions. Based on such reports, a tracer may be configured to avoid certain functions or to trace such functions in a specific manner. In some cases, tracer may be configured to limit tracing to certain parameters or with other limitations to avoid any known conditions under which errors occur.
Abstract:
Highlighted objects may traverse a graph representing an application's code elements and relationships between those code elements. The highlighted objects may be animated to represent how the objects are processed in an application. The graph may represent code elements and relationships between the code elements, and the highlighting may be generated by tracing the application to determine the flow of the object through code elements and across relationships. A user may control the highlighted graph with a set of playback controls for playing through the sequence of highlights on the graph. The playback controls may include pause, rewind, forward, fast forward, and other controls. The controls may also include a step control which may step through small time increments.
Abstract:
A configurable memory allocation and management system may generate a configuration file with memory settings that may be deployed at runtime. An execution environment may capture a memory allocation boundary, look up the boundary in a configuration file, and apply the settings when the settings are available. When the settings are not available, a default set of settings may be used. The execution environment may deploy the optimized settings without modifying the executing code.
Abstract:
An instrumented execution environment may connect to an execution environment to provide detailed tracing and logging of an application as it runs. The instrumented execution environment may be configured as a standalone service that can be configured and purchased. The instrumented execution environment may be deployed with various authentication systems, administrative user interfaces, and other components. The instrumented execution environment may engage a customer's system through a distributor that may manage a workload and distribute work to the instrumented execution environment as well as other worker systems. A marketplace may provide multiple preconfigured execution environments that may be selected, further configured, and deployed to address specific data collection objectives.
Abstract:
A tracer may obfuscate trace data such that the trace data may be used in an unsecure environment even though raw trace data may contain private, confidential, or other sensitive information. The tracer may obfuscate using irreversible or lossy hash functions, look up tables, or other mechanisms for certain raw trace data, rendering the obfuscated trace data acceptable for transmission, storage, and analysis. In the case of parameters passed to and from a function, trace data may be obfuscated as a group or as individual parameters. The obfuscated trace data may be transmitted to a remote server in some scenarios.