Function Interposition for Observability Pipeline Data Collection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing observability pipeline systems face challenges in efficiently extracting and processing data from applications without modifying the application code or incurring significant CPU and memory overhead, particularly in providing fine-grained observability and supporting various data formats and protocols.

Innovation Solution

The implementation of function interposition techniques, such as library preloading and Global Offset Table (GOT) hooking, allows for intercepting application calls to collect data without modifying the application, processing it in a separate thread, and delivering it to external systems in standardized formats like StatsD and JSON, enabling real-time normalization and forwarding of metrics and events.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If function interposition techniques (library preloading, GOT hooking) are used to intercept application calls for data collection, then fine-grained observability and comprehensive data extraction are improved, but CPU and memory overhead increase

Engineering Contradiction:
Improvefine-grained observabilityVSAvoidCPU and memory overhead
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent introduces an intermediary observability pipeline system that sits between the application and the external systems. This pipeline includes components like the instrumented dynamic library, data collection module, and data processing module that mediate the data flow. The system intercepts function calls through GOT hooking and library preloading, collects data in an intermediary buffer, processes it through the pipeline, and then forwards it to external systems. This intermediary architecture enables fine-grained observability while managing resource overhead through efficient data processing and batching mechanisms.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If application code is modified to extract and process data, then data extraction capability is improved, but application maintenance complexity and reliability are worsened

Engineering Contradiction:
Improvedata extraction capabilityVSAvoidapplication maintenance complexity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the observability functionality into a separate instrumented dynamic library that is independent of the application code. The library contains the data collection function that intercepts calls to original application functions. By separating the instrumentation logic from the application logic, the system improves data extraction capability without modifying the application's core functionality. The application continues to run with its original code intact, while the segmented library module handles all data collection and processing operations.

Inventive Principle:
Principle #1Segmentation

3Productivity

If data processing is performed in-line within the application, then data processing speed is improved, but application performance and responsiveness are worsened

Engineering Contradiction:
Improvedata processing speedVSAvoidapplication performance
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The patent implements preliminary action by preloading the instrumented dynamic library into memory before the application executes. The Global Offset Table is pre-modified to redirect function calls to the instrumented versions. Data collection buffers are pre-allocated, and the data processing pipeline is pre-configured with formatting templates and routing rules. This preliminary setup eliminates the need for dynamic memory allocation and complex processing logic during application execution, thereby improving application performance while maintaining efficient data processing through the pre-configured pipeline.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12014179B1Function interposition in an observability pipeline system
Publication Date: 2024.06.18 CRIBL INC
  • US12014179B1 patent drawing
  • US12014179B1 patent drawing
  • US12014179B1 patent drawing

AI summary

In some aspects, data collection functions are interposed to generate input data for an observability pipeline system. In some aspects, a data collection function is made available to an application running on a computer system, with the data collection function having the same name as an original function referenced by the application. In response to a call to the original function, the data collection function is executed and data is extracted from the application. The original function is then executed. A reporting thread of the application is executed; executing the reporting thread generates observability pipeline input data by formatting the extracted data and sends the observability pipeline input data from the computer system to an observability pipeline system.