aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/monlib/deprecated/json/writer.cpp
diff options
context:
space:
mode:
authorDevtools Arcadia <arcadia-devtools@yandex-team.ru>2022-02-07 18:08:42 +0300
committerDevtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net>2022-02-07 18:08:42 +0300
commit1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch)
treee26c9fed0de5d9873cce7e00bc214573dc2195b7 /library/cpp/monlib/deprecated/json/writer.cpp
downloadydb-1110808a9d39d4b808aef724c861a2e1a38d2a69.tar.gz
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'library/cpp/monlib/deprecated/json/writer.cpp')
-rw-r--r--library/cpp/monlib/deprecated/json/writer.cpp100
1 files changed, 100 insertions, 0 deletions
diff --git a/library/cpp/monlib/deprecated/json/writer.cpp b/library/cpp/monlib/deprecated/json/writer.cpp
new file mode 100644
index 0000000000..a581f2e07a
--- /dev/null
+++ b/library/cpp/monlib/deprecated/json/writer.cpp
@@ -0,0 +1,100 @@
+#include "writer.h"
+
+namespace NMonitoring {
+ TDeprecatedJsonWriter::TDeprecatedJsonWriter(IOutputStream* out)
+ : JsonWriter(out, false)
+ , State(STATE_ROOT)
+ {
+ }
+
+ void TDeprecatedJsonWriter::TransitionState(EState current, EState next) {
+ if (State != current) {
+ ythrow yexception() << "wrong state";
+ }
+ State = next;
+ }
+
+ void TDeprecatedJsonWriter::OpenDocument() {
+ TransitionState(STATE_ROOT, STATE_DOCUMENT);
+ JsonWriter.OpenMap();
+ }
+
+ void TDeprecatedJsonWriter::CloseDocument() {
+ TransitionState(STATE_DOCUMENT, STATE_ROOT);
+ JsonWriter.CloseMap();
+ JsonWriter.Flush();
+ }
+
+ void TDeprecatedJsonWriter::OpenCommonLabels() {
+ TransitionState(STATE_DOCUMENT, STATE_COMMON_LABELS);
+ JsonWriter.Write("commonLabels");
+ JsonWriter.OpenMap();
+ }
+
+ void TDeprecatedJsonWriter::CloseCommonLabels() {
+ TransitionState(STATE_COMMON_LABELS, STATE_DOCUMENT);
+ JsonWriter.CloseMap();
+ }
+
+ void TDeprecatedJsonWriter::WriteCommonLabel(TStringBuf name, TStringBuf value) {
+ TransitionState(STATE_COMMON_LABELS, STATE_COMMON_LABELS);
+ JsonWriter.Write(name, value);
+ }
+
+ void TDeprecatedJsonWriter::OpenMetrics() {
+ TransitionState(STATE_DOCUMENT, STATE_METRICS);
+ JsonWriter.Write("sensors");
+ JsonWriter.OpenArray();
+ }
+
+ void TDeprecatedJsonWriter::CloseMetrics() {
+ TransitionState(STATE_METRICS, STATE_DOCUMENT);
+ JsonWriter.CloseArray();
+ }
+
+ void TDeprecatedJsonWriter::OpenMetric() {
+ TransitionState(STATE_METRICS, STATE_METRIC);
+ JsonWriter.OpenMap();
+ }
+
+ void TDeprecatedJsonWriter::CloseMetric() {
+ TransitionState(STATE_METRIC, STATE_METRICS);
+ JsonWriter.CloseMap();
+ }
+
+ void TDeprecatedJsonWriter::OpenLabels() {
+ TransitionState(STATE_METRIC, STATE_LABELS);
+ JsonWriter.Write("labels");
+ JsonWriter.OpenMap();
+ }
+
+ void TDeprecatedJsonWriter::CloseLabels() {
+ TransitionState(STATE_LABELS, STATE_METRIC);
+ JsonWriter.CloseMap();
+ }
+
+ void TDeprecatedJsonWriter::WriteLabel(TStringBuf name, TStringBuf value) {
+ TransitionState(STATE_LABELS, STATE_LABELS);
+ JsonWriter.Write(name, value);
+ }
+
+ void TDeprecatedJsonWriter::WriteModeDeriv() {
+ TransitionState(STATE_METRIC, STATE_METRIC);
+ JsonWriter.Write("mode", "deriv");
+ }
+
+ void TDeprecatedJsonWriter::WriteValue(long long value) {
+ TransitionState(STATE_METRIC, STATE_METRIC);
+ JsonWriter.Write("value", value);
+ }
+
+ void TDeprecatedJsonWriter::WriteDoubleValue(double value) {
+ TransitionState(STATE_METRIC, STATE_METRIC);
+ JsonWriter.Write("value", value);
+ }
+
+ void TDeprecatedJsonWriter::WriteTs(ui64 ts) {
+ TransitionState(STATE_METRIC, STATE_METRIC);
+ JsonWriter.Write("ts", ts);
+ }
+}