summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorgjoranv <gv@yahoo-inc.com>2017-06-01 16:25:58 +0200
committergjoranv <gv@yahoo-inc.com>2017-06-01 17:46:58 +0200
commit82762cd238c4588f51ff1c178b61fa2a9228f32b (patch)
tree549e48e1b6ed5f5362079ba42c31eb4274467fd0 /config-model
parent66c3637ee6fbb16c69778c66507f5c0d41934213 (diff)
Add new metric set for system metrics, and add to predefined sets.
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/SystemMetrics.java51
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/VespaMetricSet.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/PredefinedMetricSets.java4
3 files changed, 57 insertions, 1 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/SystemMetrics.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/SystemMetrics.java
new file mode 100644
index 00000000000..5f637090b73
--- /dev/null
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/SystemMetrics.java
@@ -0,0 +1,51 @@
+// Copyright 2017 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.model.admin.monitoring;
+
+import com.google.common.collect.ImmutableSet;
+
+import java.util.Set;
+
+/**
+ * @author gjoranv
+ */
+@SuppressWarnings("UnusedDeclaration") // Used by model amenders
+public class SystemMetrics {
+ public static final String CPU_UTIL = "cpu.util";
+ public static final String DISK_LIMIT = "disk.limit";
+ public static final String DISK_USED = "disk.used";
+ public static final String DISK_UTIL = "disk.util";
+ public static final String MEM_LIMIT = "mem.limit";
+ public static final String MEM_USED = "mem.used";
+ public static final String MEM_UTIL = "mem.util";
+
+ public static final MetricSet systemMetricSet = createSystemMetricSet();
+
+ private static MetricSet createSystemMetricSet() {
+ Set<Metric> dockerNodeMetrics =
+ ImmutableSet.of(new Metric(CPU_UTIL),
+ new Metric(DISK_LIMIT),
+ new Metric(DISK_USED),
+ new Metric(DISK_UTIL),
+ new Metric(MEM_LIMIT),
+ new Metric(MEM_USED),
+ new Metric(MEM_UTIL)
+ );
+
+ Set<Metric> nonDockerNodeMetrics =
+ // Disk metrics should be based on /home, or else '/' - or simply add filesystem as dimension
+ ImmutableSet.of(new Metric("cpu.busy.pct", CPU_UTIL),
+ new Metric("mem.used.pct", MEM_UTIL),
+ new Metric("memory.usage", MEM_USED),
+ new Metric("mem.total.kb", MEM_LIMIT),
+ new Metric("fs.used.kb", DISK_USED),
+ new Metric("fs.capacity.kb", DISK_LIMIT)
+ );
+
+ Set<Metric> systemMetrics = ImmutableSet.<Metric>builder()
+ .addAll(dockerNodeMetrics)
+ .addAll(nonDockerNodeMetrics)
+ .build();
+
+ return new MetricSet("system", systemMetrics);
+ }
+}
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 073435a1d53..e16f28a7ad1 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
@@ -7,6 +7,9 @@ import java.util.LinkedHashSet;
import java.util.Set;
/**
+ * Encapsulates vespa service metrics.
+ * IS-A metric set for convenience only (to avoid one indirection to what would have been this class' HAS-A metric set).
+ *
* @author gjoranv
*/
@SuppressWarnings("UnusedDeclaration") // Used by model amenders
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/PredefinedMetricSets.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/PredefinedMetricSets.java
index bbeccb52bcb..f68aff3c407 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/PredefinedMetricSets.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/builder/PredefinedMetricSets.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.model.admin.monitoring.builder;
import com.yahoo.vespa.model.admin.monitoring.MetricSet;
+import com.yahoo.vespa.model.admin.monitoring.SystemMetrics;
import com.yahoo.vespa.model.admin.monitoring.VespaMetricSet;
import java.util.Collections;
@@ -16,7 +17,8 @@ import java.util.Map;
public class PredefinedMetricSets {
public static final Map<String, MetricSet> predefinedMetricSets = toMapById(
- new VespaMetricSet()
+ new VespaMetricSet(),
+ SystemMetrics.systemMetricSet
);
private static Map<String, MetricSet> toMapById(MetricSet... metricSets) {