Skip to content
Elliott Ridgway edited this page May 18, 2021 · 1 revision

What is Watchr?

Watchr is a Java application designed to help you gather and visualize data over time.

Some example use cases for Watchr

  • You have a nightly job that gathers metrics at the end of the process, and you'd like to visualize those metrics, with automatic updates to the graphs as more data is added.
  • You have a large collection of timestamped report files that are all formatted similarly, and you would like to read all of these and generate graphs from the data.

What are Watchr's features?

  • Watchr's flexible JSON configuration file allows you to create graphs tailored to your use case.
  • Watchr graphs can be organized hierarchically (for example, if you have data on child processes that subdivide the value of a longer parent process).
  • Automatically generate derivative data from your dataset, such as rolling averages.
  • User-defined rules allow Watchr to react to new changes in incoming data.
  • Easily filter out bad data points - no database access required

What is Watchr compatible with?

Inputs

  • Watchr can read data out of any arbitrary XML file.
  • Watchr can read data out of any arbitrary JSON file.

Graphing

  • Watchr uses plotly.js to display its graphs by exporting to static HTML pages at the end of executing Watchr.
  • Log an issue if you would like Watchr to support another graphing library.

Final Display

  • Watchr can be executed on the command line as a standalone Java application.
  • Watchr is also available as a Jenkins plugin.
  • Log an issue if you would like to see Watchr integrated with your favorite data dashboard.

How can I build Watchr?

To get the basic functionality that Watchr provides, you will need to build watchr-core at minimum:

git clone https://github.com/sandialabs/watchr-core.git watchr-core
cd watchr-core

If building watchr-core as a standalone application:

mvn package appassembler:assemble
sh target/appassembler/bin/watchr

If building watchr-core as a dependency for another Maven jar:

mvn clean install
Clone this wiki locally