From af643d693327bfcf80bf972e87318fcd117b4a93 Mon Sep 17 00:00:00 2001 From: Oleksandr Kolomiiets Date: Thu, 21 Mar 2024 14:11:56 -0700 Subject: [PATCH] Added DownsampleMetrics --- .../xpack/downsample/Downsample.java | 8 ++++ .../xpack/downsample/DownsampleMetrics.java | 48 +++++++++++++++++++ .../downsample/TransportDownsampleAction.java | 5 +- 3 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/DownsampleMetrics.java diff --git a/x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/Downsample.java b/x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/Downsample.java index 0d3a784e00e53..d2108f70fedf4 100644 --- a/x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/Downsample.java +++ b/x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/Downsample.java @@ -39,6 +39,7 @@ import org.elasticsearch.xpack.core.downsample.DownsampleShardPersistentTaskState; import org.elasticsearch.xpack.core.downsample.DownsampleShardTask; +import java.util.Collection; import java.util.List; import java.util.function.Predicate; import java.util.function.Supplier; @@ -49,6 +50,13 @@ public class Downsample extends Plugin implements ActionPlugin, PersistentTaskPl private static final int DOWNSAMPLE_TASK_THREAD_POOL_QUEUE_SIZE = 256; public static final String DOWNSAMPLE_MIN_NUMBER_OF_REPLICAS_NAME = "downsample.min_number_of_replicas"; + @Override + public Collection createComponents(PluginServices services) { + var metrics = new DownsampleMetrics(services.telemetryProvider().getMeterRegistry()); + + return List.of(metrics); + } + @Override public List> getExecutorBuilders(Settings settings) { final FixedExecutorBuilder downsample = new FixedExecutorBuilder( diff --git a/x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/DownsampleMetrics.java b/x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/DownsampleMetrics.java new file mode 100644 index 0000000000000..f1294d2206266 --- /dev/null +++ b/x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/DownsampleMetrics.java @@ -0,0 +1,48 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0; you may not use this file except in compliance with the Elastic License + * 2.0. + */ + +package org.elasticsearch.xpack.downsample; + +import org.elasticsearch.telemetry.metric.LongCounter; +import org.elasticsearch.telemetry.metric.LongHistogram; +import org.elasticsearch.telemetry.metric.MeterRegistry; + +public class DownsampleMetrics { + public static final String SUCCESS = "es.tsdb.downsample.success.total"; + public static final String FAILURE = "es.tsdb.downsample.failure.total"; + + private final LongCounter downsampleSuccess; + private final LongCounter downsampleFailure; + + public DownsampleMetrics(MeterRegistry meterRegistry) { + this( + meterRegistry.registerLongCounter( + SUCCESS, + "Number of successful downsample operations", + "count" + ), + meterRegistry.registerLongCounter( + FAILURE, + "Number of failed downsample operations", + "count" + ) + ); + } + + public DownsampleMetrics(LongCounter downsampleSuccess, LongCounter downsampleFailure) { + this.downsampleSuccess = downsampleSuccess; + this.downsampleFailure = downsampleFailure; + } + + public LongCounter getDownsampleSuccess() { + return downsampleSuccess; + } + + public LongCounter getDownsampleFailure() { + return downsampleFailure; + } +} diff --git a/x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/TransportDownsampleAction.java b/x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/TransportDownsampleAction.java index 0570d93441be1..1cb753b1ea33a 100644 --- a/x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/TransportDownsampleAction.java +++ b/x-pack/plugin/downsample/src/main/java/org/elasticsearch/xpack/downsample/TransportDownsampleAction.java @@ -115,6 +115,7 @@ public class TransportDownsampleAction extends AcknowledgedTransportMasterNodeAc private final IndexScopedSettings indexScopedSettings; private final ThreadContext threadContext; private final PersistentTasksService persistentTasksService; + private final DownsampleMetrics metrics; private static final Set FORBIDDEN_SETTINGS = Set.of( IndexSettings.DEFAULT_PIPELINE.getKey(), @@ -153,7 +154,8 @@ public TransportDownsampleAction( ActionFilters actionFilters, IndexNameExpressionResolver indexNameExpressionResolver, IndexScopedSettings indexScopedSettings, - PersistentTasksService persistentTasksService + PersistentTasksService persistentTasksService, + DownsampleMetrics metrics ) { super( DownsampleAction.NAME, @@ -173,6 +175,7 @@ public TransportDownsampleAction( this.threadContext = threadPool.getThreadContext(); this.taskQueue = clusterService.createTaskQueue("downsample", Priority.URGENT, STATE_UPDATE_TASK_EXECUTOR); this.persistentTasksService = persistentTasksService; + this.metrics = metrics; } @Override