Skip to content

Commit e30465c

Browse files
Stuart Camrusscam
Stuart Cam
authored andcommitted
Return statistics about forecasts as part of the job stats and usage API. (#3593)
(cherry picked from commit 62d522f)
1 parent 68d800f commit e30465c

File tree

2 files changed

+155
-55
lines changed

2 files changed

+155
-55
lines changed

src/Nest/XPack/Info/XPackUsage/XPackUsageResponse.cs

Lines changed: 92 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -5,202 +5,247 @@ namespace Nest
55
{
66
public interface IXPackUsageResponse : IResponse
77
{
8-
[DataMember(Name ="watcher")]
8+
[DataMember(Name = "watcher")]
99
AlertingUsage Alerting { get; }
1010

11-
[DataMember(Name ="graph")]
11+
[DataMember(Name = "graph")]
1212
XPackUsage Graph { get; }
1313

14-
[DataMember(Name ="ml")]
14+
[DataMember(Name = "ml")]
1515
MachineLearningUsage MachineLearning { get; }
1616

17-
[DataMember(Name ="monitoring")]
17+
[DataMember(Name = "monitoring")]
1818
MonitoringUsage Monitoring { get; }
1919

20-
[DataMember(Name ="security")]
20+
[DataMember(Name = "security")]
2121
SecurityUsage Security { get; }
2222
}
2323

2424
public class XPackUsageResponse : ResponseBase, IXPackUsageResponse
2525
{
26-
[DataMember(Name ="watcher")]
26+
[DataMember(Name = "watcher")]
2727
public AlertingUsage Alerting { get; internal set; }
2828

29-
[DataMember(Name ="graph")]
29+
[DataMember(Name = "graph")]
3030
public XPackUsage Graph { get; internal set; }
3131

32-
[DataMember(Name ="ml")]
32+
[DataMember(Name = "ml")]
3333
public MachineLearningUsage MachineLearning { get; internal set; }
3434

35-
[DataMember(Name ="monitoring")]
35+
[DataMember(Name = "monitoring")]
3636
public MonitoringUsage Monitoring { get; internal set; }
3737

38-
[DataMember(Name ="security")]
38+
[DataMember(Name = "security")]
3939
public SecurityUsage Security { get; internal set; }
4040
}
4141

4242
public class XPackUsage
4343
{
44+
[DataMember(Name = "available")]
4445
public bool Available { get; internal set; }
46+
47+
[DataMember(Name = "enabled")]
4548
public bool Enabled { get; internal set; }
4649
}
4750

4851
public class SecurityUsage : XPackUsage
4952
{
50-
[DataMember(Name ="anonymous")]
53+
[DataMember(Name = "anonymous")]
5154
public SecurityFeatureToggle Anonymous { get; internal set; }
5255

53-
[DataMember(Name ="audit")]
56+
[DataMember(Name = "audit")]
5457
public AuditUsage Audit { get; internal set; }
5558

56-
[DataMember(Name ="ipfilter")]
59+
[DataMember(Name = "ipfilter")]
5760
public IpFilterUsage IpFilter { get; internal set; }
5861

59-
[DataMember(Name ="realms")]
62+
[DataMember(Name = "realms")]
6063
public IReadOnlyDictionary<string, RealmUsage> Realms { get; internal set; } = EmptyReadOnly<string, RealmUsage>.Dictionary;
6164

62-
[DataMember(Name ="roles")]
65+
[DataMember(Name = "roles")]
6366
public IReadOnlyDictionary<string, RoleUsage> Roles { get; internal set; } = EmptyReadOnly<string, RoleUsage>.Dictionary;
6467

65-
[DataMember(Name ="ssl")]
68+
[DataMember(Name = "ssl")]
6669
public SslUsage Ssl { get; internal set; }
6770

68-
[DataMember(Name ="system_key")]
71+
[DataMember(Name = "system_key")]
6972
public SecurityFeatureToggle SystemKey { get; internal set; }
7073

7174
public class AuditUsage : SecurityFeatureToggle
7275
{
73-
[DataMember(Name ="outputs")]
76+
[DataMember(Name = "outputs")]
7477
public IReadOnlyCollection<string> Outputs { get; internal set; } = EmptyReadOnly<string>.Collection;
7578
}
7679

7780
public class IpFilterUsage
7881
{
79-
[DataMember(Name ="http")]
82+
[DataMember(Name = "http")]
8083
public bool Http { get; internal set; }
8184

82-
[DataMember(Name ="transport")]
85+
[DataMember(Name = "transport")]
8386
public bool Transport { get; internal set; }
8487
}
8588

8689
public class RealmUsage : XPackUsage
8790
{
88-
[DataMember(Name ="name")]
91+
[DataMember(Name = "name")]
8992
public IReadOnlyCollection<string> Name { get; internal set; } = EmptyReadOnly<string>.Collection;
9093

91-
[DataMember(Name ="order")]
94+
[DataMember(Name = "order")]
9295
public IReadOnlyCollection<long> Order { get; internal set; } = EmptyReadOnly<long>.Collection;
9396

94-
[DataMember(Name ="size")]
97+
[DataMember(Name = "size")]
9598
public IReadOnlyCollection<long> Size { get; internal set; } = EmptyReadOnly<long>.Collection;
9699
}
97100

98101
public class RoleUsage
99102
{
100-
[DataMember(Name ="dls")]
103+
[DataMember(Name = "dls")]
101104
public bool Dls { get; internal set; }
102105

103-
[DataMember(Name ="fls")]
106+
[DataMember(Name = "fls")]
104107
public bool Fls { get; internal set; }
105108

106-
[DataMember(Name ="size")]
109+
[DataMember(Name = "size")]
107110
public long Size { get; internal set; }
108111
}
109112

110113
public class SslUsage
111114
{
112-
[DataMember(Name ="http")]
115+
[DataMember(Name = "http")]
113116
public SecurityFeatureToggle Http { get; internal set; }
114117

115-
[DataMember(Name ="transport")]
118+
[DataMember(Name = "transport")]
116119
public SecurityFeatureToggle Transport { get; internal set; }
117120
}
118121

119122
public class SecurityFeatureToggle
120123
{
121-
[DataMember(Name ="enabled")]
124+
[DataMember(Name = "enabled")]
122125
public bool Enabled { get; internal set; }
123126
}
124127
}
125128

126129
public class AlertingUsage : XPackUsage
127130
{
128-
[DataMember(Name ="count")]
131+
[DataMember(Name = "count")]
129132
public AlertingCount Count { get; internal set; }
130133

131-
[DataMember(Name ="execution")]
134+
[DataMember(Name = "execution")]
132135
public AlertingExecution Execution { get; internal set; }
133136

134137
public class AlertingExecution
135138
{
136-
[DataMember(Name ="actions")]
139+
[DataMember(Name = "actions")]
137140
public IReadOnlyDictionary<string, ExecutionAction> Actions { get; internal set; } = EmptyReadOnly<string, ExecutionAction>.Dictionary;
138141
}
139142

140143
public class ExecutionAction
141144
{
142-
[DataMember(Name ="total")]
145+
[DataMember(Name = "total")]
143146
public long Total { get; internal set; }
144147

145-
[DataMember(Name ="total_in_ms")]
148+
[DataMember(Name = "total_in_ms")]
146149
public long TotalInMilliseconds { get; internal set; }
147150
}
148151

149152
public class AlertingCount
150153
{
151-
[DataMember(Name ="active")]
154+
[DataMember(Name = "active")]
152155
public long Active { get; internal set; }
153156

154-
[DataMember(Name ="total")]
157+
[DataMember(Name = "total")]
155158
public long Total { get; internal set; }
156159
}
157160
}
158161

159162
public class MonitoringUsage : XPackUsage
160163
{
161-
[DataMember(Name ="enabled_exporters")]
164+
[DataMember(Name = "enabled_exporters")]
162165
public IReadOnlyDictionary<string, long> EnabledExporters { get; set; } = EmptyReadOnly<string, long>.Dictionary;
163166
}
164167

165168
public class MachineLearningUsage : XPackUsage
166169
{
167-
[DataMember(Name ="datafeeds")]
170+
[DataMember(Name = "datafeeds")]
168171
public IReadOnlyDictionary<string, DataFeed> Datafeeds { get; set; } = EmptyReadOnly<string, DataFeed>.Dictionary;
169172

170-
[DataMember(Name ="jobs")]
173+
[DataMember(Name = "jobs")]
171174
public IReadOnlyDictionary<string, Job> Jobs { get; set; } = EmptyReadOnly<string, Job>.Dictionary;
172175

173176
public class DataFeed
174177
{
175-
[DataMember(Name ="count")]
178+
[DataMember(Name = "count")]
176179
public long Count { get; internal set; }
177180
}
178181

179182
public class Job
180183
{
181-
[DataMember(Name ="count")]
184+
[DataMember(Name = "count")]
182185
public long Count { get; internal set; }
183186

184-
[DataMember(Name ="detectors")]
187+
[DataMember(Name = "detectors")]
185188
public JobStatistics Detectors { get; internal set; }
186189

187-
[DataMember(Name ="model_size")]
190+
[DataMember(Name = "forecasts")]
191+
public ForecastStatistics Forecasts { get; internal set; }
192+
193+
[DataMember(Name = "model_size")]
188194
public JobStatistics ModelSize { get; internal set; }
189195
}
190196

191197
public class JobStatistics
192198
{
193-
[DataMember(Name ="avg")]
199+
[DataMember(Name = "avg")]
194200
public double Average { get; internal set; }
195201

196-
[DataMember(Name ="max")]
202+
[DataMember(Name = "max")]
197203
public double Maximum { get; internal set; }
198204

199-
[DataMember(Name ="min")]
205+
[DataMember(Name = "min")]
200206
public double Minimum { get; internal set; }
201207

202-
[DataMember(Name ="total")]
208+
[DataMember(Name = "total")]
203209
public double Total { get; internal set; }
204210
}
211+
212+
public class ForecastStatistics
213+
{
214+
/// <summary>
215+
/// The number of jobs that have at least one forecast.
216+
/// </summary>
217+
[DataMember(Name = "forecasted_jobs")]
218+
public long Jobs { get; internal set; }
219+
220+
/// <summary>
221+
/// Statistics about the memory usage: minimum, maximum, average and total.
222+
/// </summary>
223+
[DataMember(Name = "memory_bytes")]
224+
public JobStatistics MemoryBytes { get; internal set; }
225+
226+
/// <summary>
227+
/// Statistics about the forecast runtime in milliseconds: minimum, maximum, average and total.
228+
/// </summary>
229+
[DataMember(Name = "processing_time_ms")]
230+
public JobStatistics ProcessingTimeMilliseconds { get; internal set; }
231+
232+
/// <summary>
233+
/// Statistics about the number of forecast records: minimum, maximum, average and total.
234+
/// </summary>
235+
[DataMember(Name = "records")]
236+
public JobStatistics Records { get; internal set; }
237+
238+
/// <summary>
239+
/// Counts per forecast status.
240+
/// </summary>
241+
[DataMember(Name = "status")]
242+
public IReadOnlyDictionary<string, long> Status { get; internal set; } = EmptyReadOnly<string, long>.Dictionary;
243+
244+
/// <summary>
245+
/// The number of forecasts currently available for this model.
246+
/// </summary>
247+
[DataMember(Name = "total")]
248+
public long Total { get; internal set; }
249+
}
205250
}
206251
}

0 commit comments

Comments
 (0)