Skip to content

Commit e6f249f

Browse files
committed
Add average_search_time_per_bucket_ms and total_bucket_processing_time_ms to ml stats (#4163)
Relates: elastic/elasticsearch#44125 This commit adds DatafeedTimingStats to DatafeedStats, and ExponentialAverageBucketProcessingTimePerHourMilliseconds to JobStats. (cherry picked from commit 83bf3e3)
1 parent 0c425c2 commit e6f249f

File tree

3 files changed

+42
-5
lines changed

3 files changed

+42
-5
lines changed

src/Nest/XPack/MachineLearning/Datafeed/DatafeedStats.cs

+32-4
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,44 @@ namespace Nest
55
[DataContract]
66
public class DatafeedStats
77
{
8-
[DataMember(Name ="assignment_explanation")]
8+
[DataMember(Name = "assignment_explanation")]
99
public string AssignmentExplanation { get; internal set; }
1010

11-
[DataMember(Name ="datafeed_id")]
11+
[DataMember(Name = "datafeed_id")]
1212
public string DatafeedId { get; internal set; }
1313

14-
[DataMember(Name ="node")]
14+
[DataMember(Name = "node")]
1515
public DiscoveryNode Node { get; internal set; }
1616

17-
[DataMember(Name ="state")]
17+
[DataMember(Name = "state")]
1818
public DatafeedState State { get; internal set; }
19+
20+
[DataMember(Name = "timing_stats")]
21+
public DatafeedTimingStats TimingStats { get; internal set; }
22+
}
23+
24+
[DataContract]
25+
public class DatafeedTimingStats
26+
{
27+
[DataMember(Name = "bucket_count")]
28+
public long BucketCount { get; internal set; }
29+
30+
[DataMember(Name = "exponential_average_search_time_per_hour_ms")]
31+
public double ExponentialAverageSearchTimePerHourMilliseconds { get; internal set; }
32+
33+
[DataMember(Name = "job_id")]
34+
public string JobId { get; internal set; }
35+
36+
[DataMember(Name = "search_count")]
37+
public long SearchCount { get; internal set; }
38+
39+
/// <summary>
40+
/// Total search time in milliseconds
41+
/// </summary>
42+
/// <remarks>
43+
/// Valid only in Elasticsearch 7.4.0+
44+
/// </remarks>
45+
[DataMember(Name = "total_search_time_ms")]
46+
public double TotalSearchTimeMilliseconds { get; internal set; }
1947
}
2048
}

src/Nest/XPack/MachineLearning/Job/Config/JobStats.cs

+7
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,13 @@ public class TimingStats
100100
/// </summary>
101101
[DataMember(Name = "exponential_average_bucket_processing_time_ms")]
102102
public double ExponentialAverageBucketProcessingTimeMilliseconds { get; internal set; }
103+
104+
/// <summary>
105+
/// Exponential moving average of all bucket processing times in milliseconds
106+
/// </summary>
107+
/// <remarks>Valid in Elasticsearch 7.4.0+</remarks>
108+
[DataMember(Name = "exponential_average_bucket_processing_time_per_hour_ms")]
109+
public double ExponentialAverageBucketProcessingTimePerHourMilliseconds { get; internal set; }
103110
}
104111

105112
public class JobForecastStatistics

src/Tests/Tests/XPack/MachineLearning/GetDatafeedStats/GetDatafeedStatsApiTests.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ protected override void ExpectResponse(GetDatafeedStatsResponse response)
4040
{
4141
response.ShouldBeValid();
4242
response.Count.Should().BeGreaterOrEqualTo(1);
43-
response.Datafeeds.First().State.Should().Be(DatafeedState.Stopped);
43+
var datafeedStats = response.Datafeeds.First();
44+
datafeedStats.State.Should().Be(DatafeedState.Stopped);
45+
datafeedStats.TimingStats.Should().NotBeNull();
4446
}
4547
}
4648

0 commit comments

Comments
 (0)