In order to better support and steer the community's activity, the Symphony Software Foundation has implemented a Kibana-based tool that captures and visualises various metrics for the collaborative bodies we host (initially the open source projects, but working group metrics are in progress).
This tool is available at https://metrics.symphony.foundation/
For convenience, we've embedded select dashboards here in the wiki, one on each of the following pages:
Please don't be shy about playing with the tool - none of the filtering changes you make are persisted (unless you choose to bookmark the page, and even then the changes are only available via that bookmark), so you can play as much as you like and always reset back to the default view simply by navigating back to the tool's home page.
Many of the dashboards provide pre-defined filters for certain common operations - for example filtering out Foundation Infrastructure projects, Document and Examples projects, and the WebRTC project (see below for more information on this last one).
These predefined filters appear as "bubbles" at the top of the dashboard:
Some of these filters are disabled (turned off) by default, and this is indicated by the candy striped colours on the bubbles. To turn a filter on, mouseover the bubble, and find the checkbox at the left hand end of the tray of control toggles:
Checking this checkbox will enable the filter, and the dashboard will automatically update to reflect the new restriction. The filter bubble will also become a solid colour, to visually indicate that the filter is in effect:
You may also enable and disable all filters at once, using the Actions menu visible at the right hand end of the row of filter bubbles.
A red bubble is a
NOT filter, while a grey bubble is an
AND filter (see below for more information regarding conditions).
While the embedded dashboards and predefined filters are convenient, more powerful custom filters are available when using the full version of the tool.
Date Range Filter
At the top right corner of the tool is a menu showing the current date range - for most dashboards this defaults to "Last 2 Years". Clicking on this menu will bring up various date range filters:
Clicking on one of these ranges will cause the dashboard to revisualise the data for the selected date range.
Complex filtering can be performed using the text box at the top of the screen (by default this contains a single asterisk '*' character i.e. include everything):
This text field allows the user to enter a query (similar to a SQL WHERE clause), using Lucene query language. The most common use of this capability is to filter the data via compound conditions, conjoined with standard boolean operators:
These compound conditions are built up from individual clauses based on fields, and the most common syntax (for restricting to a specific value) is:
Please see the Lucene query language reference for more information on other types of query (range queries, greater than and less than queries, etc.).
Some of the more useful fields provided by the tool include:
|Field Name||Data Type||Description||Git Commits||GitHub issues & PRs||Confluence||Mailing Lists||Example Values|
|String||The full name of a person.||✅|
|String||The organisational affiliation of a person.||✅|
The name of a project.
Note that projects are logical groupings of GitHub repositories - they do not map to anything in GitHub (GitHub doesn't support this concept).
"Symphony Java Client"
|String||The name of a GitHub repository.||✅|
|Boolean||Flag that indicates whether an author is a bot or not. This typically indicates the item was created by a CI tool of some kind (TravisCI, CircleCI, Jenkins, etc.).||✅|
|Number||The number of files affected by a commit.||✅|
|Number||The number of lines of text added by a commit.||✅|
|Number||The number of lines of text modified by a commit.||✅|
|Number||The number of lines of text removed by a commit.||✅|
|Boolean||Flag that indicates whether this GitHub issue is a pull request (true) or an issue (false).||❌|
|Number||The number of days a GitHub issue or PR has been open.||❌||✅||❌||❌|
|Number||The number of days a GitHub issue or PR took to close.||❌||✅||❌||❌|
|String||The type of Confluence object that was edited.||❌||❌||✅||❌|
|Number||Flag that indicates whether this change is a creation.||❌||❌||✅||❌|
|String||The title of the edited page.||❌||❌||✅||❌|
|String||The mailing list the email was sent to.||❌||❌||❌||✅|
|Number||The size of the email, in bytes.||❌||❌||❌||✅||1746|
|Show everything (the default).|
|Filters out the Foundation's various infrastructure projects (which are mostly not of interest to the wider community).|
Filters out the "WebRTC" project.
|Displays activity from Symphony LLC.|
|Displays your activity.|
|Filters out the Foundation's various infrastructure projects, as well as all activity by Foundation staff (on any project).|
Displays git commits which affected more than 100 files.
|Displays "big" git commits (those which added, changed or removed more than 1000 lines of text).|
Displays GitHub issues only (not PRs).
|Displays all GitHub issues & PRs that have been open for more than 6 months.|
|Displays all Confluence edits. Note that the |
|Displays all emails sent to the developers mailing list.|
|Displays all emails greater than 32KB in size.|
Please feel free to add more example queries you've found useful while exploring the metrics dashboards!
A Note on the WebRTC Project
The WebRTC project is a small extension to an existing C++ project originally developed by Google and others. Because of typical development practices in the C++ ecosystem, the Foundation's repository includes an entire copy of the entire development history of that project, from before the extension commenced development. This significantly skews the metrics presented on these dashboards and can make it difficult to determine which activity is from our community, and which is "inherited" from the WebRTC developer community.
For this reason we've provided a predefined filter on all dashboards that filters out all activity for the WebRTC project, and we suggest keeping that filter turned on most of the time.