mirror of
https://github.com/facebook/sapling.git
synced 2024-10-05 14:28:17 +03:00
6c809740ae
Reviewed By: xavierd Differential Revision: D50550199 fbshipit-source-id: 27fc2c66194e44624e6b7381cedfec4c1d5d9615
51 lines
1.4 KiB
C++
51 lines
1.4 KiB
C++
/*
|
|
* 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/StructuredLogger.h"
|
|
|
|
#include "eden/fs/telemetry/SessionId.h"
|
|
|
|
#include <ctime>
|
|
|
|
namespace {
|
|
/**
|
|
* The log database populates the time field automatically.
|
|
*/
|
|
constexpr bool kExplicitTimeField = true;
|
|
} // namespace
|
|
|
|
namespace facebook::eden {
|
|
|
|
StructuredLogger::StructuredLogger(bool enabled, SessionInfo sessionInfo)
|
|
: enabled_{enabled},
|
|
sessionId_{getSessionId()},
|
|
sessionInfo_{std::move(sessionInfo)} {}
|
|
|
|
DynamicEvent StructuredLogger::populateDefaultFields(const char* type) {
|
|
DynamicEvent event;
|
|
if (kExplicitTimeField) {
|
|
event.addInt("time", ::time(nullptr));
|
|
}
|
|
event.addInt("session_id", sessionId_);
|
|
event.addString("type", type);
|
|
event.addString("user", sessionInfo_.username);
|
|
event.addString("host", sessionInfo_.hostname);
|
|
if (sessionInfo_.sandcastleInstanceId.has_value()) {
|
|
event.addInt("sandcastle_instance_id", *sessionInfo_.sandcastleInstanceId);
|
|
}
|
|
event.addString("os", sessionInfo_.os);
|
|
event.addString("osver", sessionInfo_.osVersion);
|
|
event.addString("edenver", sessionInfo_.edenVersion);
|
|
#if defined(__APPLE__)
|
|
event.addString("system_architecture", sessionInfo_.systemArchitecture);
|
|
#endif
|
|
event.addString("logged_by", "edenfs");
|
|
return event;
|
|
}
|
|
|
|
} // namespace facebook::eden
|