123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #include "backend_creator.h"
- #include <library/cpp/logger/global/global.h>
- namespace NUnifiedAgent {
- TLogBackendCreator::TLogBackendCreator()
- : TLogBackendCreatorBase("unified_agent")
- {}
- bool TLogBackendCreator::Init(const IInitContext& ctx) {
- if(TString socket = ctx.GetOrElse("Uri", TString())) {
- ClientParams = MakeHolder<TClientParameters>(socket);
- } else {
- Cdbg << "Uri not set for unified_agent log backend" << Endl;
- return false;
- }
- TString secretKey;
- ctx.GetValue("SharedSecretKey", secretKey);
- if (secretKey) {
- ClientParams->SharedSecretKey = secretKey;
- }
- ctx.GetValue("MaxInflightBytes", ClientParams->MaxInflightBytes);
- ctx.GetValue("GrpcSendDelay", ClientParams->GrpcSendDelay);
- size_t rateLimit;
- if (ctx.GetValue("LogRateLimit", rateLimit)) {
- ClientParams->LogRateLimitBytes = rateLimit;
- }
- ctx.GetValue("GrpcReconnectDelay", ClientParams->GrpcReconnectDelay);
- ctx.GetValue("GrpcMaxMessageSize", ClientParams->GrpcMaxMessageSize);
- const auto ownLogger = ctx.GetChildren("OwnLogger");
- if (!ownLogger.empty() && ownLogger.front()->GetOrElse("LoggerType", TString()) != "global") {
- OwnLogger = ILogBackendCreator::Create(*ownLogger.front());
- TLog log;
- log.ResetBackend(OwnLogger->CreateLogBackend());
- ClientParams->SetLog(log);
- }
- return true;
- }
- void TLogBackendCreator::DoToJson(NJson::TJsonValue& value) const {
- value["Uri"] = ClientParams->Uri;
- if (ClientParams->SharedSecretKey) {
- value["SharedSecretKey"] = *ClientParams->SharedSecretKey;
- }
- value["MaxInflightBytes"] = ClientParams->MaxInflightBytes;
- value["GrpcSendDelay"] = ClientParams->GrpcSendDelay.ToString();
- if (ClientParams->LogRateLimitBytes) {
- value["LogRateLimit"] = *ClientParams->LogRateLimitBytes;
- }
- value["GrpcReconnectDelay"] = ClientParams->GrpcReconnectDelay.ToString();
- value["GrpcMaxMessageSize"] = ClientParams->GrpcMaxMessageSize;
- if (OwnLogger) {
- OwnLogger->ToJson(value["OwnLogger"].AppendValue(NJson::JSON_MAP));
- }
- }
- THolder<TLogBackend> TLogBackendCreator::DoCreateLogBackend() const {
- return MakeLogBackend(*ClientParams);
- }
- }
|