Low Overhead Precision Visibility of Application Events
The Corvil App Agent has been designed to deliver precision visibility of application events with ultra low overhead. The agent solves the problem of efficiently offloading the work of serializing, batching and publishing time-stamped application events to enable application and transaction transparency, event reporting, and performance optimization.
Designed for high-throughput, the agent can sustain over 200,000 events per second and can buffer data to support higher bursts. The App Agent is provided as a software library with a simple, straightforward API, example code and documentation. It is easy to integrate with minimal dependencies and supports C++, C and Java.
"Time is what prevents everything from happening at once."
The Corvil App Agent is especially designed for use in latency-sensitive and high-throughput applications. In critical code sections, the agent simply reads a low-level CPU counter, keeping the overhead impact to less than 10ns. At a later point, the API is used to forward these raw timestamps to the publisher component.
The publisher component takes care of the alignment with real (UTC) time, as well as the batching and forwarding of events, supporting over 200,000 events per second. For minimum overhead, developers can use the simple “getRawTime” call in the critical code section, and publish the event thereafter.
The App Agent takes care of the publishing of data for logging and/or latency calculation.
Provide UTC-synchronized reportable events from point of decision within your trading application software with minimum disruption and overhead.
Low-overhead mean you can afford to get the same visibility in production, so DevOps can monitor performance in both dev and production with a single toolset.
Add reliable microsecond performance visibility to your application development and test process.
Measure accurate wire-app-wire latency for full end-to-end visibility of trigger event on wire to decision event in app to response event on wire e.g. tick to order.
Traditional application instrumentation suffers from several difficult-to-eliminate blind spots. For example, if a software process is waiting for a hardware event, such as the arrival of network data, the application has no way of knowing how long it takes before it is notified of the event. System events such as garbage collection and process scheduling can occur in ways that make it difficult to detect with pure software instrumentation.
In contrast, network instrumentation sees the complete “end-to-end” time of data processing, from network-packet-in to network-packet-out. This gives clarity and accuracy to questions such as “how long does it take from receiving a market-data-tick to generating an outgoing order”. But network instrumentation cannot provide a breakdown of hops inside the application, nor can it see events such as software callbacks over RDMA.
With the Application Agent, Corvil makes it possible to combine the best of these worlds, to track data end-to-end – from the network, through application hops, and back to the network. With multi-hop visibility, you can immediately see the latency hot spots, allowing you to optimize applications and monitor operational performance.
Regulations such as MiFID II are putting additional burdens on trading systems, requiring them to log additional points along the trading loop such as the receipt of client orders, transmission of venue-bound orders, decisions to trade, and matching events. In high-performance environments, every additional piece of logging can result in a detectable increase in trading latency. The Corvil App Agent enables compliance with the minimum possible overhead.
With multi-hop visibility, you can immediately see the latency hot spots, allowing you to optimize applications and monitor operational performance.
Corvil is viewed as the trusted independent third party provider of transparency and forensic machine-time data to the trading industry.
Corvil makes use of precision hardware timestamps for nanosecond granularity.
Where application events are required, the Corvil App Agent generates accurate timestamps with the absolute lowest application overhead.
Simple to use API, supporting C++, C and Java.
Publish over 200,000 events per second with a single publisher thread.
Corvil allows app agent events to be published and integrated with wire timestamps events for an integrated view.
Trusted by the world’s top global banks and exchanges.