From 25e6da08f00513516ea869e8f3128247187a941c Mon Sep 17 00:00:00 2001 From: Russ Cam Date: Tue, 30 Jun 2020 09:57:44 +1000 Subject: [PATCH] Add FailedCategoryCount to ModelSizeStats (#4813) Relates: elastic/elasticsearch#55716, #4803 This commit adds FailedCategoryCount to ModelSizeStats and adds other missing fields to JobStats --- .../MachineLearning/Job/Config/JobStats.cs | 20 +++++++ .../Job/Process/ModelSizeStats.cs | 60 +++++++++++++++++++ 2 files changed, 80 insertions(+) diff --git a/src/Nest/XPack/MachineLearning/Job/Config/JobStats.cs b/src/Nest/XPack/MachineLearning/Job/Config/JobStats.cs index 2784a5f6e23..2f8859972e2 100644 --- a/src/Nest/XPack/MachineLearning/Job/Config/JobStats.cs +++ b/src/Nest/XPack/MachineLearning/Job/Config/JobStats.cs @@ -26,6 +26,13 @@ public class JobStats [DataMember(Name = "data_counts")] public DataCounts DataCounts { get; internal set; } + /// + /// Indicates that the process of deleting the job is in progress but not yet completed. + /// It is only reported when true. + /// + [DataMember(Name = "deleting")] + public bool? Deleting { get; internal set; } + /// /// Contains job statistics if job contains a forecast. /// @@ -109,10 +116,23 @@ public class TimingStats /// Valid in Elasticsearch 7.4.0+ [DataMember(Name = "exponential_average_bucket_processing_time_per_hour_ms")] public double ExponentialAverageBucketProcessingTimePerHourMilliseconds { get; internal set; } + + /// + /// Sum of all bucket processing times, in milliseconds. + /// + [DataMember(Name = "total_bucket_processing_time_ms")] + public double TotalBucketProcessingTimeMilliseconds { get; internal set; } } public class JobForecastStatistics { + /// + /// A value of 0 indicates that forecasts do not exist for this job. + /// A value of 1 indicates that at least one forecast exists. + /// + [DataMember(Name = "forecasted_jobs")] + public long ForecastedJobs { get; internal set; } + /// /// Statistics about the memory usage: minimum, maximum, average and total. /// diff --git a/src/Nest/XPack/MachineLearning/Job/Process/ModelSizeStats.cs b/src/Nest/XPack/MachineLearning/Job/Process/ModelSizeStats.cs index f76cbd154b8..bf25929e5f7 100644 --- a/src/Nest/XPack/MachineLearning/Job/Process/ModelSizeStats.cs +++ b/src/Nest/XPack/MachineLearning/Job/Process/ModelSizeStats.cs @@ -21,6 +21,42 @@ public class ModelSizeStats [DataMember(Name = "bucket_allocation_failures_count")] public long BucketAllocationFailuresCount { get; internal set; } + /// + /// The number of documents that have had a field categorized. + /// + [DataMember(Name = "categorized_doc_count")] + public long CategorizedDocCount { get; internal set; } + + /// + /// The status of categorization for the job. + /// + [DataMember(Name = "categorization_status")] + public ModelCategorizationStatus CategorizationStatus { get; internal set; } + + /// + /// The number of categories created by categorization that will never be assigned again because another + /// category's definition makes it a superset of the dead category. + /// (Dead categories are a side effect of the way categorization has no prior training.) + /// + [DataMember(Name = "dead_category_count")] + public long DeadCategoryCount { get; internal set; } + + /// + /// The number of times that categorization wanted to create a new category but couldn't because the job had hit its model_memory_limit. + /// This count does not track which specific categories failed to be created. Therefore you cannot use this value to determine + /// the number of unique categories that were missed. + /// + /// Available in Elasticsearch 7.8.0+ + /// + [DataMember(Name = "failed_category_count")] + public long FailedCategoryCount { get; internal set; } + + /// + /// The number of categories that match more than 1% of categorized documents. + /// + [DataMember(Name = "frequent_category_count")] + public long FrequentCategoryCount { get; internal set; } + /// /// A unique identifier for the job. /// @@ -47,6 +83,24 @@ public class ModelSizeStats [DataMember(Name = "model_bytes")] public long ModelBytes { get; internal set; } + /// + /// The number of bytes over the high limit for memory usage at the last allocation failure. + /// + [DataMember(Name = "model_bytes_exceeded")] + public long ModelBytesExceeded { get; internal set; } + + /// + /// The upper limit for model memory usage, checked on increasing values. + /// + [DataMember(Name = "model_bytes_memory_limit")] + public long ModelBytesMemoryLimit { get; internal set; } + + /// + /// The number of categories that match just one categorized document. + /// + [DataMember(Name = "rare_category_count")] + public long RareCategoryCount { get; internal set; } + /// /// For internal use. The type of result. /// @@ -66,6 +120,12 @@ public class ModelSizeStats [DataMember(Name = "total_by_field_count")] public long TotalByFieldCount { get; internal set; } + /// + /// The number of categories created by categorization. + /// + [DataMember(Name = "total_category_count")] + public long TotalCategoryCount { get; internal set; } + /// /// The number of over field values that were analyzed by the models. ///