diff --git a/eden/fs/telemetry/CMakeLists.txt b/eden/fs/telemetry/CMakeLists.txt index cfdb09b2b9e9d..e9c30229fc511 100644 --- a/eden/fs/telemetry/CMakeLists.txt +++ b/eden/fs/telemetry/CMakeLists.txt @@ -16,6 +16,7 @@ target_link_libraries( eden_config eden_service_thrift_util eden_utils + edencommon::edencommon_telemetry fb303::fb303 Folly::folly ) diff --git a/eden/fs/telemetry/DynamicEvent.cpp b/eden/fs/telemetry/DynamicEvent.cpp deleted file mode 100644 index 6b915194799dd..0000000000000 --- a/eden/fs/telemetry/DynamicEvent.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This software may be used and distributed according to the terms of the - * GNU General Public License version 2. - */ - -#include "eden/fs/telemetry/DynamicEvent.h" - -#include -#include -#include -#include "eden/common/utils/Throw.h" - -namespace { -void validateUtf8(folly::StringPiece sp) { - auto* p = reinterpret_cast(sp.begin()); - auto* const end = reinterpret_cast(sp.end()); - while (p < end) { - (void)folly::utf8ToCodePoint(p, end, false); - } -} -} // namespace - -namespace facebook::eden { - -void DynamicEvent::addInt(std::string name, int64_t value) { - auto [iter, inserted] = ints_.emplace(std::move(name), value); - if (!inserted) { - throw_( - "Attempted to insert duplicate int: ", iter->first); - } -} - -void DynamicEvent::addString(std::string name, std::string value) { - validateUtf8(value); - auto [iter, inserted] = strings_.emplace(std::move(name), std::move(value)); - if (!inserted) { - throw_( - "Attempted to insert duplicate string: ", iter->first); - } -} - -void DynamicEvent::addDouble(std::string name, double value) { - XCHECK(std::isfinite(value)) - << "Attempted to insert double-precision value that cannot be represented in JSON: " - << name; - auto [iter, inserted] = doubles_.emplace(std::move(name), value); - if (!inserted) { - throw_( - "Attempted to insert duplicate double: ", iter->first); - } -} - -} // namespace facebook::eden diff --git a/eden/fs/telemetry/DynamicEvent.h b/eden/fs/telemetry/DynamicEvent.h deleted file mode 100644 index c740483e334cc..0000000000000 --- a/eden/fs/telemetry/DynamicEvent.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This software may be used and distributed according to the terms of the - * GNU General Public License version 2. - */ - -#pragma once - -#include -#include -#include -#include - -namespace facebook::eden { - -class DynamicEvent { - public: - using IntMap = std::unordered_map; - using StringMap = std::unordered_map; - using DoubleMap = std::unordered_map; - - DynamicEvent() = default; - DynamicEvent(const DynamicEvent&) = default; - DynamicEvent(DynamicEvent&&) = default; - DynamicEvent& operator=(const DynamicEvent&) = default; - DynamicEvent& operator=(DynamicEvent&&) = default; - - void addInt(std::string name, int64_t value); - void addString(std::string name, std::string value); - void addDouble(std::string name, double value); - - /** - * Convenience function that adds boolean values as integer 0 or 1. - */ - void addBool(std::string name, bool value) { - addInt(std::move(name), value); - } - - const IntMap& getIntMap() const { - return ints_; - } - const StringMap& getStringMap() const { - return strings_; - } - const DoubleMap& getDoubleMap() const { - return doubles_; - } - - private: - // Due to limitations in the underlying log database, limit the field types to - // int64_t, double, string, and vector - // TODO: add vector support if needed. - IntMap ints_; - StringMap strings_; - DoubleMap doubles_; -}; - -} // namespace facebook::eden diff --git a/eden/fs/telemetry/LogEvent.h b/eden/fs/telemetry/LogEvent.h index 4464b99947087..1be9a64903838 100644 --- a/eden/fs/telemetry/LogEvent.h +++ b/eden/fs/telemetry/LogEvent.h @@ -13,7 +13,7 @@ #include #include "eden/common/os/ProcessId.h" -#include "eden/fs/telemetry/DynamicEvent.h" +#include "eden/common/telemetry/DynamicEvent.h" namespace facebook::eden { diff --git a/eden/fs/telemetry/TARGETS b/eden/fs/telemetry/TARGETS index fd7c744dd8c3f..65a1c08debfdf 100644 --- a/eden/fs/telemetry/TARGETS +++ b/eden/fs/telemetry/TARGETS @@ -101,27 +101,23 @@ cpp_library( cpp_library( name = "log_info", srcs = [ - "DynamicEvent.cpp", "SessionId.cpp", "SessionInfo.cpp", ], headers = [ - "DynamicEvent.h", "LogEvent.h", "SessionId.h", "SessionInfo.h", ], deps = [ - "//eden/common/utils:throw", "//eden/fs/utils:sysctl_util", "//folly:conv", "//folly:exception", - "//folly:unicode", - "//folly/logging:logging", "//folly/portability:unistd", ], exported_deps = [ "//eden/common/os:os", + "//eden/common/telemetry:log_info", "//folly/portability:sys_types", ], )