OpenTelemetry Agent Instrumentation With Tenant-Aware Class Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current instrumentation techniques for OpenTelemetry™ APIs struggle to keep up with the complexities of instrumenting across disparate systems, tools, and layers in a network architecture, making it difficult to piece together monitoring and logging data and connect the chain of events and cause and effect.

Innovation Solution

An advanced agent instrumentation method using ClassLoading is employed to intercept telemetry invocations, allocate implementation tenants, and perform interception operations using direct telemetry class and method calls, ensuring proper instrumentation and compatibility with Java 9+ environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If current instrumentation techniques are used for OpenTelemetry APIs, then instrumentation can be implemented, but it cannot keep up with the complexities of instrumenting across disparate systems, tools, and layers in a network architecture

Engineering Contradiction:
Improveinstrumentation capabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a ClassLoading intermediary mechanism that acts as a mediator between the instrumentation system and OpenTelemetry APIs. This ClassLoading system discovers available loaders, allocates implementation tenants, and manages class loading dynamically, thereby handling the complexity of instrumenting across disparate systems without requiring the instrumentation technique itself to become increasingly complex.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple tenants share a Java agent, then resource utilization improves, but compatibility with Java Platform Module System (JPMS) and class loading complexities increase

Engineering Contradiction:
Improveresource utilizationVSAvoidclass loading complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the Java agent into multiple implementation tenants, where each tenant is isolated and managed independently through the ClassLoading system. This segmentation allows multiple tenants to share the Java agent infrastructure while maintaining separate class loading contexts, thus improving resource utilization without compromising JPMS compatibility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The ClassLoading system dynamically discovers available loaders and allocates implementation tenants based on runtime conditions. This dynamic approach allows the system to adapt to different Java versions and JPMS configurations, managing class loading complexities automatically while enabling multiple tenants to share the agent efficiently.

Inventive Principle:
Principle #15Dynamics

3Productivity

If direct telemetry class and method calls are used, then instrumentation efficiency improves, but ensuring proper instrumentation and compatibility across different implementations becomes more difficult

Engineering Contradiction:
Improveinstrumentation efficiencyVSAvoidinstrumentation reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The ClassLoading system serves as an intermediary that manages direct telemetry class and method calls. It discovers the correct implementations, allocates appropriate tenants, and ensures that direct calls are made to the right classes and methods. This intermediary layer maintains instrumentation efficiency while ensuring reliability across different OpenTelemetry implementations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12498943B2Advanced agent instrumentation for opentelemetry implementations
Publication Date: 2025.12.16 CISCO TECHNOLOGY INC
  • US12498943B2 patent drawing
  • US12498943B2 patent drawing
  • US12498943B2 patent drawing

AI summary

In one embodiment, a method herein comprises: intercepting runtime calls from a telemetry invocation for method entry to discover loaders; determining whether an implementation tenant is already allocated for a particular discovered loader; allocating, in response to no implementation tenant being already allocated for the particular discovered loader, a particular implementation tenant from a plurality of available implementation tenants, wherein a corresponding loader for the particular implementation tenant is set to delegate from the particular discovered loader; and calling, in response to the particular implementation tenant being allocated or being already allocated for the particular discovered loader, a method entry for the particular implementation tenant to perform an associated interception operation while using direct telemetry class and/or method calls.