Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Next »

Data Sources

Custom metrics can be created using the following data sources:

  • Task Tracking System

    • Jira

    • Rally

    • Azure DevOps Board

  • Version Control

    • Azure Repos GIT

    • BitBucket

    • BitBucket Server (Stash)

    • GitHub

    • GitLab

Data Source Tables

Each data source has several datasets (tables) with different types of data collected during data loads.

Data Source type

Table

Task Tracking System

Ticket

TicketHistory

Worklog

Sprints

Releases

Version Control

Branch

Commit

PullRequest

Tag

If project has no configured data sources, then related tables will be empty.

If you need to create metric based on data from different tables you should create PerfQL request (more details Custom Selection (PerfQL) and Joins Between Tables).

If data source is configured, then each table has a list of columns, which are added on the Axis X and Y.

To build a custom metric with using historical data you can use not only TicketHistory table but also a function ticket_snapshots.

Ticket_snapshots

A snapshot is a representation of tickets within a defined time interval, allowing for a quick view of the most recent ticket activity over specific periods.

Examples:

  1. To get historical data of tickets changes with type “Bug” and which have already moved in done status:

select * from ticket_snapshots(
    ARRAY(select key from ticket where type = 'Bug'))
 sn where is_done(sn);
  1. To get list of tickets changes in the specified time interval and date range:

select * from ticket_snapshots(
  ARRAY(select key from ticket), 
  'week', 
  '2023-02-17 14:24:15.000', 
  '2023-03-17 14:24:15.000'
);
  1. To get historical data for the specific tickets with interval - 1 month

select * from ticket_snapshots(
  ARRAY['EPMTEST-0001', 'EPMTEST-0003'],
  'month'
)

Mapping Azure DevOps Board with Ticket table

Azure DevOps Board

Custom Metric

Team Project

Subject

Id

Id

Id

Key

Title

Summary

Work Item Type

Type

State

Status

Priority

Priority

Resolution

Resolution

Created_by

Reported_by

Assigned to

Assigned_to

Created date

Created

Changed date

Updated

Resolved Date

Resolved

Story  points

Story_points

Completed Work (in hours)

Time_Spent (in minutes)

Original Estimate

Time_estimate

Remaining Work

Time_remaining

Tags

Labels

Area Path

compoments

 

Sprints

 Child

Sub_tasks

 Parent

Parent_task

 Parent (for Story)

Epic_key

 Custom_fields

Custom_fields

 Closed Date

Done_date

 Due Date

due_date

 Resolved By

resolved_by

Severity

severity

Data Types

Each filed has an icon to display type of a data in them:

Text

Date

Numeric

Array

Boolean

JSON


Note:

  1. Ability to add fields on the Axes and use the different Settings on the chart depend on fields type.

  2. Azure Board (TFS/VSTS) has fields which names are differ in the Custom Metrics and for metric development should be used Perf names:

    • State - Status

    • Area - Components

    • Iteration - Sprints

    • Tag - Labels

Joins Between Tables

By default, Custom Metric v2 is created based on one table at a time. By using joins, you can retrieve data from two or more tables based on logical relationships between the tables and create a chart based on them.

SELECT * FROM table_A <JOIN_TYPE> table_B ON join_condition

PERF tables could be joined with using the following conditions:

Table

Condition

Ticket JOIN with

TicketHistory

Ticket.id=TicketHistory.workitem_id

Worklog

Ticket.id=Worklog.workitem_id

Sprint

Sprint.id=any(Ticket.sprints)

Release

Release.id=any(Ticket.fix_releases)

TicketHistory JOIN with

Ticket

TicketHistory.workitem_id=Ticket.id

Worklog

TicketHistory.workitem_id=Worklog.workitem_id

Sprint

Based on situation

Release

Based on situation

Worklog JOIN with

Ticket

Worklog.workitem_id=Ticket.id

TicketHistory

Worklog.workitem_id=TicketHistory.workitem_id

Sprint

Based on situation

Release

Based on situation

Sprint JOIN with

Ticket

Sprint.id=any(Ticket.sprints)

TicketHistory

Based on situation

Worklog

Based on situation

Copyright © 2024 EPAM Systems, Inc.

All Rights Reserved. All information contained herein is, and remains the property of EPAM Systems, Inc. and/or its suppliers and is protected by international intellectual property law. Dissemination of this information or reproduction of this material is strictly forbidden, unless prior written permission is obtained from EPAM Systems, Inc.

  • No labels