Thanks Clinton. That looks interesting but that creates an average of values per hour for the last 28 days. What I am looking for more precisely is to calculate a 28 rolling (or moving average) using the last 28 days of data and redoing that calculation every hour.
I suppose what could be done is to do an average on a field that is a hourly count. On Tuesday, March 11, 2014 11:35:40 AM UTC, Clinton Gormley wrote: > > Yes, easily. Aggregations are really powerful. Here's an example: > > # First insert some data > curl -XPUT "http://localhost:9200/myindex/mytype/1" -d' > { > "created": "2014/03/10 12:05:00", > "somefield": 10 > }' > > curl -XPUT "http://localhost:9200/myindex/mytype/2" -d' > { > "created": "2014/03/10 12:05:00", > "somefield": 5 > }' > > curl -XPUT "http://localhost:9200/myindex/mytype/3" -d' > { > "created": "2014/03/9 12:05:00", > "somefield": 5 > }' > > > # Then return all results in the last 28 days > # and calculate the avg per hour > curl -XGET "http://localhost:9200/myindex/mytype/_search" -d' > { > "query": { > "range": { > "created": { > "gte": "now-28d/d", > "to": "now" > } > } > }, > "aggs": { > "per_hour": { > "date_histogram": { > "field": "created", > "interval": "hour" > }, > "aggs": { > "rolling_avg": { > "avg": { > "field": "somefield" > } > } > } > } > } > }' > > > > On 11 March 2014 09:26, Simon Cast <simon...@gmail.com <javascript:>>wrote: > >> Hi, >> >> I'm looking at using the new aggregations module of Elasticsearch to >> produce some metrics for my application. >> >> I want to calculate the rolling average for every hour in the last 28 >> days and then plot these on a chart. I can see how this could be done using >> a query per hour for the last 28 days. This seems problematic in terms of >> load and performance. Can this be done using a single query? >> >> Regards, >> >> Simon >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "elasticsearch" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to elasticsearc...@googlegroups.com <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/elasticsearch/d0a2dba7-f5a5-4944-ae0e-c6771b43ad6c%40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/d0a2dba7-f5a5-4944-ae0e-c6771b43ad6c%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/15324eca-2048-4a57-abe4-f1730e1bf70e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.