[ML] log minimum diskspace setting if forecast fails due to insufficient d… (#37486)

log minimum disk space setting if forecast fails due to insufficient disk space
This commit is contained in:
Hendrik Muhs 2019-01-16 08:10:13 +01:00 committed by GitHub
parent 987576b013
commit 15d1b904a1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 1 deletions

View File

@ -97,8 +97,15 @@ public class TransportForecastJobAction extends TransportJobTaskAction<ForecastJ
} else if (forecastRequestStats.getStatus() == ForecastRequestStats.ForecastRequestStatus.FAILED) { } else if (forecastRequestStats.getStatus() == ForecastRequestStats.ForecastRequestStatus.FAILED) {
List<String> messages = forecastRequestStats.getMessages(); List<String> messages = forecastRequestStats.getMessages();
if (messages.size() > 0) { if (messages.size() > 0) {
String message = messages.get(0);
// special case: if forecast failed due to insufficient disk space, log the setting
if (message.contains("disk space is insufficient")) {
message += " Minimum disk space required: [" + processManager.getMinLocalStorageAvailable() + "]";
}
listener.onFailure(ExceptionsHelper.badRequestException("Cannot run forecast: " listener.onFailure(ExceptionsHelper.badRequestException("Cannot run forecast: "
+ messages.get(0))); + message));
} else { } else {
// paranoia case, it should not be possible to have an empty message list // paranoia case, it should not be possible to have an empty message list
listener.onFailure( listener.onFailure(

View File

@ -749,6 +749,10 @@ public class AutodetectProcessManager {
return autoDetectWorkerExecutor; 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 * 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 * operations are initially added to a queue and a worker thread from ml autodetect threadpool will process each

View File

@ -111,6 +111,10 @@ public class NativeStorageProvider {
} }
} }
public ByteSizeValue getMinLocalStorageAvailable() {
return minLocalStorageAvailable;
}
long getUsableSpace(Path path) throws IOException { long getUsableSpace(Path path) throws IOException {
long freeSpaceInBytes = Environment.getFileStore(path).getUsableSpace(); long freeSpaceInBytes = Environment.getFileStore(path).getUsableSpace();