summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java6
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java21
-rw-r--r--searchcore/src/vespa/searchcore/proton/metrics/resource_usage_metrics.cpp2
3 files changed, 25 insertions, 4 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java
index 5e3db348e50..f0fcae0d8e2 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java
@@ -79,7 +79,8 @@ public class VespaMetricSet extends MetricSet {
metrics.add(new Metric("mem.heap.total.average"));
metrics.add(new Metric("mem.heap.free.average"));
metrics.add(new Metric("mem.heap.used.average"));
- metrics.add(new Metric("memory_mappings_count.max"));
+ metrics.add(new Metric("jdisc.memory_mappings.max"));
+ metrics.add(new Metric("jdisc.open_file_descriptors.max"));
return metrics;
}
@@ -190,7 +191,8 @@ public class VespaMetricSet extends MetricSet {
// resource usage
metrics.add(new Metric("content.proton.resource_usage.disk.average"));
metrics.add(new Metric("content.proton.resource_usage.memory.average"));
- metrics.add(new Metric("content.proton.resource_usage.memory_mappings_count.max"));
+ metrics.add(new Metric("content.proton.resource_usage.memory_mappings.max"));
+ metrics.add(new Metric("content.proton.resource_usage.open_file_descriptors.max"));
metrics.add(new Metric("content.proton.resource_usage.feeding_blocked.last"));
metrics.add(new Metric("content.proton.documentdb.attribute.resource_usage.enum_store.average"));
metrics.add(new Metric("content.proton.documentdb.attribute.resource_usage.multi_value.average"));
diff --git a/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java b/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java
index e23844c65b7..1c6e85a177a 100644
--- a/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java
+++ b/container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java
@@ -3,6 +3,7 @@ package com.yahoo.container.jdisc.metric;
import java.util.Timer;
import java.util.TimerTask;
+import java.nio.file.DirectoryStream;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.Files;
@@ -26,7 +27,8 @@ public class MetricUpdater extends AbstractComponent {
private static final String MANHATTAN_FREE_MEMORY_BYTES = "mem.heap.free";
private static final String MANHATTAN_USED_MEMORY_BYTES = "mem.heap.used";
private static final String MANHATTAN_TOTAL_MEMORY_BYTES = "mem.heap.total";
- private static final String MEMORY_MAPPINGS_COUNT = "memory_mappings_count";
+ private static final String MEMORY_MAPPINGS_COUNT = "jdisc.memory_mappings";
+ private static final String OPEN_FILE_DESCRIPTORS = "jdisc.open_file_descriptors";
private final Metric metric;
private final Timer timer = new Timer();
@@ -65,6 +67,7 @@ public class MetricUpdater extends AbstractComponent {
metric.set(MANHATTAN_USED_MEMORY_BYTES, usedMemory, null);
metric.set(MANHATTAN_TOTAL_MEMORY_BYTES, totalMemory, null);
metric.set(MEMORY_MAPPINGS_COUNT, count_mappings(), null);
+ metric.set(OPEN_FILE_DESCRIPTORS, count_open_files(), null);
}
// Note: Linux-specific
@@ -83,6 +86,22 @@ public class MetricUpdater extends AbstractComponent {
}
return count;
}
+
+ // Note: Linux-specific
+ private long count_open_files() {
+ long count = 0;
+ try {
+ Path p = Paths.get("/proc/self/fd");
+ try (DirectoryStream<Path> stream = Files.newDirectoryStream(p)) {
+ for (Path entry : stream) {
+ ++count;
+ }
+ }
+ } catch (Exception e) {
+ System.err.println("Could not read /proc/self/fd: " + e);
+ }
+ return count;
+ }
}
}
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 908feb79c7f..670bf4d7d87 100644
--- a/searchcore/src/vespa/searchcore/proton/metrics/resource_usage_metrics.cpp
+++ b/searchcore/src/vespa/searchcore/proton/metrics/resource_usage_metrics.cpp
@@ -9,7 +9,7 @@ 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),
memory("memory", "", "The relative amount of memory used by this process (value in the range [0, 1])", this),
- memoryMappings("memory_mappings_count", "", "The number of mapped memory areas", this),
+ memoryMappings("memory_mappings", "", "The number of mapped memory areas", this),
feedingBlocked("feeding_blocked", "", "Whether feeding is blocked due to resource limits being reached (value is either 0 or 1)", this)
{
}