diff options
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 |