in curator/indexlist.py [0:0]
def _get_field_stats_dates(self, field='@timestamp'):
"""
Add indices to ``index_info`` based on the values the queries return, as
determined by the min and max aggregated values of ``field``
:param field: The field with the date value. The field must be mapped in
elasticsearch as a date datatype. Default: ``@timestamp``
"""
self.loggit.debug('Cannot query closed indices. Omitting any closed indices.')
self.filter_closed()
self.loggit.debug(
'Cannot use field_stats with empty indices. Omitting any empty indices.'
)
self.filter_empty()
self.loggit.debug(
'Getting index date by querying indices for min & max value of %s field',
field,
)
self.empty_list_check()
index_lists = chunk_index_list(self.indices)
for lst in index_lists:
for index in lst:
aggs = {
'min': {'min': {'field': field}},
'max': {'max': {'field': field}},
}
response = self.client.search(index=index, size=0, aggs=aggs)
self.loggit.debug('RESPONSE: %s', response)
if response:
try:
res = response['aggregations']
self.loggit.debug('res: %s', res)
data = self.index_info[index]['age']
data['min_value'] = fix_epoch(res['min']['value'])
data['max_value'] = fix_epoch(res['max']['value'])
self.loggit.debug('data: %s', data)
except KeyError as exc:
raise ActionError(
f'Field "{field}" not found in index "{index}"'
) from exc