A couple of months ago, we announced the availability of Ticketmaster’s visualization and analytics platform ‘Metrilyx’ as an open source offering at the Southern California Linux Expo.
We use Metrilyx internally at Ticketmaster as our engineering and operations dashboard platform with OpenTSDB as the data source. With Metrilyx it’s quick and easy to create dashboards for time series and performance data. Some of our more interesting graphs actually track business metrics like ticket orders per second. Metrilyx is incredibly flexible and supports several million data points per page. Our dashboards refresh multiple times per minute!
The name Metrilyx comes from “metric analytics”. The initial development of Metrilyx stemmed from the lack of visually appealing and interactive graphs in the OpenTSDB tool chain. We imagined a system that could leverage the tagging capabilities of OpenTSDB and which would allow us to decentralize dashboard creation and ownership into our delivery teams. We wanted to set our metric and performance data free!
We also want you to be able to set your metric data free, so we released Metrilyx as an open source offering. We’re really excited at the very positive reception Metrilyx has had in the open source community where we’ve seen great contributions and feedback.
In the first version of Metrilyx we used HTTP GET and POST requests to fetch the graph data. We quickly realized that page rendering time was poor due to the browsers limitation on the number of concurrent AJAX requests that could be made to a single domain. The result was that the browser was queueing requests and our graphs were showing out of date data. When we decreased the update frequency it didn’t help.
Further, while the browser was wasting time making HTTP requests the overall user experience was unappealing and generally poor. In recent releases we’ve improved Metrilyx to use asynchronous websockets and persistent connections. We’re using Twisted and the Autobahn framework so that the deflate extension is supported in each websocket message.
Performance and Feature Improvements
So with these performance improvements we’ve removed overhead from the Metrilyx backend by ensuring end to end compression all the way to the client. This change significantly improved the overall performance and user experience. Requests are no longer queued and we still get end to end compressed data for low network bandwidth. The UI is more responsive as the browser has to make fewer HTTP connections.
UI performance improvements have also been made for a smoother user experience. Read on…
Frequent Updates & Dog Food!
Along with the performance enhancements our latest Metrilyx 2.3 release brings some exciting new features including event annotations, improved metric search experience, new graph types and graph arrangement optimizations.
Graphs can be annotated with any event occurring in your ecosystem. This allows you to correlate fluctuations in performance with changes in the environment. Annotations can be alarms, log messages, deployments, infrastructure changes or any other structured data you’d like to plot. Each annotation can contain arbitrary user data like email addresses, escalation, priority, contact group, etc.
Multiple Graph Types
Users can choose from a wider range of graph types including line, area, stacked and pie charts.
Our multi-pane graphs allow you to view and compare closely related data sets while maximizing space above the fold.
Richer Metric Search
Metrics, tag keys and values can now be searched via regular expressions. We built this feature to address OpenTSDB’s search limitations. By allowing users to perform complex queries they can discover the metrics that matter to them.
We simplified the URL structure so that links are easier to manipulate and share with your team.
We’re so excited about our Metrilyx offering and we hope you like it too! For more information about the project such as the roadmap, development progress or if you’d like to contribute, visit us at our Ticketmaster Github group.