Page tree
Skip to end of metadata
Go to start of metadata

Background

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.

Filters

Predefined Filters

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).

Custom Filters

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:

Currently, selecting "Today" in the date filter will result in an empty data set, as the metrics are only gathered at the end of each day.

Clicking on one of these ranges will cause the dashboard to revisualise the data for the selected date range.

Freeform Filters

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:

  • AND
  • OR
  • NOT
  • Grouping using parentheses - '(' and ')'

Please note that the conjunction operators must be all uppercase.

These compound conditions are built up from individual clauses based on fields, and the most common syntax (for restricting to a specific value) is:

fieldName:<value>

Please see the Lucene query language reference for more information on other types of query (range queries, greater than and less than queries, etc.).

Fields

Some of the more useful fields provided by the tool include:

Field NameData TypeDescriptionGit CommitsGitHub issues & PRsConfluenceMailing ListsExample Values
author_nameStringThe full name of a person.

"Frank Tarsillo"

"Jon Freedman"

author_org_nameStringThe organisational affiliation of a person.


"Symphony LLC"

"IHS Markit"

projectString

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"

"Minuet"

"Integration Bridge"

github_repoStringThe name of a GitHub repository.


"symphonyoss/symphony-java-client"

"symphonyoss/symphony-java-api"

"symphonyoss/RestApiClient"

author_botBooleanFlag 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.).


"false"

"true"

filesNumberThe number of files affected by a commit.

1

10

100

lines_added

NumberThe number of lines of text added by a commit.

1

10

100

lines_changedNumberThe number of lines of text modified by a commit.

1

10

100

lines_removedNumberThe number of lines of text removed by a commit.

1

10

100

pull_requestBooleanFlag that indicates whether this GitHub issue is a pull request (true) or an issue (false).

"false"

"true"

time_open_daysNumberThe number of days a GitHub issue or PR has been open.

180

365

time_to_close_daysNumberThe number of days a GitHub issue or PR took to close.

180

365

typeStringThe type of Confluence object that was edited.

"page"

"comment"

"blog"

is_new_pageNumberFlag that indicates whether this change is a creation.

1

title
StringThe title of the edited page.

"Project Lifecycle"

"Working Groups"

listStringThe mailing list the email was sent to.

"dev"

"wg-financial-objects"

"wg-desktop-wrapper"

"wg-api"

sizeNumberThe size of the email, in bytes.1746

Example Queries

QueryDescription
*Show everything (the default).

NOT project:"Foundation Infrastructure"

Filters out the Foundation's various infrastructure projects (which are mostly not of interest to the wider community).

NOT project:"WebRTC"

Filters out the "WebRTC" project.

author_org_name:"Symphony LLC"

Displays activity from Symphony LLC.

author_name:"<your name>"

Displays your activity.

NOT project:"Foundation Infrastructure" AND NOT author_org_name:"Symphony Software Foundation"

Filters out the Foundation's various infrastructure projects, as well as all activity by Foundation staff (on any project).
files:>100

Displays git commits which affected more than 100 files.

lines_added:>1000 OR lines_changed:>1000 OR lines_removed:>1000Displays "big" git commits (those which added, changed or removed more than 1000 lines of text).
pull_request:"false"

Displays GitHub issues only (not PRs).

time_open_days:>180Displays all GitHub issues & PRs that have been open for more than 6 months.
NOT is_new_page:1Displays all Confluence edits. Note that the is_new_page field does not necessarily contain a "0" value for edits - in most cases the field is not present, hence the use of "NOT".
list:"dev"Displays all emails sent to the developers mailing list.
size:>32767Displays 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.

  • No labels