# US 10,873,628 B2 · System and method for non-intrusive context correlation across cloud services

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

- Number: US 10,873,628 B2
- Document ID: US10873628B2
- Status: Granted
- Kind: B2
- Application number: 15/621,454
- Filed: 2017-06-13
- Published: 2018-12-13
- Granted: 2020-12-22
- Earliest claimed: 2017-06-13
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Ganesh Muthiah; Sreekanth Anumula
- Web page: https://patentgrep.com/patent/US10873628B2

## CPC

- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 67/75: Indicating network or usage conditions on the user display
- H04L 69/40: for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection (management of faults, events, alarms or notifications in data switching networks H04L41/06)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In accordance with an accordance, described herein is a system and method for providing non-intrusive context correlation across a plurality of cloud services in different cloud environments. A cloud service context correlator can be configured with each cloud service, and can pass a common identifier through the cloud services. The cloud service context correlator can identify one or more loggers in a cloud service and their types, and create a log formatter for each logger based on its type to inject the common identifier into log messages generated by the logger. The injected common identifier can correlate log messages from the cloud services, and can be used to search for the correlated log messages in a dashboard of a data visualization tool. The cloud service context correlator does not require code changes for each cloud service, and can be applied to a synchronous or asynchronous representational state transfer (REST) flow.

## Claims

### Claim 1

A system for providing a non-intrusive context correlation across a plurality of cloud services, comprising:
a microprocessor;
a first cloud service executing on the microprocessor, wherein the first cloud service invokes a second cloud service;
a first cloud service context correlator provided at the first cloud service;
wherein the second cloud service includes a second cloud service context correlator, and wherein each of the first cloud service context correlator and the second cloud service context correlator includes a container request filter operable to map between execution context identifiers and thread identifiers associated with thread contexts that execute requests;
wherein the first cloud service is associated with a loq handler operable to:
set an execution context identifier to a current thread context, and
pass the execution context identifier to a logger for injection into first log messages at the first cloud service;
wherein the first cloud service passes the execution context identifier to the second cloud service in association with a request to be processed by the first cloud service and the second cloud service;
wherein the execution context identifier is injected into second log messages at the second cloud service by the second cloud service context correlator; and
wherein the execution context identifier is used to correlate a transaction context across a plurality of cloud services including the first cloud service and the second cloud service, as indicated by the execution context identifier injected into the first loq messages and the second loq messages at those cloud services.

### Claim 2 (depends on 1)

The system of claim 1, wherein each of the first cloud service and the second cloud service is a representational state transfer (REST) cloud service.

### Claim 3 (depends on 1)

The system of claim 1, wherein each of the first cloud service context correlator and second cloud service context correlator is placed in a location in each of the first cloud service and second cloud service respectively, and is referenced by the cloud service.

### Claim 4 (depends on 1)

The system of claim 1, wherein the execution context identifier is a unique string identifier or a data structure that includes a string identifier and additional metadata.

### Claim 5 (depends on 1)

The system of claim 1, wherein the cloud service context correlator in each of the first cloud service and second cloud service is configured to:
identify one or more loggers declared by resources that service the cloud service,
determine a type of each identified logger, and
create a customized log formatter to format log messages generated by the associated logger.

### Claim 6 (depends on 1)

The system of claim 1, wherein each of the first cloud service context correlator and second cloud service context correlator is configured to correlate log messages generated in a synchronous REST flow and an asynchronous REST flow.

### Claim 7 (depends on 1)

The system of claim 1, wherein each of the first cloud service and the second cloud service is a Platform as a Service (PaaS) cloud service.

### Claim 8 (depends on 1)

The system of claim 1, wherein the first cloud service and the second cloud service are of different types of cloud services.

### Claim 9 (depends on 1)

The system of claim 1,
wherein the first cloud service operates in a first cloud environment, and the second cloud service operates in a second cloud environment; and
wherein the first cloud environment and the second cloud environment use different proprietary technologies, and are provided by different cloud providers.

### Claim 10

A method for providing a non-intrusive context correlation across a plurality of cloud services, comprising:
providing a first cloud service executing on a computer including a microprocessor, wherein the first cloud service invokes a second cloud service;
providing a cloud service context correlator at each of the first cloud service and the second cloud service, wherein each of a first cloud service context correlator and a second cloud service context correlator includes a container request filter operable to map between execution context identifiers and thread identifiers associated with thread contexts that execute requests;
at the first cloud service:
setting an execution context identifier to a current thread context, and
passing the execution context identifier to a logger for injection into first log messages at the first cloud service;
passing the execution context identifier from the first cloud service to the second cloud service in association with a request to be processed by the first cloud service and the second cloud service;
at the second cloud service:
injecting the execution context identifier into second log messages at the second cloud service;
wherein the execution context identifier is used to correlate a transaction context across a plurality of cloud services including the first cloud service and the second cloud service, as indicated by the execution context identifier injected into the first loq messages and the second loq messages at those cloud services.

### Claim 11 (depends on 10)

The method of claim 10, wherein each of the first cloud service and the second cloud service is a representational state transfer (REST) cloud service.

### Claim 12 (depends on 10)

The method of claim 10, wherein each of the first cloud service context correlator and second cloud service context correlator is placed in a location in each of the first cloud service and second cloud service respectively, and is referenced by the cloud service.

### Claim 13 (depends on 10)

The method of claim 10, wherein the execution context identifier is a unique string identifier or a data structure that includes a string identifier and additional metadata.

### Claim 14 (depends on 10)

The method of claim 10, wherein the cloud service context correlator in each of the first cloud service and second cloud service is configured to:
identify one or more loggers declared by resources that service the cloud service,
determine a type of each identified logger, and
create a customized log formatter to format log messages generated by the associated logger.

### Claim 15 (depends on 10)

The method of claim 10, wherein each of the first cloud service context correlator and second cloud service context correlator is configured to correlate log messages generated in a synchronous REST flow and an asynchronous REST flow.

### Claim 16 (depends on 10)

The method of claim 10, wherein each of the first cloud service and the second cloud service is a Platform as a Service (PaaS) cloud service.

### Claim 17 (depends on 10)

The method of claim 10,
wherein the first cloud service operates in a first cloud environment, and the second cloud service operates in a second cloud environment; and
wherein the first cloud environment and the second cloud environment use different proprietary technologies, and are provided by different cloud providers.

### Claim 18

A non-transitory computer readable storage medium, including instructions stored thereon which when read and executed by one or more computers cause the one or more computers to perform the steps comprising:
providing a first cloud service executing on a computer including a microprocessor, wherein the first cloud service invokes a second cloud service;
providing a cloud service context correlator at each of the first cloud service and the second cloud service, wherein each of a first cloud service context correlator and a second cloud service context correlator includes a container request filter operable to map between execution context identifiers and thread identifiers associated with thread contexts that execute requests;
at the first cloud service:
setting an execution context identifier to a current thread context, and
passing the execution context identifier to a logger for injection into first loq messages at the first cloud service;
passing the execution context identifier from the first cloud service to the second cloud service in association with a request to be processed by the first cloud service and the second cloud service;
at the second cloud service:
injecting the execution context identifier into second log messages at the second cloud service;
wherein the execution context identifier is used to correlate a transaction context across a plurality of cloud services including the first cloud service and the second cloud service, as indicated by the execution context identifier injected into the first loq messages and the second loq messages at those cloud services.
