# US 10,482,072 B2 · Cloud-based platform instrumentation and monitoring system for maintenance of user-configured programs

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,482,072 B2
- Document ID: US10482072B2
- Status: Granted
- Kind: B2
- Application number: 15/013,483
- Filed: 2016-02-02
- Published: 2017-08-03
- Granted: 2019-11-19
- Earliest claimed: 2016-02-02
- Assignees: ServiceNow, Inc.
- Applicants: ServiceNow, Inc.
- Inventors: Jared Laethem
- Web page: https://patentgrep.com/patent/US10482072B2

## CPC

- G06F 16/22: Indexing; Data structures therefor; Storage structures
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 11/3419: {by assessing time}
- G06F 11/3452: {Performance evaluation by statistical analysis}
- G06F 11/3466: {Performance evaluation by tracing or monitoring}
- G06F 11/3612: {by runtime analysis (performance monitoring G06F11/3466)}
- G06F 11/3616: {using software metrics}
- G06F 11/3636: {by tracing the execution of the program}
- G06F 16/2255: {Hash tables}
- G06F 16/954: Navigation, e.g. using categorised browsing
- G06F 16/9577: {Optimising the visualization of content, e.g. distillation of HTML documents}
- G06F 11/323: {Visualisation of programs or trace data}
- G06F 2201/86: Event-based monitoring
- G06F 2201/875: Monitoring of systems including the internet
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods for using instrumentation for maintaining user-configured programs in a cloud computing environment are herein disclosed as comprising, in an implementation, intercepting operation data pertaining to the user-configured program, including a start time, an execution time interval, and an origin of the operation, canonicalizing the intercepted operation data by stripping operation-specific variable data from the operation data, aggregating the canonicalized operation data based on the start time, the canonicalized operation data, and the origin of the operation, and storing the aggregated operation data within a time series database in the execution time interval based on the start time.

## Claims

### Claim 1

A cloud computing system, comprising:
a server comprising a processor and a memory, wherein the memory includes code executable by the processor comprising:
platform software comprising at least an application layer and a database layer, wherein the platform software permits a user to configure a program using user-configurable scripts and user-configurable database schema;
a time series database configured to store operation data for a plurality of discrete time intervals; and
an instrumentation routine configured to:
intercept operation data pertaining to an operation of a user-configured program, the operation data comprising at least a start time, an execution time interval, and an origin;
strip operation-specific variable data from the operation data to generate stripped operation data for the operation such that after stripping the operation-specific variable data from the operation data, the operation data includes one or more canonicalized representations of the operation associated with respective executions of the operation by the user-configured program;
aggregate the operation data based on the start time, the stripped operation data, and the origin to form aggregated operation data; and
store the aggregated operation data in the time series database in the execution time interval based at least in part on the start time, wherein the aggregated operation data relates to performance metrics of the cloud computing system.

### Claim 2 (depends on 1)

The cloud computing system of claim 1, wherein the instrumentation routine is configured to:
generate a hashcode related to the stripped operation data; and
associate the stripped operation data with the hashcode for the execution time interval.

### Claim 3 (depends on 2)

The cloud computing system of claim 2, wherein aggregating the operation data comprises:
determining whether corresponding aggregated operation data associated with the hashcode and corresponding to the operation and the origin of the operation is already stored within the time series database;
if corresponding aggregated operation data is already stored within the time series database, calculating one or more operation data values associated with the hashcode based on the stripped operation data; and
if corresponding aggregated operation data is not already stored within the time series database, associating one or more operation data values of the stripped operation data with the hashcode.

### Claim 4 (depends on 3)

The cloud computing system of claim 3, wherein the one or more operation data values comprise one or more of a total execution time, an average execution time, or an execution counter.

### Claim 5 (depends on 2)

The cloud computing system of claim 2, wherein the hashcode is a coded string indicative of the stripped operation data and the origin of the operation.

### Claim 6 (depends on 2)

The cloud computing system of claim 2, wherein a stack trace indicative of the aggregated operation data is stored within a stack of operations, wherein the stack of operations comprises one or more tiered stack traces indicative of the origin, and wherein the hashcode indicates a location of the stack trace within the stack of operations.

### Claim 7 (depends on 1)

The cloud computing system of claim 1, wherein the operation comprises one of a transaction, a script, or a database query.

### Claim 8 (depends on 1)

The cloud computing system of claim 1, wherein the platform software is configured to:
generate output to display a graphical representation of the aggregated operation data to provide performance metrics to a user.

### Claim 9 (depends on 1)

The cloud computing system of claim 1, wherein the time series database is a round-robin database.

### Claim 10

A method for executing an instrumentation routine on at least one server for maintaining a user-configured program, comprising:
intercepting, by software executed on the at least one server, operation data pertaining to an operation of the user-configured program, wherein the operation data comprises at least a start time, an execution time interval, and an origin;
stripping operation-specific variable data from the operation data to generate stripped operation data for the operation, wherein the operation-specific variable data comprises data associated with one or more parameters from a first execution of the operation by the user-configured program that are different from a second execution of the operation by the user-configured program;
aggregating the operation data based on the start time, the stripped operation data, and the origin of the operation to form aggregated operation data; and
storing, in a time series database executed on the server, the aggregated operation data in the execution time interval based on the start time, wherein the aggregated operation data relates to performance metrics of the operation.

### Claim 11 (depends on 10)

The method of claim 10, wherein the instrumentation routine is configured to:
generate a hashcode related to the stripped operation data; and
associate the stripped operation data with the hashcode for the execution time interval.

### Claim 12 (depends on 11)

The method of claim 11, wherein aggregating the operation data comprises:
determining whether corresponding aggregated operation data associated with the hashcode and corresponding to the operation and the origin of the operation is already stored within the time series database;
if corresponding aggregated operation data is already stored within the time series database, calculating one or more operation data values associated with the hashcode based on the stripped operation data; and
if corresponding aggregated operation data is not already stored within the time series database, associating one or more operation data values of the stripped operation data with the hashcode.

### Claim 13 (depends on 12)

The method of claim 12, wherein the one or more operation data values comprise one or more of a total execution time, an average execution time, or an execution counter.

### Claim 14 (depends on 11)

The method of claim 11, wherein the hashcode is a coded string indicative of the stripped operation data and the origin of the operation.

### Claim 15 (depends on 11)

The method of claim 11, wherein a stack trace indicative of the aggregated operation data is stored within a stack of operations, wherein the stack of operations comprises one or more tiered stack traces indicative of the origin, and wherein the hashcode indicates a location of the stack trace within the stack of operations.

### Claim 16 (depends on 10)

The method of claim 10, wherein the operation comprises one of a transaction, a script, or a database query.

### Claim 17 (depends on 10)

The method of claim 10, wherein the software is configured to:
generate output to display a graphical representation of the aggregated operation data to provide performance metrics to a user.

### Claim 18 (depends on 10)

The method of claim 10, wherein the time series database is a round-robin database.

### Claim 19

A system, comprising:
a memory; and
a processor configured to execute instructions stored in the memory to:
intercept operation data pertaining to an operation of a user-configured program, wherein the operation data comprises at least a start time, an execution time interval, and an origin;
strip operation-specific variable data from the operation data to generate stripped operation data for the operation, wherein the operation-specific variable data is data that is not indicative of a normalized representation of the operation;
generate a hashcode representative of at least the stripped operation data and the origin;
aggregate the stripped operation data based on the hashcode to form aggregated operation data; and
store the aggregated operation data in a time series database indexed by the execution time interval based on the start time.

### Claim 20 (depends on 19)

The system of claim 19, wherein the operation comprises one of a transaction, a script, or a database query, and wherein the aggregated operation data includes one or more operation data values comprising one or more of a total execution time, an average execution time, or an execution counter.
