Briefly, this error occurs when Elasticsearch Machine Learning (ML) fails to retrieve datafeed statistics for inclusion in ML usage. This could be due to issues with the ML datafeed, such as incorrect configuration, or problems with the underlying data. To resolve this, you could check the configuration of your ML datafeed, ensure that the data it’s supposed to fetch is available and correctly formatted, and verify that your Elasticsearch cluster has sufficient resources to handle the datafeed. Additionally, checking the Elasticsearch logs may provide more detailed information about the cause of the error.
This guide will help you check for common problems that cause the log ” Failed to get datafeed stats to include in ML usage ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: plugin.
Log Context
Log “Failed to get datafeed stats to include in ML usage” classname is MachineLearningUsageTransportAction.java.
We extracted the following from Elasticsearch source code for those seeking an in-depth context :
dataframeAnalyticsStatsRequest.setPageParams(new PageParams(0; 10_000)); ActionListenerdatafeedStatsListener = ActionListener.wrap(response -> { addDatafeedsUsage(response; datafeedsUsage); client.execute(GetDataFrameAnalyticsStatsAction.INSTANCE; dataframeAnalyticsStatsRequest; dataframeAnalyticsStatsListener); }; e -> { logger.warn("Failed to get datafeed stats to include in ML usage"; e); client.execute(GetDataFrameAnalyticsStatsAction.INSTANCE; dataframeAnalyticsStatsRequest; dataframeAnalyticsStatsListener); }); // Step 1. Extract usage from jobs stats and then request stats for all datafeeds GetDatafeedsStatsAction.Request datafeedStatsRequest = new GetDatafeedsStatsAction.Request(Metadata.ALL);