Skip to content

Commit 3172477

Browse files
janezhang10meta-codesync[bot]
authored andcommitted
telemetry: Move Thrift timeouts and limits to EdenConfig
Summary: Move XPlatLogger timeout and maximums to EdenConfig so that we can update the numbers without having to generate a new binary. Reviewed By: kavehahmadi60 Differential Revision: D101873970 fbshipit-source-id: 8f5c7a4ebc9e4704dcd79f0508730cb4593d8ce2
1 parent 37a2b2a commit 3172477

5 files changed

Lines changed: 54 additions & 9 deletions

File tree

eden/fs/config/EdenConfig.h

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2366,6 +2366,38 @@ class EdenConfig : private ConfigSettingManager {
23662366
RelativePath{".edenfs-notifications-state"},
23672367
this};
23682368

2369+
// [xplat-logger]
2370+
2371+
ConfigSetting<size_t> xplatLoggerQueueLimitBytes{
2372+
"xplat-logger:queue-limit-bytes",
2373+
128 * 1024,
2374+
this};
2375+
2376+
ConfigSetting<size_t> xplatLoggerMaxBatchSize{
2377+
"xplat-logger:max-batch-size",
2378+
100,
2379+
this};
2380+
2381+
ConfigSetting<size_t> xplatLoggerMaxConsecutiveFailures{
2382+
"xplat-logger:max-consecutive-failures",
2383+
3,
2384+
this};
2385+
2386+
ConfigSetting<std::chrono::nanoseconds> xplatLoggerFlushTimeout{
2387+
"xplat-logger:flush-timeout",
2388+
std::chrono::seconds(1),
2389+
this};
2390+
2391+
ConfigSetting<std::chrono::nanoseconds> xplatLoggerConnectTimeout{
2392+
"xplat-logger:connect-timeout",
2393+
std::chrono::seconds(1),
2394+
this};
2395+
2396+
ConfigSetting<std::chrono::nanoseconds> xplatLoggerRpcTimeout{
2397+
"xplat-logger:rpc-timeout",
2398+
std::chrono::seconds(1),
2399+
this};
2400+
23692401
// [facebook]
23702402
// Facebook internal
23712403

eden/fs/inodes/test/InodeAccessLoggerDualWriteTest.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,17 @@ class SpyStructuredLogger : public StructuredLogger {
4040
}
4141
};
4242

43+
std::shared_ptr<ReloadableConfig> makeTestReloadableConfig() {
44+
return std::make_shared<ReloadableConfig>(EdenConfig::createTestEdenConfig());
45+
}
46+
4347
class SpyXplatLogger : public XplatLogger {
4448
public:
4549
SpyXplatLogger()
4650
: XplatLogger(
4751
EdenTelemetryIdentity{},
48-
makeRefPtr<EdenStats>()) {}
52+
makeRefPtr<EdenStats>(),
53+
makeTestReloadableConfig()) {}
4954

5055
std::atomic<int> callCount{0};
5156
folly::SaturatingSemaphore<> eventLogged;

eden/fs/service/EdenServer.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,8 @@ EdenServer::EdenServer(
568568
#ifdef EDEN_HAVE_LOGGER
569569
xplatLogger_{std::make_unique<XplatLogger>(
570570
EdenTelemetryIdentity::fromSessionInfo(sessionInfo),
571-
edenStats.copy())},
571+
edenStats.copy(),
572+
config_)},
572573
#endif
573574
serverState_{make_shared<ServerState>(
574575
std::move(userInfo),

eden/fs/telemetry/test/BUCK

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,17 @@ cpp_benchmark(
5656
),
5757
deps = [
5858
"fbsource//third-party/benchmark:benchmark",
59-
"//eden/common/telemetry:telemetry",
60-
"//eden/common/utils/benchharness:benchharness",
59+
"//eden/common/telemetry:log_info",
60+
"//eden/common/telemetry:scribe_logger",
61+
"//eden/common/utils:ref_ptr",
62+
"//eden/fs/telemetry:stats",
63+
"//eden/fs/telemetry:xplat_keys",
64+
"//eden/fs/telemetry/facebook:XplatTransforms",
65+
"//eden/fs/telemetry/facebook:eden_telemetry_identity",
66+
"//eden/fs/telemetry/facebook:xplat_logger",
6167
"//folly/init:init",
62-
"//folly/synchronization/test:barrier",
68+
"//folly/json:dynamic",
69+
"//scribe/api/producer/structured:compact_message",
6370
],
6471
)
6572

eden/fs/telemetry/test/LoggingBenchmark.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,8 @@ static void BM_XplatLogger_Enqueue(benchmark::State& state) {
192192

193193
if (state.thread_index() == 0) {
194194
teardownCount.store(0, std::memory_order_relaxed);
195-
ownedLogger =
196-
std::make_unique<XplatLogger>(makeIdentity(), makeRefPtr<EdenStats>());
195+
ownedLogger = std::make_unique<XplatLogger>(
196+
makeIdentity(), makeRefPtr<EdenStats>(), nullptr);
197197
ownedLogger->registerTransform(
198198
"perfpipe_edenfs_file_accesses",
199199
"GeneratedEdenfsFileAccessesLoggerConfig",
@@ -250,8 +250,8 @@ BENCHMARK(BM_ScribeCat_Throughput)->Arg(100)->Arg(1000)->Arg(10000);
250250

251251
static void BM_XplatLogger_Throughput(benchmark::State& state) {
252252
const auto burstSize = state.range(0);
253-
auto logger =
254-
std::make_unique<XplatLogger>(makeIdentity(), makeRefPtr<EdenStats>());
253+
auto logger = std::make_unique<XplatLogger>(
254+
makeIdentity(), makeRefPtr<EdenStats>(), nullptr);
255255
logger->registerTransform(
256256
"perfpipe_edenfs_file_accesses",
257257
"GeneratedEdenfsFileAccessesLoggerConfig",

0 commit comments

Comments
 (0)