05 November 2013

Kibana 3: Milestone 4

Von Rashid Khan

Kibana 3: Milestone 4 has been released and brings with it a wealth of performance, usability and visualization enhancements. Let’s take a look at a few of the significant changes. If you’re still on Milestone 3, check out this post for even more new features.

An all new look

Kibana’s panels have been overhauled to feature more prominent labeling, easier to use buttons and links, and an entirely new style. The changes result in improved usability, as well as a space efficient design that allows for great data density and a more consistent UI.

Kibana’s new look

Consistent query and filter placement

To improve UI harmony, the query and filter panels get their own collapsible, pull-down sections right under the navigation bar. There is no longer a need to place these essential panels yourself, as they’re included in every dashboard by default. Like many of Kibana’s features, they can be disabled entirely from the dashboard configuration dialog.

100% new time range selector

If you’re familiar with Kibana’s 2 year history, you might know that there have been several time picker evolutions. The new time picker is a total rewrite that not only uses less space than the old one, but is simpler and easier to use. By moving this important component off the main dashboard, Kibana now has more room to devote to important data and charts. Plus, the new filter format implements Elasticsearch’s date math so there’s no need to reselect a time frame to move your time window; every search will update the window automatically.

An all new time picker

Filterable field list

Find fields quickly and easily with the type-to-filter feature of the table.

Filterable field lists

Ad-hoc facets

And, once you’ve found those field,s analyze them quickly with ad-hoc terms facets. Simply click a field and select a visualization to see the top 10 term matches for that field.

Exploration is even easier

No need to add a panel. Pie chart on the fly!

Dynamic dashboards and URL parameters

Kibana 3: Milestone 4 can now take input via URL parameters! This much anticipated feature comes in two flavors: templated dashboards and scripted dashboards. Kibana 3: Milestone 4 ships with 2 examples designed to work flawlessly with Logstash and gives you a foundation to build your own dashboards with. Templated dashboards are easy to create by simply exporting your dashboard schema to a file, editing it and adding it to your app/dashboards directory. For example, take this section from logstash.json (on github)

  "0": {
    "query": "{{ARGS.query || '*'}}",
    "alias": "",
    "color": "#7EB26D",
    "id": 0,
    "pin": false
  }

Templated dashboards use “handlebar syntax” to add dynamic section to the JSON based dashboard scheme. Here we’ve replaced the contents of the query key with an expression that translates to: Use the query parameter from the URL, if one is not present, use *. Now we could access this dashboard with a URL such as

http://kibana.example.com/index.html#/dashboard/file/logstash.json?query=extension:zip

More complex scripted dashboards

Scripted dashboards are an even more powerful method of taking URL parameters, using all of the power of JavaScript to compose a complete dashboard object. An example, logstash.js (on GitHub) is included in app/dashboards. Because scripted dashboards are entirely JavaScript, we can perform complex operations, like splitting URL parameters. For example, in this URL we are searching for HTML, CSS or PHP, in the last 2 days, and showing request, response and user agent in the table. Note the important change from file to script in the URL:

http://localhost:8000/index.html#/dashboard/script/logstash.js?query=html,css,php&from=2d&fields=request,response,agent

Go get it now

Milestone 4 is a big step forward for both implementers and users. It is simultaneously more powerful and more simple. And, of course. Kibana continues to integrate seamlessly with Logstash, including the recently released Logstash 1.2.2. Kibana can be downloaded directly from elastic.co right here.

Also, we’re hiring

Do you want to get paid to work on open source? Are you passionate about JavaScript, with a head full of data visualization ideas? We’re way more interested in what you know and what you can do than where you live. Check out our open positions.