Retrospective 3.5.0 - Always able to find your needle in a haystack

Time since the last release has passed quickly and here we are today providing you yet another release of our cool Retrospective Log Analyzer. Everybody knows that the devil is in the detail, thus in the 3.5.0 release we tried to polish small but significantly important details of our software. Let’s see what the new version can offer you so you’ll always be able to find your needle in a haystack of any kind of log data:

  • A broad extension of available search criteria covering not only text filtering such as regular expressions (regex) and wildcards but also time-based filtering allowing you to search your log data produced in the last hour or during the current day.

  • Flexible joining of time search criteria in a way that matches data to any of the formulated criteria. Previously you would be forced to run search several times looking for files from last week, yesterday and today. Now you can do it in a single search without needing to click around and switch between tabs.

  • User-friendly extension of the context diving that aids you in the quite common problem: “Ok I’ve found what I was looking for but now I want to know what happened just before it and just after it”.

  • Nice highlighting and formatting of Xml data appearing in the log files that allows you to understand and analyze any piece of Xml more easily than ever.

  • Full upgrade to Java 8 which is definitely not something easily noticeable but “under the hood” ensures that your machine is used as effectively as possible when doing intensive searching or monitoring. Besides, every geek knows that Java 8 is cool as hell which ideally suits the coolness of Retrospective.

Search criteria

Yes, yes, yes, nicely polished 3.5.0 makes quite an impression! Definitely, all those who are used to *NIX command line will joyfully embrace the extension of search criteria. Most of us speak English but System Administrators speak regex. Thus, support for regular expressions has been on our schedule for a while and now is finally brought to you in all its strength. It’s worth mentioning that when searching remote files, regex is completely evaluated on the remote server ensuring the best performance possible. In addition to regex, we provide support for simple wildcards: ? – representing any single character; * - representing any number of characters.

Context diving

When it comes to context diving, it was already supported but was not very sophisticated. You could use it by selecting an entry and choosing from the context menu to open a new tab with some contextual time search criteria that could then be freely adjusted. Now, in addition to looking for data surrounding given log entry, you are able to search for:

  • log data produced since some time ago until the selected entry

  • log data produced since the selected entry until now

  • log data produced between two selected entries

All this searching can be performed either for: the whole, currently used profile; the single file to which selected entry is related; or a set of files to which selected entries are related. Moreover you are also now able to add time of selected row entry to the search criteria in the current tab which can often be handier than opening a new tab.

Improvements in the background

When it comes to less visible improvements provided by 3.5.0, then for sure it is worth mentioning the improvement of saturation-adaptation algorithm of connection handling. The algorithm was used to dynamically adjust the number of simultaneous connections to given host on basis of host behavior leading to optimal speed, resource consumption and robustness. Now the algorithm is smart enough to ensure early prevention of starvation situations (no free connection for handling new searching/monitoring) and reacts more predictably to the changes in host behavior. If, for example, host behaves fine, then you can be steadily confident that all the connections configured in maximum connection limit will be used. On the other hand, when sudden problems pop up, the number of connections shrinks to let the host catch some breath and deal with any other potential workload.

Similar improvement was implemented in the scope of Retrospective thread pools that are now equipped with inner elasticity so the application easily adjusts to the changing demands. So when you are doing a single lazy search then the number of threads, and thus effective resource consumption, will be a lot smaller than when doing intensive searching and monitoring in several tabs! Of course, when the intensive searching stops, then after some expiration period, threads that are not needed anymore are automatically terminated and some resources are given back to your OS … making it very happy of course.

Small enhancments worth mentioning

We also fixed the little things, for example, “I want to monitor a directory but Retrospective does not allow me to do it because it’s empty”. A support for initially empty directory is now available for you. Also when the file was skipped from searching because of its modification time you could wonder what makes the results not appear in the result table. Now you are appropriately notified about skipping files performed in optimizations. We also improved the memory allocation and buffer handling so you can notice a smaller footprint of Retrospective especially when doing some searching. Finally, we have fixed a lot of bugs both on the UI side and on the Core side so … if they annoyed you, they are gone now, wandered away to green pastures – a proper place for all kind of bugs.

So there are bigger things and there are smaller things added to Retrospective making it better but for sure there are a lot of them and it makes checking out this shiny new release hard to resist… especially when you have a bunch of needles to find daily in different kinds of haystacks!