Tech Topics

Curator 1.2.0 Released

Greetings! Even though it has only been a few weeks since Curator v1.1.0 was released, we're rolling out another new version. Introducing Curator v1.2.0!

New features

  • User-specified date patterns: This has long been a requested feature.
  • Support for weekly indices: This, too, has been long requested.
  • Multiple log format options: You can log in Logstash format out of the box now!

These changes are documented thoroughly in the Curator Documentation Wiki

Updates

  • Cleaner log output: Default log output is cleaner. Debug logging still shows everything.
  • Dry runs are more visible in log output: This makes it easier to follow when doing a test run.

Date patterns and --timestring

In previous releases of Curator, the date was calculated by separating the elements of the index name using a separator character. This design decision was simple for use with the Logstash indices the program was originally designed to manage. Since then, however, Curator has matured into a time-series index manager, and that has meant different index naming schemas.

There is still a need to do date math calculations by interval, and so the --time-unit option remains, though now you can also specify weeks as the time unit. The default --timestring options should still work out of the box as they did previously. They are as follows:

Time Unit « » Timestring
days %Y.%m.%d
hours %Y.%m.%d.%H
weeks %Y.%W

What this means, is that if you specify hours as your time unit, and do not specify a --timestring, the default will be %Y.%m.%d.%H, which is "Year.Month.Day.Hour" expressed in python strftime formatting. Similarly, if you were to specify weeks as your time unit, and allowed Curator to provide the default --timestring it would be %Y.%W.

Where this feature now provides value is with indices with no separator character between date elements. For example, if I had daily indices like production-20140724 you could disable the bloom filter cache for indices older than 2 days with a command like this:

curator bloom --prefix production- --older-than 2 --timestring %Y%m%d

Note that the default time unit is days in this example. Hourly indices—like hourly-2014072414 could be managed in similar fashion:

curator bloom --prefix hourly- --older-than 2 --time-unit hours --timestring %Y%m%d%H

Replacing --separator

If you were using a custom separator character with a previous version of Curator, your change should be relatively simple. If your old command was for an index like cerberus-2014-07-24, your command would have used --separator -. Now, your command will look like this:

curator delete --prefix cerberus- --older-than 30 --timestring %Y-%m-%d

Just put your separator string in between the year (%Y), month (%m), and day (%d) identifiers!

This also means that you can now do what was previously impossible in Curator: mixed separator characters. Now you could process indices like logs-2014.07.24-14 with a --timestring like %Y.%m.%d-%H.

Learn more about --timestring in the Curator Documentation Wiki.

Feedback

Many of these features came about because of user comments and requests. If you have a feature request or find a bug, please let us know!

We also love shout-outs on Twitter. Our twitter handle is @elasticsearch

Happy Curating!