mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 23:07:18 +03:00
432d674649
Summary: The current fb303 counters only report aggregated latency while we want to track Eden performance under different version, os, channel, and configs. So I am setting up a new logging mechanism for this purpose. This diff introduces the class `FsEventLogger` for sampling and logging. There are 3 configs introduced by this diff. The configs are reloaded every 30 minutes. 1. `telemetry:request-sampling-config-allowlist` A list of config keys that we want to attach to scuba events. 2. `telemetry:request-samples-per-minute` Max number of events logged to scuba per minute per mount. 3. `telemetry:request-sampling-group-denominators` * Each type of operation has a "sampling group" (defaulted to 0, which is dropping all). * We use this sampling group as index to look up its denominator in this config. * The denominator is then used for sampling. e.g. `1/x` of the events are send to scuba, if we haven't reached the cap specified by #2. Example workflow: 1. receive tracing event 2. look up denominator of the sampling group of the operation type 3. sample based on the denominator 4. check that we have not exceeded the logging cap per min 5. create sample and send to scribe Reviewed By: xavierd Differential Revision: D30288054 fbshipit-source-id: 8f2b95c11c718550a8162f4d1259a25628f499ff |
||
---|---|---|
.. | ||
fuse_tester | ||
privhelper | ||
test | ||
CMakeLists.txt | ||
DirList.cpp | ||
DirList.h | ||
FuseChannel.cpp | ||
FuseChannel.h | ||
FuseDispatcher.cpp | ||
FuseDispatcher.h | ||
FuseRequestContext.cpp | ||
FuseRequestContext.h | ||
FuseTypes.h | ||
Invalidation.h | ||
PollHandle.cpp | ||
PollHandle.h |