sourcegraph / appdash

Application tracing system for Go, based on Google's Dapper.
https://sourcegraph.com
Other
1.72k stars 137 forks source link

Add a new AggregateStore + Dashboard #69

Closed slimsag closed 9 years ago

slimsag commented 9 years ago

The Traces link on the home-page is now a drop-down menu:

image

Dashboard brings you to the new dashboard which only shows aggregated traces (from an AggregateStore), and All Traces is the traditional/standard viewing mode.

Aggregated traces appear under the Traces -> All Traces page as any other trace would, except an AggregateStore will only keep the N-slowest (5 by default) traces around:

image

The new Dashboard page presents a sort-able table of multiple traces (grouped together by root span name, e.g. HTTP route) and a timespan over the last 72/hrs so you can select which time period you are viewing:

image

The timeline will refresh data with the server for the given time-period upon moving the bar, so the results are always up-to-date, allowing you to narrow down all the way down to no results (not likely in a real-world app, however):

image

Each group of traces has a number of statistics that go along with it, like the average/mean time (e.g. taken to serve the HTTP request), minimum time (shortest HTTP request), maximum time (longest HTTP request), the standard deviation (to determine how reliable the calculated average/mean is) and the number of timespans that were used to produce those numbers:

image

The new AggregateStore type has various configuration properties to tweak, but the defaults can be gotten simply with:

store = appdash.NewAggregateStore(memStore)

which creates an aggregation store placing items into the memory store as the final destination.

slimsag commented 9 years ago

I noticed just now I missed/forgot filtering the aggregated groups on the Dashboard page by name. I went ahead and enabled the options that bootstrap-table provides, which is actually really nice and functional:

image

We can turn on/off specific columns, refresh the data, or fuzzy-search by name. We can always tweak it later, too.

keegancsmith commented 9 years ago

LGTM