mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 16:50:48 +00:00
Add metrics for MergeTree parts types
- PartsWide - PartsCompact - PartsInMemory
This commit is contained in:
parent
dca0cbf4eb
commit
cb951c2116
@ -63,6 +63,9 @@
|
||||
M(PartsOutdated, "Not active data part, but could be used by only current SELECTs, could be deleted after SELECTs finishes.") \
|
||||
M(PartsDeleting, "Not active data part with identity refcounter, it is deleting right now by a cleaner.") \
|
||||
M(PartsDeleteOnDestroy, "Part was moved to another disk and should be deleted in own destructor.") \
|
||||
M(PartsWide, "Wide parts.") \
|
||||
M(PartsCompact, "Compact parts.") \
|
||||
M(PartsInMemory, "In-memory parts.") \
|
||||
|
||||
namespace CurrentMetrics
|
||||
{
|
||||
|
@ -28,6 +28,10 @@ namespace CurrentMetrics
|
||||
extern const Metric PartsOutdated;
|
||||
extern const Metric PartsDeleting;
|
||||
extern const Metric PartsDeleteOnDestroy;
|
||||
|
||||
extern const Metric PartsWide;
|
||||
extern const Metric PartsCompact;
|
||||
extern const Metric PartsInMemory;
|
||||
}
|
||||
|
||||
namespace DB
|
||||
@ -150,7 +154,7 @@ void IMergeTreeDataPart::MinMaxIndex::merge(const MinMaxIndex & other)
|
||||
}
|
||||
|
||||
|
||||
static void incrementMetric(IMergeTreeDataPart::State state)
|
||||
static void incrementStateMetric(IMergeTreeDataPart::State state)
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
@ -173,11 +177,9 @@ static void incrementMetric(IMergeTreeDataPart::State state)
|
||||
CurrentMetrics::add(CurrentMetrics::PartsDeleteOnDestroy);
|
||||
return;
|
||||
}
|
||||
|
||||
__builtin_unreachable();
|
||||
}
|
||||
|
||||
static void decrementMetric(IMergeTreeDataPart::State state)
|
||||
static void decrementStateMetric(IMergeTreeDataPart::State state)
|
||||
{
|
||||
switch (state)
|
||||
{
|
||||
@ -200,8 +202,42 @@ static void decrementMetric(IMergeTreeDataPart::State state)
|
||||
CurrentMetrics::sub(CurrentMetrics::PartsDeleteOnDestroy);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
__builtin_unreachable();
|
||||
static void incrementTypeMetric(MergeTreeDataPartType type)
|
||||
{
|
||||
switch (type.getValue())
|
||||
{
|
||||
case MergeTreeDataPartType::WIDE:
|
||||
CurrentMetrics::add(CurrentMetrics::PartsWide);
|
||||
return;
|
||||
case MergeTreeDataPartType::COMPACT:
|
||||
CurrentMetrics::add(CurrentMetrics::PartsCompact);
|
||||
return;
|
||||
case MergeTreeDataPartType::IN_MEMORY:
|
||||
CurrentMetrics::add(CurrentMetrics::PartsInMemory);
|
||||
return;
|
||||
case MergeTreeDataPartType::UNKNOWN:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
static void decrementTypeMetric(MergeTreeDataPartType type)
|
||||
{
|
||||
switch (type.getValue())
|
||||
{
|
||||
case MergeTreeDataPartType::WIDE:
|
||||
CurrentMetrics::sub(CurrentMetrics::PartsWide);
|
||||
return;
|
||||
case MergeTreeDataPartType::COMPACT:
|
||||
CurrentMetrics::sub(CurrentMetrics::PartsCompact);
|
||||
return;
|
||||
case MergeTreeDataPartType::IN_MEMORY:
|
||||
CurrentMetrics::sub(CurrentMetrics::PartsInMemory);
|
||||
return;
|
||||
case MergeTreeDataPartType::UNKNOWN:
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -215,7 +251,8 @@ IMergeTreeDataPart::IMergeTreeDataPart(
|
||||
, index_granularity_info(storage_, part_type_)
|
||||
, part_type(part_type_)
|
||||
{
|
||||
incrementMetric(state);
|
||||
incrementStateMetric(state);
|
||||
incrementTypeMetric(part_type);
|
||||
}
|
||||
|
||||
IMergeTreeDataPart::IMergeTreeDataPart(
|
||||
@ -233,12 +270,14 @@ IMergeTreeDataPart::IMergeTreeDataPart(
|
||||
, index_granularity_info(storage_, part_type_)
|
||||
, part_type(part_type_)
|
||||
{
|
||||
incrementMetric(state);
|
||||
incrementStateMetric(state);
|
||||
incrementTypeMetric(part_type);
|
||||
}
|
||||
|
||||
IMergeTreeDataPart::~IMergeTreeDataPart()
|
||||
{
|
||||
decrementMetric(state);
|
||||
decrementStateMetric(state);
|
||||
decrementTypeMetric(part_type);
|
||||
}
|
||||
|
||||
|
||||
@ -270,9 +309,9 @@ std::optional<size_t> IMergeTreeDataPart::getColumnPosition(const String & colum
|
||||
|
||||
void IMergeTreeDataPart::setState(IMergeTreeDataPart::State new_state) const
|
||||
{
|
||||
decrementMetric(state);
|
||||
decrementStateMetric(state);
|
||||
state = new_state;
|
||||
incrementMetric(state);
|
||||
incrementStateMetric(state);
|
||||
}
|
||||
|
||||
IMergeTreeDataPart::State IMergeTreeDataPart::getState() const
|
||||
|
@ -50,6 +50,8 @@ public:
|
||||
void fromString(const String & str);
|
||||
String toString() const;
|
||||
|
||||
Value getValue() const { return value; }
|
||||
|
||||
private:
|
||||
Value value;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user