Bottlenecks detected by the Universal Agent

Universal Agent detects server-side bottlenecks for slow API calls in monitored processes. Bottlenecks are detected for network operations that do not show up as spans, such as SQL queries or HTTP requests to endpoints not monitored by Plumbr. Details for these are collected from network traffic of the monitored process. Each bottleneck comes with a stack trace, which is collected using language runtime specific APIs (Zend API for PHP, Python/C API for Python).

Each bottleneck instance may be collected either as a single slow operation (one query/request) or as a collection of multiple operations (prefixed with “Multi” or “Multiple”). For each operation which exceeded the global bottleneck threshold (1 second), a single operation bottleneck is registered. If the remaining operations of the same type combined exceed the bottleneck threshold, the multiple operation bottleneck of that type is registered, with its name derived from the group of operations that took the longest time.

Currently the following bottlenecks are collected by the Universal Agent:

  • SQL queries to MySQL and Postgres
  • HTTP/1 requests