savory recently received a refactoring of its charting/metric code. The new framework is lovingly called metrx</code>.

It has borrowed ideas from various pieces of software that I’ve had the pleasure of working with over time, and is far more flexible than the previous design.

Where previously all metrics would load on one page, and require the editing of system files such as javascript and HTML that would no doubt be updated in the future (destroying all your changes), the new framework eliminates this and gives you as the developer the ability to control everything that is seen in the metric.

The new landing page for the metrx</code> module looks something like this (given the default metrics that come with savory).

<img class="size-medium wp-image-923 aligncenter" title="Screenshot-savory - Google Chrome-1" src="http://caphrim.net/tim/wp-content/uploads/2010/11/Screenshot-savory-Google-Chrome-1-300x166.png" alt="" width="300" height="166" /></a></p> There are two types of metrics that savory will display for you. Right now these types are kinda up in the air. Since a metric is so flexible now, the types may end up going away in the future. In any case, this would not affect current metrics. By clicking on a particular metric, you are taken to that metric. The metric itself functions like a regular controller in savory with the exception that it has some abstract methods that you must define, and takes care of some environment initialization that normally you as the developer are tasked with dealing with.

One of the new metrics that is in savory is the UrlAge metric. Its page looks like this</p>

<img class="size-medium wp-image-922 aligncenter" title="Screenshot-savory - Google Chrome" src="http://caphrim.net/tim/wp-content/uploads/2010/11/Screenshot-savory-Google-Chrome-300x219.png" alt="" width="300" height="219" /></a></p>

As you can see, the level of "what you can show" really is only up to you. Your metric has full access to the jQuery, and jQuery UI stack supplied with savory. It also, is free to include its own javascript and CSS libraries, configuration settings, actions to handle in its controller, as well as specify whether or not it can export portions of its data for download.</p>

Finally, in addition to the above, the metrics content itself can be embedded in 3rd party applications such as splunk so that if you already have a metrics tool (perhaps one that leverages splunk) you can embed links in it to display content from savory.</p>