diff options
author | gjoranv <gv@yahoo-inc.com> | 2017-06-01 16:25:58 +0200 |
---|---|---|
committer | gjoranv <gv@yahoo-inc.com> | 2017-06-01 17:46:58 +0200 |
commit | 82762cd238c4588f51ff1c178b61fa2a9228f32b (patch) | |
tree | 549e48e1b6ed5f5362079ba42c31eb4274467fd0 /config-model | |
parent | 66c3637ee6fbb16c69778c66507f5c0d41934213 (diff) |
Add new metric set for system metrics, and add to predefined sets.
Diffstat (limited to 'config-model')
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) { |