# US 12,223,367 B2 · OpenTelemetry-based circuit breaker automation

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

- Number: US 12,223,367 B2
- Document ID: US12223367B2
- Status: Granted
- Kind: B2
- Application number: 17/390,175
- Filed: 2021-07-30
- Published: 2023-02-02
- Granted: 2025-02-11
- Earliest claimed: 2021-07-30
- Assignees: Cisco Technologies, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Walter Theodore Hulick, Jr.; David John Zacks; Thomas Szigeti
- Web page: https://patentgrep.com/patent/US12223367B2

## CPC

- G06F 9/524: {Deadlock detection or avoidance}
- G06F 9/541: {via adapters, e.g. between incompatible applications}
- G06F 11/302: {where the computing system component is a software system}
- G06F 11/3419: {by assessing time}
- G06F 11/3476: {Data logging (G06F11/14, G06F11/2205 take precedence)}
- G06F 9/5072: {Grid computing}
- G06F 2201/81: Threshold
- G06F 2201/865: Monitoring of software
- G06F 2201/87: Monitoring of transactions
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In one embodiment, a device instruments an application to generate OpenTelemetry trace data during execution of the application. The device identifies, based on where the application was instrumented, a particular method of the application. The device determines that a circuit breaker is to be inserted for the particular method of the application. The device inserts a circuit breaker for the particular method.

## Claims

### Claim 1

A method comprising:
instrumenting, by a device, an application to generate OpenTelemetry trace data;
identifying, by the device and based on where the application was instrumented, a particular method of the application, wherein the particular method is performed by the application;
determining, by the device, that a circuit breaker is to be inserted for the particular method of the application based on a type of the application and a configuration of the application, the circuit breaker comprising program code configured to disable functionality of the particular method; and
inserting, by the device, the circuit breaker for the particular method.

### Claim 2 (depends on 1)

The method as in claim 1, wherein the circuit breaker specifies a latency condition that opens the circuit breaker for the application.

### Claim 3 (depends on 1)

The method as in claim 1, wherein determining that the circuit breaker is to be inserted for the particular method of the application comprises:
determining whether the particular method is of a predefined type.

### Claim 4 (depends on 3)

The method as in claim 3, wherein the predefined type is a database query.

### Claim 5 (depends on 3)

The method as in claim 3, wherein the predefined type is a Representational State Transfer (REST) call.

### Claim 6 (depends on 1)

The method as in claim 1, wherein the device inserts the circuit breaker for the particular method using Java bytecode instrumentation.

### Claim 7 (depends on 1)

The method as in claim 1, wherein the application comprises a microservice.

### Claim 8 (depends on 1)

The method as in claim 1, wherein instrumenting the application comprises:
wrapping the particular method in a call that creates an OpenTelemetry span.

### Claim 9 (depends on 8)

The method as in claim 8, wherein the device identifies the particular method based on that OpenTelemetry span.

### Claim 10 (depends on 1)

The method as in claim 1, wherein inserting the circuit breaker for the particular method comprises:
naming the circuit breaker based on OpenTelemetry attributes.

### Claim 11

An apparatus, comprising:
one or more network interfaces to communicate with a network;
a processor coupled to the one or more network interfaces and configured to execute one or more processes; and
a memory storing a process that is executable by the processor, the process when executed configured to:
instrument an application to generate OpenTelemetry trace data during execution of the application;
identify, based on where the application was instrumented, a particular method of the application, wherein the particular method is performed by the application;
determine that a circuit breaker is to be inserted for the particular method of the application based on a type of the application and a configuration of the application, the circuit breaker comprising program code configured to disable functionality of the particular method; and
insert the circuit breaker for the particular method.

### Claim 12 (depends on 11)

The apparatus as in claim 11, wherein the circuit breaker specifies a latency condition that opens the circuit breaker for the application.

### Claim 13 (depends on 11)

The apparatus as in claim 11, wherein the apparatus determines that the circuit breaker is to be inserted for the particular method of the application by:
determining whether the particular method is of a predefined type.

### Claim 14 (depends on 13)

The apparatus as in claim 13, wherein the predefined type is a database query.

### Claim 15 (depends on 13)

The apparatus as in claim 13, wherein the predefined type is a Representational State Transfer (REST) call.

### Claim 16 (depends on 11)

The apparatus as in claim 11, wherein the apparatus inserts the circuit breaker for the particular method using Java bytecode instrumentation.

### Claim 17 (depends on 11)

The apparatus as in claim 11, wherein the application comprises a microservice.

### Claim 18 (depends on 11)

The apparatus as in claim 11, wherein the apparatus instruments the application by:
wrapping the particular method in a call that creates an OpenTelemetry span.

### Claim 19 (depends on 18)

The apparatus as in claim 18, wherein the apparatus identifies the particular method based on that OpenTelemetry span.

### Claim 20

A tangible, non-transitory, computer-readable medium storing program instructions that cause a device to execute a process comprising:
instrumenting, by the device, an application to generate OpenTelemetry trace data during execution of the application;
identifying, by the device and based on where the application was instrumented, a particular method of the application based on a type of the application and a configuration of the application, wherein the particular method is performed by the application;
determining, by the device, that a circuit breaker is to be inserted for the particular method of the application, the circuit breaker comprising program code configured to disable functionality of the particular method; and
inserting, by the device, the circuit breaker for the particular method.
