summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2020-02-20 14:15:38 +0100
committergjoranv <gv@verizonmedia.com>2020-02-20 14:15:38 +0100
commit5de8c5e24ca3cecb2603496e7969afdb1934a4e9 (patch)
treecd0a1ac728c48485b0ddc741f9a2f012038d8e4f
parent8b5de98db88a3e463fad6273c9622573c19d6fc6 (diff)
Add Telegraf components to metrics-proxy clusters.
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java4
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/TelegrafTest.java43
2 files changed, 37 insertions, 10 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java
index f81757ac568..91a5cffbe6b 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerCluster.java
@@ -20,7 +20,9 @@ import ai.vespa.metricsproxy.metric.dimensions.PublicDimensions;
import ai.vespa.metricsproxy.rpc.RpcServer;
import ai.vespa.metricsproxy.service.ConfigSentinelClient;
import ai.vespa.metricsproxy.service.SystemPollerProvider;
+import ai.vespa.metricsproxy.telegraf.Telegraf;
import ai.vespa.metricsproxy.telegraf.TelegrafConfig;
+import ai.vespa.metricsproxy.telegraf.TelegrafRegistry;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.producer.AbstractConfigProducer;
import com.yahoo.config.model.producer.AbstractConfigProducerRoot;
@@ -110,6 +112,8 @@ public class MetricsProxyContainerCluster extends ContainerCluster<MetricsProxyC
addMetricsProxyComponent(MetricsManager.class);
addMetricsProxyComponent(RpcServer.class);
addMetricsProxyComponent(SystemPollerProvider.class);
+ addMetricsProxyComponent(Telegraf.class);
+ addMetricsProxyComponent(TelegrafRegistry.class);
addMetricsProxyComponent(VespaMetrics.class);
addHttpHandler(MetricsV1Handler.class, MetricsV1Handler.V1_PATH);
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/TelegrafTest.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/TelegrafTest.java
index 144c45a7dd2..e1897397bae 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/TelegrafTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/TelegrafTest.java
@@ -1,13 +1,20 @@
package com.yahoo.vespa.model.admin.metricsproxy;
+import ai.vespa.metricsproxy.telegraf.Telegraf;
import ai.vespa.metricsproxy.telegraf.TelegrafConfig;
+import ai.vespa.metricsproxy.telegraf.TelegrafRegistry;
+import com.yahoo.component.ComponentId;
import com.yahoo.vespa.model.VespaModel;
+import org.jetbrains.annotations.NotNull;
import org.junit.Test;
import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.CLUSTER_CONFIG_ID;
import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.TestMode.hosted;
import static com.yahoo.vespa.model.admin.metricsproxy.MetricsProxyModelTester.getModel;
+import static org.hamcrest.CoreMatchers.hasItem;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
/**
* @author gjoranv
@@ -15,8 +22,33 @@ import static org.junit.Assert.assertEquals;
public class TelegrafTest {
@Test
+ public void telegraf_components_are_set_up() {
+ String services = servicesWithCloudwatch();
+ VespaModel hostedModel = getModel(services, hosted);
+
+ var clusterComponents = hostedModel.getAdmin().getMetricsProxyCluster().getComponentsMap();
+ assertThat(clusterComponents.keySet(), hasItem(ComponentId.fromString(Telegraf.class.getName())));
+ assertThat(clusterComponents.keySet(), hasItem(ComponentId.fromString(TelegrafRegistry.class.getName())));
+ }
+
+ @Test
public void telegraf_config_is_generated_for_cloudwatch_in_services() {
- String services = String.join("\n",
+ String services = servicesWithCloudwatch();
+ VespaModel hostedModel = getModel(services, hosted);
+ TelegrafConfig config = hostedModel.getConfig(TelegrafConfig.class, CLUSTER_CONFIG_ID);
+
+ var cloudWatch0 = config.cloudWatch(0);
+ assertEquals("cloudwatch-consumer", cloudWatch0.consumer());
+ assertEquals("us-east-1", cloudWatch0.region());
+ assertEquals("my-namespace", cloudWatch0.namespace());
+ assertEquals("my-access-key", cloudWatch0.accessKeyName());
+ assertEquals("my-secret-key", cloudWatch0.secretKeyName());
+ assertEquals("", cloudWatch0.profile());
+ }
+
+ @NotNull
+ private String servicesWithCloudwatch() {
+ return String.join("\n",
"<services>",
" <admin version='2.0'>",
" <adminserver hostalias='node1'/>",
@@ -32,15 +64,6 @@ public class TelegrafTest {
" </admin>",
"</services>"
);
- VespaModel hostedModel = getModel(services, hosted);
- TelegrafConfig config = hostedModel.getConfig(TelegrafConfig.class, CLUSTER_CONFIG_ID);
- var cloudWatch0 = config.cloudWatch(0);
- assertEquals("cloudwatch-consumer", cloudWatch0.consumer());
- assertEquals("us-east-1", cloudWatch0.region());
- assertEquals("my-namespace", cloudWatch0.namespace());
- assertEquals("my-access-key", cloudWatch0.accessKeyName());
- assertEquals("my-secret-key", cloudWatch0.secretKeyName());
- assertEquals("", cloudWatch0.profile());
}
@Test