summaryrefslogtreecommitdiffstats
path: root/container-disc
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahoo-inc.com>2016-11-29 12:43:16 +0100
committerArne H Juul <arnej@yahoo-inc.com>2016-11-29 12:45:12 +0100
commit22959dd15d1a9da532739b2d4a207e80bacf49ee (patch)
treed94f677ee3d01923f818590909c2e6fd7e8a66c1 /container-disc
parentf9fc9d816eab226ae353ceb3b9e0f77d13b77b2e (diff)
rename metrics, add open file descriptors
* renamed count metric to just "memory_mappings" * count open filedescriptors in container * add "jdisc." prefix to new jdisc metrics
Diffstat (limited to 'container-disc')
-rw-r--r--container-disc/src/main/java/com/yahoo/container/jdisc/metric/MetricUpdater.java21
1 files changed, 20 insertions, 1 deletions
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;
+ }
}
}