/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
cloud/blockstore/libs/ydbstats/ydbrow.cpp
134 строки
4 KB
Grigoriy Yurgin
[Blockstore] diagnostics: introduce new ydb tables in ydbstats database for information about partition tablets and bs groups (#3433)
02 май 2025, 08:53
Не верифицирован
02 май 2025, 08:53
3320c3e
Код
Авторство
О чём код?
#include "ydbrow.h" #include <util/generic/vector.h> namespace NCloud::NBlockStore::NYdbStats { using namespace NYdb; //////////////////////////////////////////////////////////////////////////////// TValue TYdbStatsRow::GetYdbValues() const { NYdb::TValueBuilder value; value.BeginStruct(); #define YDB_SET_SIMPLE_STRING_FIELD(name, ...) \ value.AddMember(#name).String(name); \ YDB_SIMPLE_STRING_COUNTERS(YDB_SET_SIMPLE_STRING_FIELD) #undef YDB_SET_SIMPLE_STRING_FIELD #define YDB_SET_SIMPLE_UINT64_FIELD(name , ...) \ value.AddMember(#name).Uint64(name); \ YDB_SIMPLE_UINT64_COUNTERS(YDB_SET_SIMPLE_UINT64_FIELD) #undef YDB_SET_SIMPLE_UINT64_FIELD #define YDB_SET_CUMULATIVE_FIELD(str , name , ...) \ value.AddMember(#str).Uint64(name); \ YDB_CUMULATIVE_COUNTERS(YDB_SET_CUMULATIVE_COUNTER) #undef YDB_SET_CUMULATIVE_FIELD #define YDB_SET_PERCENTILE_FIELD(str, name, ...) \ value.AddMember(#str).Double(name); \ YDB_PERCENTILE_COUNTERS(YDB_SET_PERCENTILES_COUNTER) #undef YDB_SET_PERCENTILE_FIELD value.EndStruct(); return value.Build(); } TStringBuf TYdbStatsRow::GetYdbRowDefinition() { static TStringBuf RowDefinition = #define YDB_SIMPLE_STRING_FIELD(name , ...) \ "'" #name "'" ": String," \ YDB_SIMPLE_STRING_COUNTERS(YDB_SIMPLE_STRING_FIELD) #undef YDB_SIMPLE_STRING_FIELD #define YDB_SIMPLE_UINT64_FIELD(name , ...) \ "'" #name "'" ": Uint64," \ YDB_SIMPLE_UINT64_COUNTERS(YDB_SIMPLE_UINT64_FIELD) #undef YDB_SIMPLE_UINT64_FIELD #define YDB_CUMULATIVE_FIELD(name , ...) \ "'" #name "'" ": Uint64," \ YDB_CUMULATIVE_COUNTERS(YDB_DEFINE_CUMULATIVE_COUNTER_STRING) #undef YDB_CUMULATIVE_FIELD #define YDB_PERCENTILE_FIELD(name, ...) \ "'" #name "'" ": Double," \ // YDB_PERCENTILE_LABEL YDB_PERCENTILE_COUNTERS(YDB_DEFINE_PERCENTILES_COUNTER_STRING); #undef YDB_PERCENTILE_FIELD return TStringBuf(RowDefinition, 0, RowDefinition.length()-1); } TValue TYdbBlobLoadMetricRow::GetYdbValues() const { NYdb::TValueBuilder value; value.BeginStruct(); value.AddMember(HostNameName.data()).String(HostName); value.AddMember(TimestampName.data()).Uint64(Timestamp.Seconds()); value.AddMember(LoadDataName.data()).Json(LoadData); value.EndStruct(); return value.Build(); } TStringBuf TYdbBlobLoadMetricRow::GetYdbRowDefinition() { static const TString RowDefinition = "'" + TString(HostNameName) + "': String," + "'" + TString(TimestampName) + "': Uint64," + "'" + TString(LoadDataName) + "': Json"; return TStringBuf(RowDefinition.data()); } TValue TYdbGroupRow::GetYdbValues() const { NYdb::TValueBuilder value; value.BeginStruct(); value.AddMember(TabletIdName.data()).Uint64(TabletId); value.AddMember(ChannelName.data()).Uint32(Channel); value.AddMember(GroupIdName.data()).Uint32(GroupId); value.AddMember(GenerationName.data()).Uint32(Generation); value.AddMember(TimestampName.data()).Uint64(Timestamp.Seconds()); value.EndStruct(); return value.Build(); } TValue TYdbPartitionRow::GetYdbValues() const { NYdb::TValueBuilder value; value.BeginStruct(); value.AddMember(PartitionTabletIdName.data()).Uint64(PartitionTabletId); value.AddMember(VolumeTabletIdName.data()).Uint64(VolumeTabletId); value.AddMember(DiskIdName.data()).String(DiskId); value.AddMember(TimestampName.data()).Uint64(Timestamp.Seconds()); value.EndStruct(); return value.Build(); } } // namespace NCloud::NBlockStore::NYdbStats