Examples¶
build_filter Examples¶
Filter indices by prefix¶
This example will generate a list of indices matching the prefix, ‘logstash’.
The effective regular expression would be: ^logstash.*$
_filter is a dictionary object. We send it as key word arguments (kwargs) to
apply_filter. _filter‘s contents: {'pattern': '^logstash.*$'}
import elasticsearch
import curator
client = elasticsearch.Elasticsearch()
indices = curator.get_indices(client)
_filter = curator.build_filter(kindOf='prefix', value='logstash')
working_list = curator.apply_filter(indices, **_filter)
The contents of working_list would then only be indices matching the prefix.
Filter indices by suffix¶
This example will generate a list of indices matching the suffix, ‘-prod’.
The effective regular expression would be: ^.*-prod$
_filter is a dictionary object. We send it as key word arguments (kwargs) to
apply_filter. _filter‘s contents: {'pattern': '^.*-prod$'}
import elasticsearch
import curator
client = elasticsearch.Elasticsearch()
indices = curator.get_indices(client)
_filter = curator.build_filter(kindOf='suffix', value='-prod')
working_list = curator.apply_filter(indices, **_filter)
The contents of working_list would then only be indices matching the suffix.
Filter indices by time (older_than)¶
This example will generate a list of indices matching the following criteria:
- Have a date string of
%Y.%m.%d
- Use days as the unit of time measurement
- Filter indices older_than 5 days
_filter is a dictionary object. We send it as key word arguments (kwargs) to apply_filter.
The resulting _filter dictionary will be:
{
'pattern': '(?P<date>\\d{4}\\.\\d{2}\\.\\d{2})', 'value': 5,
'groupname': 'date', 'time_unit': 'days',
'timestring': '%Y.%d.%m', 'method': 'older_than'
}
import elasticsearch
import curator
client = elasticsearch.Elasticsearch()
indices = curator.get_indices(client)
_filter = curator.build_filter(kindOf='suffix', value='-prod')
working_list = curator.apply_filter(indices, **_filter)
The contents of working_list would then only be indices matching these criteria.
Filter indices by time (newer_than)¶
This example will generate a list of indices matching the following criteria:
- Have a date string of
%Y.%m.%d
- Use days as the unit of time measurement
- Filter indices newer_than 5 days
_filter is a dictionary object. We send it as key word arguments (kwargs) to apply_filter.
The resulting _filter dictionary will be:
{
'pattern': '(?P<date>\\d{4}\\.\\d{2}\\.\\d{2})', 'value': 5,
'groupname': 'date', 'time_unit': 'days',
'timestring': '%Y.%d.%m', 'method': 'newer_than'
}
import elasticsearch
import curator
client = elasticsearch.Elasticsearch()
indices = curator.get_indices(client)
_filter = curator.build_filter(
kindOf='newer_than', value=5, time_unit='days',
timestring='%Y.%d.%m'
)
working_list = curator.apply_filter(indices, **_filter)
The contents of working_list would then only be indices matching these criteria.
Filter indices by custom regular expression¶
This example will generate a list of indices matching a custom regular
expression (your expression)
.
(your expression)
needs to be a valid regular expression.
_filter is a dictionary object. We send it as key word arguments (kwargs) to
apply_filter. _filter‘s contents: {'pattern': (your expression)}
import elasticsearch
import curator
client = elasticsearch.Elasticsearch()
indices = curator.get_indices(client)
_filter = curator.build_filter(kindOf='regex', value=(your expression))
working_list = curator.apply_filter(indices, **_filter)
The contents of working_list would then only be indices matching (your expression)
Filter indices by excluding matches¶
This example will generate a list of all indices not matching the pattern, ‘dev-‘.
The effective regular expression would be: ^dev-.*$
_filter is a dictionary object. We send it as key word arguments (kwargs) to
apply_filter. _filter‘s contents: {'pattern': 'dev-', 'exclude': True}
import elasticsearch
import curator
client = elasticsearch.Elasticsearch()
indices = curator.get_indices(client)
_filter = curator.build_filter(kindOf='exclude', value='dev-')
working_list = curator.apply_filter(indices, **_filter)
The contents of working_list would then be all indices not matching the pattern, ‘dev-‘.
Note
Any filter can become an exclude by adding 'exclude':True
to the
_filter dictionary.
Filter indices by time string as a pattern¶
This example will generate a list of indices having a matching time string, where value must be a valid python strftime string.
_filter is a dictionary object. We send it as key word arguments (kwargs) to
apply_filter. _filter‘s contents:
{'pattern': '(?P<date>\\d{4}\\.\\d{2}\\.\\d{2})'}
import elasticsearch
import curator
client = elasticsearch.Elasticsearch()
indices = curator.get_indices(client)
_filter = curator.build_filter(kindOf='timestring', value='%Y.%m.%d')
working_list = curator.apply_filter(indices, **_filter)
The contents of working_list would then only be indices having a matching time string.
More complex example mimicking the CLI¶
This example will show time-series indices matching prefix, older_than 30 days (the time_unit), and newer_than 60 days.
import elasticsearch
import curator
client = elasticsearch.Elasticsearch()
indices = curator.get_indices(client)
filter_list = []
filter_list.append(curator.build_filter(kindOf='prefix', value='logstash'))
filter_list.append(
curator.build_filter(
kindOf='older_than', value=30, time_unit='days',
timestring='%Y.%d.%m'
)
)
filter_list.append(
curator.build_filter(
kindOf='newer_than', value=60, time_unit='days',
timestring='%Y.%d.%m'
)
)
working_list = indices
for filter in filter_list:
working_list = curator.apply_filter(working_list, **filter)
curator.show(working_list)