aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/lwtrace/example2/lwtrace_example2.cpp
diff options
context:
space:
mode:
authorCthulhu <cthulhu@yandex-team.ru>2022-02-10 16:47:44 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:47:44 +0300
commit6aced6c854653b75aab9808d5995be5fc4d9fa53 (patch)
treec0748b5dcbade83af788c0abfa89c0383d6b779c /library/cpp/lwtrace/example2/lwtrace_example2.cpp
parentbcb3e9d0eb2a8188a6a9fe0907a8949ce4881a4e (diff)
downloadydb-6aced6c854653b75aab9808d5995be5fc4d9fa53.tar.gz
Restoring authorship annotation for Cthulhu <cthulhu@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'library/cpp/lwtrace/example2/lwtrace_example2.cpp')
-rw-r--r--library/cpp/lwtrace/example2/lwtrace_example2.cpp186
1 files changed, 93 insertions, 93 deletions
diff --git a/library/cpp/lwtrace/example2/lwtrace_example2.cpp b/library/cpp/lwtrace/example2/lwtrace_example2.cpp
index 6ad4cc96f1..7a4f7a1daf 100644
--- a/library/cpp/lwtrace/example2/lwtrace_example2.cpp
+++ b/library/cpp/lwtrace/example2/lwtrace_example2.cpp
@@ -1,117 +1,117 @@
#include <library/cpp/lwtrace/control.h>
#include <library/cpp/lwtrace/all.h>
-
+
#include <library/cpp/getopt/last_getopt.h>
#include <google/protobuf/text_format.h>
-#include <util/stream/file.h>
-
+#include <util/stream/file.h>
+
#define LWTRACE_EXAMPLE_PROVIDER(PROBE, EVENT, GROUPS, TYPES, NAMES) \
PROBE(StartupProbe, GROUPS(), TYPES(), NAMES()) \
PROBE(IterationProbe, GROUPS(), TYPES(i64, double), NAMES("n", "result")) \
- PROBE(DurationProbe, GROUPS(), TYPES(ui64, i64, double), NAMES("duration", "n", "result")) \
+ PROBE(DurationProbe, GROUPS(), TYPES(ui64, i64, double), NAMES("duration", "n", "result")) \
PROBE(ResultProbe, GROUPS(), TYPES(double), NAMES("factN")) \
PROBE(AfterInputProbe, GROUPS(), TYPES(i32), NAMES("n")) \
- /**/
-
-LWTRACE_DECLARE_PROVIDER(LWTRACE_EXAMPLE_PROVIDER)
-LWTRACE_DEFINE_PROVIDER(LWTRACE_EXAMPLE_PROVIDER)
-
+ /**/
+
+LWTRACE_DECLARE_PROVIDER(LWTRACE_EXAMPLE_PROVIDER)
+LWTRACE_DEFINE_PROVIDER(LWTRACE_EXAMPLE_PROVIDER)
+
THolder<NLWTrace::TManager> traceManager;
-
-struct TConfig {
- bool UnsafeLWTrace;
+
+struct TConfig {
+ bool UnsafeLWTrace;
TString TraceRequestPath;
-};
-
-void InitLWTrace(TConfig& cfg) {
+};
+
+void InitLWTrace(TConfig& cfg) {
traceManager.Reset(new NLWTrace::TManager(*Singleton<NLWTrace::TProbeRegistry>(), cfg.UnsafeLWTrace));
-}
-
-void AddLWTraceRequest(TConfig& cfg) {
+}
+
+void AddLWTraceRequest(TConfig& cfg) {
TString queryStr = TUnbufferedFileInput(cfg.TraceRequestPath).ReadAll();
- NLWTrace::TQuery query;
- google::protobuf::TextFormat::ParseFromString(queryStr, &query);
- traceManager->New("TraceRequest1", query);
-}
-
-class TLogReader {
-public:
+ NLWTrace::TQuery query;
+ google::protobuf::TextFormat::ParseFromString(queryStr, &query);
+ traceManager->New("TraceRequest1", query);
+}
+
+class TLogReader {
+public:
void Push(TThread::TId tid, const NLWTrace::TCyclicLog::TItem& item) {
- Cout << "tid=" << tid << " probe=" << item.Probe->Event.Name;
- if (item.Timestamp != TInstant::Zero()) {
- Cout << " time=" << item.Timestamp;
- }
- if (item.SavedParamsCount > 0) {
+ Cout << "tid=" << tid << " probe=" << item.Probe->Event.Name;
+ if (item.Timestamp != TInstant::Zero()) {
+ Cout << " time=" << item.Timestamp;
+ }
+ if (item.SavedParamsCount > 0) {
TString paramValues[LWTRACE_MAX_PARAMS];
- item.Probe->Event.Signature.SerializeParams(item.Params, paramValues);
- Cout << " params: ";
- for (size_t i = 0; i < item.SavedParamsCount; ++i) {
- Cout << " " << item.Probe->Event.Signature.ParamNames[i] << "=" << paramValues[i];
- }
- }
- Cout << Endl;
- }
-};
-
-void DisplayLWTraceLog() {
- Cout << "LWTrace log:" << Endl;
- TLogReader reader;
- traceManager->ReadLog("TraceRequest1", reader);
-}
-
+ item.Probe->Event.Signature.SerializeParams(item.Params, paramValues);
+ Cout << " params: ";
+ for (size_t i = 0; i < item.SavedParamsCount; ++i) {
+ Cout << " " << item.Probe->Event.Signature.ParamNames[i] << "=" << paramValues[i];
+ }
+ }
+ Cout << Endl;
+ }
+};
+
+void DisplayLWTraceLog() {
+ Cout << "LWTrace log:" << Endl;
+ TLogReader reader;
+ traceManager->ReadLog("TraceRequest1", reader);
+}
+
long double Fact(i64 n) {
- if (n < 0) {
- ythrow yexception() << "N! is undefined for negative N (" << n << ")";
- }
- double result = 1;
- for (; n > 1; --n) {
- GLOBAL_LWPROBE(LWTRACE_EXAMPLE_PROVIDER, IterationProbe, n, result);
- GLOBAL_LWPROBE_DURATION(LWTRACE_EXAMPLE_PROVIDER, DurationProbe, n, result);
-
- result *= n;
- }
- return result;
-}
-
-void FactorialCalculator() {
- GLOBAL_LWPROBE(LWTRACE_EXAMPLE_PROVIDER, StartupProbe);
-
- i32 n;
- Cout << "Enter a number: ";
+ if (n < 0) {
+ ythrow yexception() << "N! is undefined for negative N (" << n << ")";
+ }
+ double result = 1;
+ for (; n > 1; --n) {
+ GLOBAL_LWPROBE(LWTRACE_EXAMPLE_PROVIDER, IterationProbe, n, result);
+ GLOBAL_LWPROBE_DURATION(LWTRACE_EXAMPLE_PROVIDER, DurationProbe, n, result);
+
+ result *= n;
+ }
+ return result;
+}
+
+void FactorialCalculator() {
+ GLOBAL_LWPROBE(LWTRACE_EXAMPLE_PROVIDER, StartupProbe);
+
+ i32 n;
+ Cout << "Enter a number: ";
TString str;
- Cin >> n;
-
- GLOBAL_LWPROBE(LWTRACE_EXAMPLE_PROVIDER, AfterInputProbe, n);
-
- double factN = Fact(n);
- Cout << n << "! = " << factN << Endl << Endl;
-
- GLOBAL_LWPROBE(LWTRACE_EXAMPLE_PROVIDER, ResultProbe, factN);
-}
-
-int main(int argc, char** argv) {
- TConfig cfg;
- using namespace NLastGetopt;
- TOpts opts = NLastGetopt::TOpts::Default();
- opts.AddLongOption('u', "unsafe-lwtrace",
+ Cin >> n;
+
+ GLOBAL_LWPROBE(LWTRACE_EXAMPLE_PROVIDER, AfterInputProbe, n);
+
+ double factN = Fact(n);
+ Cout << n << "! = " << factN << Endl << Endl;
+
+ GLOBAL_LWPROBE(LWTRACE_EXAMPLE_PROVIDER, ResultProbe, factN);
+}
+
+int main(int argc, char** argv) {
+ TConfig cfg;
+ using namespace NLastGetopt;
+ TOpts opts = NLastGetopt::TOpts::Default();
+ opts.AddLongOption('u', "unsafe-lwtrace",
"allow destructive LWTrace actions")
.OptionalValue(ToString(true))
.DefaultValue(ToString(false))
.StoreResult(&cfg.UnsafeLWTrace);
- opts.AddLongOption('f', "trace-request",
+ opts.AddLongOption('f', "trace-request",
"specify a file containing LWTrace request")
.DefaultValue("example_query.tr")
.StoreResult(&cfg.TraceRequestPath);
- opts.AddHelpOption('h');
- TOptsParseResult res(&opts, argc, argv);
-
- InitLWTrace(cfg);
-
- AddLWTraceRequest(cfg);
-
- FactorialCalculator();
-
- DisplayLWTraceLog();
-
- return 0;
-}
+ opts.AddHelpOption('h');
+ TOptsParseResult res(&opts, argc, argv);
+
+ InitLWTrace(cfg);
+
+ AddLWTraceRequest(cfg);
+
+ FactorialCalculator();
+
+ DisplayLWTraceLog();
+
+ return 0;
+}