From 512325a8625e6e339fb43ade67f0025d3f53830f Mon Sep 17 00:00:00 2001 From: Hendrik Muhs Date: Tue, 15 Jan 2019 16:24:26 +0100 Subject: [PATCH 1/2] log minimum diskspace setting if forecast fails due to insufficient disk space --- .../xpack/ml/action/TransportForecastJobAction.java | 9 ++++++++- .../job/process/autodetect/AutodetectProcessManager.java | 4 ++++ .../xpack/ml/process/NativeStorageProvider.java | 4 ++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportForecastJobAction.java b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportForecastJobAction.java index 6bcadf1ddb06f..4c5ddce7d5fb4 100644 --- a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportForecastJobAction.java +++ b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportForecastJobAction.java @@ -97,8 +97,15 @@ private void getForecastRequestStats(String jobId, String forecastId, ActionList } else if (forecastRequestStats.getStatus() == ForecastRequestStats.ForecastRequestStatus.FAILED) { List messages = forecastRequestStats.getMessages(); if (messages.size() > 0) { + String message = messages.get(0); + + // special case: if forecast failed due to insufficient disk space, log the settings + if (message.contains("disk space is insufficient")) { + message += " Minimum diskspace required: [" + processManager.getMinLocalStorageAvailable() + "]"; + } + listener.onFailure(ExceptionsHelper.badRequestException("Cannot run forecast: " - + messages.get(0))); + + message)); } else { // paranoia case, it should not be possible to have an empty message list listener.onFailure( diff --git a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/job/process/autodetect/AutodetectProcessManager.java b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/job/process/autodetect/AutodetectProcessManager.java index ef03b4f9e7160..fb6e9d46f4064 100644 --- a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/job/process/autodetect/AutodetectProcessManager.java +++ b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/job/process/autodetect/AutodetectProcessManager.java @@ -749,6 +749,10 @@ ExecutorService createAutodetectExecutorService(ExecutorService executorService) return autoDetectWorkerExecutor; } + public ByteSizeValue getMinLocalStorageAvailable() { + return nativeStorageProvider.getMinLocalStorageAvailable(); + } + /* * The autodetect native process can only handle a single operation at a time. In order to guarantee that, all * operations are initially added to a queue and a worker thread from ml autodetect threadpool will process each diff --git a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/process/NativeStorageProvider.java b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/process/NativeStorageProvider.java index 1f9aee7bbeea3..9f366ab11312e 100644 --- a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/process/NativeStorageProvider.java +++ b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/process/NativeStorageProvider.java @@ -111,6 +111,10 @@ public void cleanupLocalTmpStorage(Path path) throws IOException { } } + public ByteSizeValue getMinLocalStorageAvailable() { + return minLocalStorageAvailable; + } + long getUsableSpace(Path path) throws IOException { long freeSpaceInBytes = Environment.getFileStore(path).getUsableSpace(); From 183002093d77fd2f2ecfa8dd8f957b4c5ad302d9 Mon Sep 17 00:00:00 2001 From: Hendrik Muhs Date: Tue, 15 Jan 2019 16:32:50 +0100 Subject: [PATCH 2/2] improve message --- .../xpack/ml/action/TransportForecastJobAction.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportForecastJobAction.java b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportForecastJobAction.java index 4c5ddce7d5fb4..3a26f9f863cdb 100644 --- a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportForecastJobAction.java +++ b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/action/TransportForecastJobAction.java @@ -99,9 +99,9 @@ private void getForecastRequestStats(String jobId, String forecastId, ActionList if (messages.size() > 0) { String message = messages.get(0); - // special case: if forecast failed due to insufficient disk space, log the settings + // special case: if forecast failed due to insufficient disk space, log the setting if (message.contains("disk space is insufficient")) { - message += " Minimum diskspace required: [" + processManager.getMinLocalStorageAvailable() + "]"; + message += " Minimum disk space required: [" + processManager.getMinLocalStorageAvailable() + "]"; } listener.onFailure(ExceptionsHelper.badRequestException("Cannot run forecast: "