summaryrefslogtreecommitdiffstats
path: root/searchcore
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@oath.com>2022-01-25 12:43:09 +0000
committerHåvard Pettersen <havardpe@oath.com>2022-01-25 12:43:09 +0000
commit949932e310963df295c27af0dc62b77d4625288a (patch)
treef83d9b7af0a2a5a1ac022163cb72775e7b19ec12 /searchcore
parent2e569972c83f4d51bfd80bd81c07cc78dde04ef3 (diff)
use separate metrics in a metric set
values are kept unnormalized
Diffstat (limited to 'searchcore')
-rw-r--r--searchcore/src/vespa/searchcore/proton/metrics/resource_usage_metrics.cpp18
-rw-r--r--searchcore/src/vespa/searchcore/proton/metrics/resource_usage_metrics.h17
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/proton.cpp10
3 files changed, 30 insertions, 15 deletions
diff --git a/searchcore/src/vespa/searchcore/proton/metrics/resource_usage_metrics.cpp b/searchcore/src/vespa/searchcore/proton/metrics/resource_usage_metrics.cpp
index 6a10dd48f9c..9cf0339986c 100644
--- a/searchcore/src/vespa/searchcore/proton/metrics/resource_usage_metrics.cpp
+++ b/searchcore/src/vespa/searchcore/proton/metrics/resource_usage_metrics.cpp
@@ -4,6 +4,18 @@
namespace proton {
+ResourceUsageMetrics::CpuUtilMetrics::CpuUtilMetrics(metrics::MetricSet *parent)
+ : MetricSet("cpu_util", {}, "Unnormalized cpu utilization for various categories", parent),
+ setup("setup", {}, "cpu used by system init and (re-)configuration", this),
+ read("read", {}, "cpu used by reading data from the system", this),
+ write("write", {}, "cpu used by writing data to the system", this),
+ compact("compact", {}, "cpu used by internal data re-structuring", this),
+ other("other", {}, "cpu used by work not classified as a specific category", this)
+{
+}
+
+ResourceUsageMetrics::CpuUtilMetrics::~CpuUtilMetrics() = default;
+
ResourceUsageMetrics::ResourceUsageMetrics(metrics::MetricSet *parent)
: MetricSet("resource_usage", {}, "Usage metrics for various resources in this search engine", parent),
disk("disk", {}, "The relative amount of disk space used on this machine (value in the range [0, 1])", this),
@@ -16,11 +28,7 @@ ResourceUsageMetrics::ResourceUsageMetrics(metrics::MetricSet *parent)
openFileDescriptors("open_file_descriptors", {}, "The number of open files", this),
feedingBlocked("feeding_blocked", {}, "Whether feeding is blocked due to resource limits being reached (value is either 0 or 1)", this),
mallocArena("malloc_arena", {}, "Size of malloc arena", this),
- cpu_setup( "cpu_util", {{"category", "setup"}}, "cpu utilization for the given category", this),
- cpu_read( "cpu_util", {{"category", "read"}}, "cpu utilization for the given category", this),
- cpu_write( "cpu_util", {{"category", "write"}}, "cpu utilization for the given category", this),
- cpu_compact("cpu_util", {{"category", "compact"}}, "cpu utilization for the given category", this),
- cpu_other( "cpu_util", {{"category", "other"}}, "cpu utilization for the given category", this)
+ cpu_util(this)
{
}
diff --git a/searchcore/src/vespa/searchcore/proton/metrics/resource_usage_metrics.h b/searchcore/src/vespa/searchcore/proton/metrics/resource_usage_metrics.h
index ee37cce0ca0..35100084cf7 100644
--- a/searchcore/src/vespa/searchcore/proton/metrics/resource_usage_metrics.h
+++ b/searchcore/src/vespa/searchcore/proton/metrics/resource_usage_metrics.h
@@ -12,6 +12,17 @@ namespace proton {
*/
struct ResourceUsageMetrics : metrics::MetricSet
{
+ struct CpuUtilMetrics : metrics::MetricSet {
+ metrics::DoubleValueMetric setup;
+ metrics::DoubleValueMetric read;
+ metrics::DoubleValueMetric write;
+ metrics::DoubleValueMetric compact;
+ metrics::DoubleValueMetric other;
+
+ CpuUtilMetrics(metrics::MetricSet *parent);
+ ~CpuUtilMetrics();
+ };
+
metrics::DoubleValueMetric disk;
metrics::DoubleValueMetric diskUtilization;
metrics::DoubleValueMetric memory;
@@ -22,11 +33,7 @@ struct ResourceUsageMetrics : metrics::MetricSet
metrics::LongValueMetric openFileDescriptors;
metrics::LongValueMetric feedingBlocked;
metrics::LongValueMetric mallocArena;
- metrics::DoubleValueMetric cpu_setup;
- metrics::DoubleValueMetric cpu_read;
- metrics::DoubleValueMetric cpu_write;
- metrics::DoubleValueMetric cpu_compact;
- metrics::DoubleValueMetric cpu_other;
+ CpuUtilMetrics cpu_util;
ResourceUsageMetrics(metrics::MetricSet *parent);
~ResourceUsageMetrics();
diff --git a/searchcore/src/vespa/searchcore/proton/server/proton.cpp b/searchcore/src/vespa/searchcore/proton/server/proton.cpp
index f12758345c4..b2a86102cd1 100644
--- a/searchcore/src/vespa/searchcore/proton/server/proton.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/proton.cpp
@@ -778,11 +778,11 @@ Proton::updateMetrics(const metrics::MetricLockGuard &)
metrics.resourceUsage.mallocArena.set(UINT64_C(0));
#endif
auto cpu_util = _cpu_util.get_util();
- metrics.resourceUsage.cpu_setup.set(cpu_util[CpuCategory::SETUP]);
- metrics.resourceUsage.cpu_read.set(cpu_util[CpuCategory::READ]);
- metrics.resourceUsage.cpu_write.set(cpu_util[CpuCategory::WRITE]);
- metrics.resourceUsage.cpu_compact.set(cpu_util[CpuCategory::COMPACT]);
- metrics.resourceUsage.cpu_other.set(cpu_util[CpuCategory::OTHER]);
+ metrics.resourceUsage.cpu_util.setup.set(cpu_util[CpuCategory::SETUP]);
+ metrics.resourceUsage.cpu_util.read.set(cpu_util[CpuCategory::READ]);
+ metrics.resourceUsage.cpu_util.write.set(cpu_util[CpuCategory::WRITE]);
+ metrics.resourceUsage.cpu_util.compact.set(cpu_util[CpuCategory::COMPACT]);
+ metrics.resourceUsage.cpu_util.other.set(cpu_util[CpuCategory::OTHER]);
}
{
ContentProtonMetrics::ProtonExecutorMetrics &metrics = _metricsEngine->root().executor;