IMPORTANT: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
current release documentation.
Rate Aggregation Usage
edit
IMPORTANT: This documentation is no longer updated. Refer to Elastic's version policy and the latest documentation.
Rate Aggregation Usage
editA rate metrics aggregation can be used only inside a date_histogram and calculates a rate of documents or a field in each date_histogram bucket. The field values can be generated by a provided script or extracted from specific numeric or histogram fields in the documents.
Be sure to read the Elasticsearch documentation on Rate Aggregation.
Fluent DSL example
edita => a
.DateHistogram("by_date", d => d
.Field(f => f.StartedOn)
.CalendarInterval(DateInterval.Month)
.Aggregations(a => a
.Rate("my_rate", m => m
.Field(p => p.NumberOfCommits)
.Unit(DateInterval.Month)
.Mode(RateMode.Sum)
)))
Object Initializer syntax example
editnew DateHistogramAggregation("by_date")
{
Field = Field<Project>(p => p.StartedOn),
CalendarInterval = DateInterval.Month,
Aggregations = new RateAggregation("my_rate", Field<Project>(p => p.NumberOfCommits))
{
Unit = DateInterval.Month,
Mode = RateMode.Sum
}
}
Example json output.
{
"by_date": {
"date_histogram": {
"field": "startedOn",
"calendar_interval": "month"
},
"aggs": {
"my_rate": {
"rate": {
"field": "numberOfCommits",
"unit": "month",
"mode": "sum"
}
}
}
}
}
Handling Responses
editresponse.ShouldBeValid();
var dateHistogram = response.Aggregations.DateHistogram("by_date");
dateHistogram.Should().NotBeNull();
dateHistogram.Buckets.Should().NotBeNull();
dateHistogram.Buckets.Count.Should().BeGreaterThan(10);
foreach (var item in dateHistogram.Buckets)
{
var rate = item.Rate("my_rate");
rate.Should().NotBeNull();
rate.Value.Should().BeGreaterOrEqualTo(1);
}