Metric Search
Most Atlassian products allow a plugin to store plugin specific data as properties in the product instead of an external database.
For instance a plugin can store a specific value as a property of an issue. There is no need to configure a custom field or any other stuff to make this possible.
JIRA also allows the user to use these properties as search parameters during an JQL based search, if the plugin has marked this properties as searchable.
HeyQL Metrics calculates and stores a bunch of properties for each issue, which is using metric data. So you are able to search for issues, where the highest metric entry was below a specific value during the last week.
Or you can search for metrics, which haven't got any new metric entries in the last 3 days.
These property parameters can be freely combined with other JQL parameters or functions. So you have the complete freedom for your issue search.
Usage
Using JQL Name
HeyQL Metrics comes with a bunch of new JQL parameters. All issue properties which are stored by HeyQL Metrics have an JQL aliases, which can be easily used in JQL based searches.
JIRA autocompletes your jql if you start typing. So in the Issue Navigator open the Advanced mode and write "metric" und JIRA will provide a list of all alvailable JLQ parameters regarding metrics.
Example
metricAmount > 5 AND metricHighestValue > 100
Examples
Search for issues, where ...
... the highest metric entry is above a value of 100
metricHighestValue > 100
... the lowest metric entry is under 10 during the last month
metricMonthLowestValue < 10
... the mean of all metric entries is between 30 and 70
metricMeanValue >= 30 AND metricMeanValue <= 70
... the mean of all metric entries of the last WEEK is under 40 but the mean of all metric entries for the last MONTH is above 50
So we search for metrics, which went worst by a difference above 10 during the last week
metricWeekMeanValue < 40 AND metricMonthMeanValue> 50
... the team is "Website Guys" (projectkey= WEB) and the label is "SW_Quality" and the issuetype is "metric" and the last metric entry is below 20
project = WEB AND label = SW_Quality AND issuetype = metric AND metricRecentValue < 20
Time windows
The time based properties like day, week or year are calculating data based on a time window. The time windows are defined as following:
Time window | definition |
---|---|
hour | one hour |
day | 24 hours |
week | 7 x 24 hours = 168 hours |
month | 4 x 7 x 24 hours = 672 hours |
quarter | 24 hours x 365 days / 4 = 2190 hours |
year | 24 hours x 365 days = 8760 hours |
Examples
The following JQL will give you the highest value bigger 20 of all metric entries stored with a timestamp in the last 168 hours:
metricWeekHighestValue > 20
Because a month in HeyQL Metrics is based on hours, a search performed on 1.5.2016 does not only consider metric entries with a timestamp higher than 1.4.2016.
1.5.2016 16:00 minus 672 hours = 3.4.2016 16:00
Properties
metric
JQL name | Type | Description | Calculation | Time window | Property Name |
---|---|---|---|---|---|
metricAmount | number | amount of all metric entries | infinite | amount.value | |
metricOldestValue | number | value of the oldest entry | oldest | oldest.value | |
metricOldestTimestamp | date | timestamp of the oldest entry | oldest | oldest.timestamp | |
metricRecentValue | number | value of recent entry | recent | recent.value | |
metricRecentTimestamp | date | timestamp of recent entry | recent | recent.timestamp | |
metricHighestValue | number | highest value | highest | infinite | highest.value |
metricHighestTimestamp | date | timestamp of highest entry | highest | infinite | highest.timestamp |
metricLowestValue | number | lowest value | lowest | infinite | lowest.value |
metricLowestTimestamp | date | timestamp of lowest entry | lowest | infinite | lowest.timestamp |
metricMeanValue | number | mean value | mean | infinite | mean.value |
metricHourHighestValue | number | highest value in the last hour | highest | hour | hour.highest.value |
metricHourHighestTimestamp | date | timestamp of highest entry in the last hour | highest | hour | hour.highest.timestamp |
metricHourLowestValue | number | lowest value in the last hour | lowest | hour | hour.lowest.value |
metricHourLowestTimestamp | date | timestamp of lowest entry in the last hour | lowest | hour | hour.lowest.timestamp |
metricHourMeanValue | number | mean value in the last hour | mean | hour | hour.mean.value |
metricDayHighestValue | number | highest value in the last day | highest | day | day.highest.value |
metricDayHighestTimestamp | date | timestamp of highest entry in the last day | highest | day | day.highest.timestamp |
metricDayLowestValue | number | lowest value in the last day | lowest | day | day.lowest.value |
metricDayLowestTimestamp | date | timestamp of lowest entry in the last day | lowest | day | day.lowest.timestamp |
metricDayMeanValue | number | mean value in the last day | mean | day | day.mean.value |
metricDayHighestValue | number | highest value in the last week | highest | week | week.highest.value |
metricWeekHighestTimestamp | date | timestamp of highest entry in the last week | highest | week | week.highest.timestamp |
metricWeekLowestValue | number | lowest value in the last week | lowest | week | week.lowest.value |
metricWeekLowestTimestamp | date | timestamp of lowest entry in the last week | lowest | week | week.lowest.timestamp |
metricWeekMeanValue | number | mean value in the last week | mean | week | week.mean.value |
metricMonthHighestValue | number | highest value in the last month | highest | month | month.highest.value |
metricMonthHighestTimestamp | date | timestamp of highest entry in the last month | highest | month | month.highest.timestamp |
metricMonthLowestValue | number | lowest value in the last month | lowest | month | month.lowest.value |
metricMonthLowestTimestamp | date | timestamp of lowest entry in the last month | lowest | month | month.lowest.timestamp |
metricMonthMeanValue | number | mean value in the last month | mean | month | month.mean.value |
metricQuarterHighestValue | number | highest value in the last quarter | highest | quarter | quarter.highest.value |
metricQuarterHighestTimestamp | date | timestamp of highest entry in the last quarter | highest | quarter | quarter.highest.timestamp |
metricQuarterLowestValue | number | lowest value in the last quarter | lowest | quarter | quarter.lowest.value |
metricQuarterLowestTimestamp | date | timestamp of lowest entry in the last quarter | lowest | quarter | quarter.lowest.timestamp |
metricQuarterMeanValue | number | mean value in the last quarter | mean | quarter | quarter.mean.value |
metricYearHighestValue | number | highest value in the last year | highest | year | year.highest.value |
metricYearHighestTimestamp | date | timestamp of highest entry in the last year | highest | year | year.highest.timestamp |
metricYearLowestValue | number | lowest value in the last year | lowest | year | year.lowest.value |
metricYearLowestTimestamp | date | timestamp of lowest entry in the last year | lowest | year | year.lowest.timestamp |
metricYearMeanValue | number | mean value in the last year | mean | year | year.mean.value |
Additional documentation
The following documentation is provided by Atlassian and may give you information regarding JIRA Entity Properties.
JIRA Documentation for Entity Properties: https://developer.atlassian.com/jiradev/jira-platform/building-jira-add-ons/jira-entity-properties-overview
Connect Documentation Entity Properties in JIRA: https://developer.atlassian.com/static/connect/docs/latest/modules/jira/entity-property.html
Connect Documentation for Hosted Data Storage: https://developer.atlassian.com/static/connect/docs/latest/concepts/hosted-data-storage.html