5#include "patchable_field.h"
7#include <library/cpp/yt/misc/enum.h>
9#include <library/cpp/yt/yson_string/public.h>
11#include <library/cpp/yson/node/node.h>
13#include <util/generic/maybe.h>
14#include <util/generic/string.h>
15#include <util/generic/hash.h>
16#include <util/generic/hash_set.h>
18#include <util/datetime/base.h>
30enum class EYsonFormat : int;
39 inline constexpr std::string_view Fatal =
"fatal";
40 inline constexpr std::string_view Error =
"error";
41 inline constexpr std::string_view Info =
"info";
42 inline constexpr std::string_view Debug =
"debug";
47extern const TString DefaultHosts;
48extern const TString DefaultRemoteTempTablesDirectory;
49extern const TString DefaultRemoteTempFilesDirectory;
61enum class ENodeReaderFormat :
int
68enum class ETraceHttpRequestsMode
78DEFINE_ENUM(EUploadDeduplicationMode,
118 THashSet<TString> LogExcludeCategories = {
"Bus",
"Net",
"Dns",
"Concurrency"};
150 EEncoding ContentEncoding;
153 EEncoding AcceptEncoding;
166 TDuration HostListUpdateInterval;
171 TDuration ConnectTimeout;
172 TDuration SocketTimeout;
173 TDuration AddressCacheExpirationTimeout;
175 TDuration PingTimeout;
176 TDuration PingInterval;
178 int AsyncHttpClientThreads;
179 int AsyncTxPingerPoolThreads;
182 TDuration WaitLockPollInterval;
184 TDuration RetryInterval;
185 TDuration ChunkErrorsRetryInterval;
187 TDuration RateLimitExceededRetryInterval;
188 TDuration StartOperationRetryInterval;
192 int StartOperationRetryCount;
195 int CheckLivenessRetryCount;
200 TString RemoteTempFilesDirectory;
201 TString RemoteTempTablesDirectory;
204 bool KeepTempTables =
false;
210 bool InferTableSchema;
212 bool UseClientProtobuf;
213 ENodeReaderFormat NodeReaderFormat;
214 bool ProtobufFormatWithDescriptors;
216 int ConnectionPoolSize;
236 i64 CacheUploadDeduplicationThreshold;
246 bool MountSandboxInTmpfs;
255 bool UseAbortableResponse =
false;
256 bool EnableDebugMetrics =
false;
273 bool EnableLocalModeOptimization =
true;
277 bool WriteStderrSuccessfulJobs =
false;
284 ETraceHttpRequestsMode TraceHttpRequestsMode = ETraceHttpRequestsMode::Never;
286 TString SkynetApiHost;
289 TMaybe<int> SocketPriority;
293 THashSet<TString> CommandsWithFraming;
317 static bool GetBool(
const char* var,
bool defaultValue =
false);
318 static int GetInt(
const char* var,
int defaultValue);
319 static TDuration GetDuration(
const char* var, TDuration defaultValue);
320 static EEncoding GetEncoding(
const char* var);
321 static EUploadDeduplicationMode GetUploadingDeduplicationMode(
323 EUploadDeduplicationMode defaultValue);
325 static void ValidateToken(
const TString& token);
326 static TString LoadTokenFromFile(
const TString& tokenPath);
328 static TNode LoadJsonSpec(
const TString& strSpec);
330 static TRichYPath LoadApiFilePathOptions(
const TString& ysonMap);
335 void LoadProxyUrlAliasingRules();
341 static TConfigPtr Get();
346void Serialize(
const TConfig& config, NYson::IYsonConsumer* consumer);
348void Deserialize(
TConfig& config,
const TNode& node);
352TString ConfigToYsonString(
const TConfig& config, NYson::EYsonFormat format = NYson::EYsonFormat::Pretty);
354TConfig ConfigFromYsonString(TString serializedConfig);
360 TString FqdnHostName;
364 TString ClientVersion;
370 static TProcessState* Get();
Definition patchable_field.h:23
Main namespace of YT client.
Definition abortable_stream.h:7
ETableWriterVersion
Enum describing possible versions of table writer implemetation.
Definition config.h:95
@ Auto
Allow library to choose version of writer.
Definition config.h:97
@ V1
Stable but slower version of writer.
Definition config.h:100
@ V2
Unstable but faster version of writer (going to be default in the future).
Definition config.h:103
@ Disabled
Auto merge is disabled.
Definition operation.h:159
TDuration CacheLockTimeoutPerGb
Used when waiting for other process which uploads the same file to the file cache.
Definition config.h:229
TPatchableField< TString > OperationLinkPattern
Pattern for generating operation web link in |GetOperationWebInterfaceUrl|.
Definition config.h:308
THashMap< TString, TString > ProxyUrlAliasingRules
Proxy url aliasing rules to be used for connection.
Definition config.h:136
TString StructuredLog
Path to the structured log file for recording telemetry data in JSON format. This allows later retrie...
Definition config.h:122
bool EnableControlMultiplexingBand
If true, all RPC requests share a single connection,.
Definition config.h:315
TRichYPath ApiFilePathOptions
Set upload options (e.g.) for files created by library.
Definition config.h:252
bool LockFileStorage
Take a shared lock on the file cache directory during operation preparation.
Definition config.h:244
TPatchableField< i64 > FileCacheReplicationFactor
Definition config.h:220
bool PreferHttps
Use https if no schema was provided in proxy url.
Definition config.h:162
bool RedirectStdoutToStderr
Redirects stdout to stderr for jobs.
Definition config.h:299
TDuration OperationTrackerPollPeriod
Period for checking status of running operation.
Definition config.h:198
TString HttpProxyRole
Represents the role involved in HTTP proxy configuration.
Definition config.h:127
ETableWriterVersion TableWriterVersion
Which implemetation of table writer to use.
Definition config.h:296
bool EnableDebugCommandLineArguments
Append job and operation IDs as shell command options.
Definition config.h:302
bool UseHaltingResponse
Simulate a response that halts (stops sending data) mid-stream.
Definition config.h:262
bool LogUseCore
Definition config.h:147
TString ConfigRemotePatchPath
Path to document node with cluster config for |IClientGetDynamicConfiguration|.
Definition config.h:305
bool EnableClientTracing
Allow to create trace_id on client side and propogate with request.
Definition config.h:311
i64 HaltingResponseBytesLimit
Maximum number of bytes sent before the response is halted.
Definition config.h:268
TString RpcProxyRole
Represents the role involved in RPC proxy configuration.
Definition config.h:130
EUploadDeduplicationMode CacheUploadDeduplicationMode
Used to prevent concurrent uploading of the same file to the file cache. NB: Each mode affects only u...
Definition config.h:233
Path with additional attributes.
Definition common.h:1040