Overhead control in OSProfiler

Registered by Tovin Seven on 2016-12-05

Overhead control in OSProfiler is not implemented yet.

Current status:
===============
OSProfiler do not have any overhead control mechanism. Sampling rate
and overhead control had been stated in previous specification [1] by boris-42.
However, this feature is not implemented yet.

Use case:
=========
We use OSProfiler for tracing requests, it should be turned on all the time*.
Turning it on all the time can help ops to find slowness and problems in system quickly.
However, this may cause lots of performance overhead.

* This mean that we trace every request, not only when we want to.

Problems and resolutions:
=========================
OSProfiler running all the time may not be
a good idea because of overhead that it can be made (CPU time, network I/O).

These issues can be solved with:
1. Sampling rate (can be refereced from Zipkin [2] and OpenTracing.io [3])
2. Limit trace level in trace stack
3. Pre-measure trace data size to choose suitable sampling rate

References:
===========
[1] https://specs.openstack.org/openstack/oslo-specs/specs/mitaka/osprofiler-cross-service-project-profiling.html#performance-impact
[2] https://github.com/openzipkin/zipkin/blob/master/zipkin/src/main/java/zipkin/collector/CollectorSampler.java
[3] http://opentracing.io/documentation/pages/api/data-conventions.html

Blueprint information

Status:
Not started
Approver:
Dina Belova
Priority:
High
Drafter:
Tovin Seven
Direction:
Approved
Assignee:
Tovin Seven
Definition:
Approved
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.