This is an automated email from the ASF dual-hosted git repository.
warren pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake-website.git
The following commit(s) were added to refs/heads/main by this push:
new 90248014 docs: refactor metrics page
90248014 is described below
commit 90248014de92afdf1e986c1ae8db5ba393413607
Author: Startrekzky <[email protected]>
AuthorDate: Wed Aug 17 18:00:41 2022 +0800
docs: refactor metrics page
---
docs/Metrics/AddedLinesOfCode.md | 67 ++++++++++++++++++++++
docs/Metrics/BugAge.md | 67 ++++++++++++++++++++++
docs/Metrics/BugCountPer1kLinesOfCode.md | 67 ++++++++++++++++++++++
docs/Metrics/BuildCount.md | 67 ++++++++++++++++++++++
docs/Metrics/BuildDuration.md | 67 ++++++++++++++++++++++
docs/Metrics/BuildSuccessRate.md | 67 ++++++++++++++++++++++
docs/Metrics/CFR.md | 67 ++++++++++++++++++++++
docs/Metrics/ChangeLeadTime.md | 67 ++++++++++++++++++++++
docs/Metrics/CodingTime.md | 67 ++++++++++++++++++++++
docs/Metrics/CommitAuthorCount.md | 67 ++++++++++++++++++++++
docs/Metrics/CommitCount.md | 67 ++++++++++++++++++++++
docs/Metrics/DeletedLinesOfCode.md | 67 ++++++++++++++++++++++
docs/Metrics/DeployFrequency.md | 67 ++++++++++++++++++++++
docs/Metrics/DeployTime.md | 67 ++++++++++++++++++++++
docs/Metrics/IncidentAge.md | 67 ++++++++++++++++++++++
docs/Metrics/IncidentCountPer1kLinesOfCode.md | 67 ++++++++++++++++++++++
docs/Metrics/MTTR.md | 67 ++++++++++++++++++++++
docs/Metrics/MergeRate.md | 67 ++++++++++++++++++++++
.../{EngineeringMetrics.md => Metrics/Overview.md} | 6 +-
docs/Metrics/PRSize.md | 67 ++++++++++++++++++++++
docs/Metrics/PickupTime.md | 67 ++++++++++++++++++++++
docs/Metrics/RequirementCount.md | 67 ++++++++++++++++++++++
docs/Metrics/RequirementDeliveryRate.md | 67 ++++++++++++++++++++++
docs/Metrics/RequirementGranularity.md | 67 ++++++++++++++++++++++
docs/Metrics/RequirementLeadTime.md | 67 ++++++++++++++++++++++
docs/Metrics/ReviewDepth.md | 67 ++++++++++++++++++++++
docs/Metrics/ReviewRounds.md | 67 ++++++++++++++++++++++
docs/Metrics/ReviewTime.md | 67 ++++++++++++++++++++++
docs/Metrics/TimeToMerge.md | 67 ++++++++++++++++++++++
docs/Metrics/_category_.json | 7 +++
docs/Overview/Introduction.md | 2 +-
docusaurus.config.js | 2 +-
.../2022-05-18-apache-welcomes-devLake/index.md | 2 +-
33 files changed, 1888 insertions(+), 7 deletions(-)
diff --git a/docs/Metrics/AddedLinesOfCode.md b/docs/Metrics/AddedLinesOfCode.md
new file mode 100644
index 00000000..0644e445
--- /dev/null
+++ b/docs/Metrics/AddedLinesOfCode.md
@@ -0,0 +1,67 @@
+---
+title: "Added Lines of Code "
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/BugAge.md b/docs/Metrics/BugAge.md
new file mode 100644
index 00000000..4ea18675
--- /dev/null
+++ b/docs/Metrics/BugAge.md
@@ -0,0 +1,67 @@
+---
+title: "Bug Age"
+description: >
+ Bug Age
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/BugCountPer1kLinesOfCode.md
b/docs/Metrics/BugCountPer1kLinesOfCode.md
new file mode 100644
index 00000000..d9ccc372
--- /dev/null
+++ b/docs/Metrics/BugCountPer1kLinesOfCode.md
@@ -0,0 +1,67 @@
+---
+title: "Bug Count per 1k Lines of Code"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/BuildCount.md b/docs/Metrics/BuildCount.md
new file mode 100644
index 00000000..9d9d3d62
--- /dev/null
+++ b/docs/Metrics/BuildCount.md
@@ -0,0 +1,67 @@
+---
+title: "Build Count"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/BuildDuration.md b/docs/Metrics/BuildDuration.md
new file mode 100644
index 00000000..e43d8861
--- /dev/null
+++ b/docs/Metrics/BuildDuration.md
@@ -0,0 +1,67 @@
+---
+title: "Build Duration"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/BuildSuccessRate.md b/docs/Metrics/BuildSuccessRate.md
new file mode 100644
index 00000000..dbf08eb9
--- /dev/null
+++ b/docs/Metrics/BuildSuccessRate.md
@@ -0,0 +1,67 @@
+---
+title: "Build Success Rate"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/CFR.md b/docs/Metrics/CFR.md
new file mode 100644
index 00000000..3a800235
--- /dev/null
+++ b/docs/Metrics/CFR.md
@@ -0,0 +1,67 @@
+---
+title: "Change Failure Rate"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/ChangeLeadTime.md b/docs/Metrics/ChangeLeadTime.md
new file mode 100644
index 00000000..7cdcc740
--- /dev/null
+++ b/docs/Metrics/ChangeLeadTime.md
@@ -0,0 +1,67 @@
+---
+title: "Change Lead Time"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/CodingTime.md b/docs/Metrics/CodingTime.md
new file mode 100644
index 00000000..0a5d71d7
--- /dev/null
+++ b/docs/Metrics/CodingTime.md
@@ -0,0 +1,67 @@
+---
+title: "Coding Time"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/CommitAuthorCount.md
b/docs/Metrics/CommitAuthorCount.md
new file mode 100644
index 00000000..ae84376b
--- /dev/null
+++ b/docs/Metrics/CommitAuthorCount.md
@@ -0,0 +1,67 @@
+---
+title: "Commit Author Count"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/CommitCount.md b/docs/Metrics/CommitCount.md
new file mode 100644
index 00000000..e1b1509b
--- /dev/null
+++ b/docs/Metrics/CommitCount.md
@@ -0,0 +1,67 @@
+---
+title: "Commit Count"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/DeletedLinesOfCode.md
b/docs/Metrics/DeletedLinesOfCode.md
new file mode 100644
index 00000000..a4f0f611
--- /dev/null
+++ b/docs/Metrics/DeletedLinesOfCode.md
@@ -0,0 +1,67 @@
+---
+title: "Deleted Lines of Code "
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/DeployFrequency.md b/docs/Metrics/DeployFrequency.md
new file mode 100644
index 00000000..5f297994
--- /dev/null
+++ b/docs/Metrics/DeployFrequency.md
@@ -0,0 +1,67 @@
+---
+title: "Deploy Frequency"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/DeployTime.md b/docs/Metrics/DeployTime.md
new file mode 100644
index 00000000..0b824b62
--- /dev/null
+++ b/docs/Metrics/DeployTime.md
@@ -0,0 +1,67 @@
+---
+title: "PR Deploy Time"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/IncidentAge.md b/docs/Metrics/IncidentAge.md
new file mode 100644
index 00000000..77c8d170
--- /dev/null
+++ b/docs/Metrics/IncidentAge.md
@@ -0,0 +1,67 @@
+---
+title: "Incident Age"
+description: >
+ Incident Age
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/IncidentCountPer1kLinesOfCode.md
b/docs/Metrics/IncidentCountPer1kLinesOfCode.md
new file mode 100644
index 00000000..8d1a4830
--- /dev/null
+++ b/docs/Metrics/IncidentCountPer1kLinesOfCode.md
@@ -0,0 +1,67 @@
+---
+title: "Incident Count per 1k Lines of Code"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/MTTR.md b/docs/Metrics/MTTR.md
new file mode 100644
index 00000000..5d829dac
--- /dev/null
+++ b/docs/Metrics/MTTR.md
@@ -0,0 +1,67 @@
+---
+title: "Mean Time to Restore Service"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/MergeRate.md b/docs/Metrics/MergeRate.md
new file mode 100644
index 00000000..67183e43
--- /dev/null
+++ b/docs/Metrics/MergeRate.md
@@ -0,0 +1,67 @@
+---
+title: "Pull Request Pass Rate"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/EngineeringMetrics.md b/docs/Metrics/Overview.md
similarity index 99%
rename from docs/EngineeringMetrics.md
rename to docs/Metrics/Overview.md
index 77760efe..88c8fb4d 100644
--- a/docs/EngineeringMetrics.md
+++ b/docs/Metrics/Overview.md
@@ -1,8 +1,6 @@
---
-sidebar_position: 8
-title: "Engineering Metrics"
-linkTitle: "Engineering Metrics"
-tags: []
+sidebar_position: 1
+title: "Overview"
description: >
The definition, values and data required for the 20+ engineering metrics
supported by DevLake.
---
diff --git a/docs/Metrics/PRSize.md b/docs/Metrics/PRSize.md
new file mode 100644
index 00000000..6677bafb
--- /dev/null
+++ b/docs/Metrics/PRSize.md
@@ -0,0 +1,67 @@
+---
+title: "PR/MR Size"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/PickupTime.md b/docs/Metrics/PickupTime.md
new file mode 100644
index 00000000..fa767dd3
--- /dev/null
+++ b/docs/Metrics/PickupTime.md
@@ -0,0 +1,67 @@
+---
+title: "PR Pickup Time"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/RequirementCount.md b/docs/Metrics/RequirementCount.md
new file mode 100644
index 00000000..eb7fd6e9
--- /dev/null
+++ b/docs/Metrics/RequirementCount.md
@@ -0,0 +1,67 @@
+---
+title: "Requirement Count"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/RequirementDeliveryRate.md
b/docs/Metrics/RequirementDeliveryRate.md
new file mode 100644
index 00000000..e5e1467e
--- /dev/null
+++ b/docs/Metrics/RequirementDeliveryRate.md
@@ -0,0 +1,67 @@
+---
+title: "Requirement Delivery Rate"
+description: >
+ Requirement Delivery Rate
+sidebar_position: 3
+---
+
+## What is this metric?
+The number of issues in type `requirement/feature`, reflecting the throughput
of features delivered.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/RequirementGranularity.md
b/docs/Metrics/RequirementGranularity.md
new file mode 100644
index 00000000..3a7e46d4
--- /dev/null
+++ b/docs/Metrics/RequirementGranularity.md
@@ -0,0 +1,67 @@
+---
+title: "Requirement Granularity"
+description: >
+ Requirement Granularity
+sidebar_position: 4
+---
+
+## What is this metric?
+The number of issues in type `requirement/feature`, reflecting the throughput
of features delivered.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/RequirementLeadTime.md
b/docs/Metrics/RequirementLeadTime.md
new file mode 100644
index 00000000..37d67982
--- /dev/null
+++ b/docs/Metrics/RequirementLeadTime.md
@@ -0,0 +1,67 @@
+---
+title: "Requirement Lead Time"
+description: >
+ Requirement Lead Time
+sidebar_position: 4
+---
+
+## What is this metric?
+The number of issues in type `requirement/feature`, reflecting the throughput
of features delivered.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/ReviewDepth.md b/docs/Metrics/ReviewDepth.md
new file mode 100644
index 00000000..1871a5ab
--- /dev/null
+++ b/docs/Metrics/ReviewDepth.md
@@ -0,0 +1,67 @@
+---
+title: "Review Depth"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/ReviewRounds.md b/docs/Metrics/ReviewRounds.md
new file mode 100644
index 00000000..7c3e46bb
--- /dev/null
+++ b/docs/Metrics/ReviewRounds.md
@@ -0,0 +1,67 @@
+---
+title: "Pull Request Review Rounds"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/ReviewTime.md b/docs/Metrics/ReviewTime.md
new file mode 100644
index 00000000..c3b0cb06
--- /dev/null
+++ b/docs/Metrics/ReviewTime.md
@@ -0,0 +1,67 @@
+---
+title: "PR Review Time"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/TimeToMerge.md b/docs/Metrics/TimeToMerge.md
new file mode 100644
index 00000000..b8150e0a
--- /dev/null
+++ b/docs/Metrics/TimeToMerge.md
@@ -0,0 +1,67 @@
+---
+title: "Time To Merge"
+description: >
+ Requirement Count
+sidebar_position: 2
+---
+
+## What is this metric?
+The number of issues created with the type `REQUIREMENT`.
+
+## Why is it important?
+1. Based on historical data, establish a baseline of the delivery capacity of
a single iteration to improve the organization and planning of R&D resources.
+2. Evaluate whether the delivery capacity matches the business phase and
demand scale. Identify key bottlenecks and reasonably allocate resources.
+
+## Which dashboard(s) does it exist in
+- Jira
+- GitHub
+
+
+## How is it calculated?
+This metric is calculated by counting the number of completed issues in type
"REQUIREMENT".
+
+<b>Data Sources Required</b>
+
+This metric relies on issues collected from Jira, GitHub, or TAPD.
+
+<b>Transformation Rules Required</b>
+
+This metric relies on the "issue type mapping" in "blueprint-transformation
rules" page to let DevLake know what issues can be regarded as `REQUIREMENT`.
+
+<b>SQL Queries</b>
+
+If you want to see a single count, run the following SQL in Grafana
+```
+ select
+ count(*) as value
+ from issues i
+ join board_issues bi on i.id = bi.issue_id
+ where
+ i.type in ($type)
+ and i.type = 'REQUIREMENT'
+ -- this is the default variable in Grafana
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+```
+
+If you want to see the monthly trend, run the following SQL
+```
+ SELECT
+ DATE_ADD(date(i.created_date), INTERVAL
-DAYOFMONTH(date(i.created_date))+1 DAY) as time,
+ count(distinct case when status != 'DONE' then i.id else null end) as
"Number of Open Issues",
+ count(distinct case when status = 'DONE' then i.id else null end) as
"Number of Delivered Issues"
+ FROM issues i
+ join board_issues bi on i.id = bi.issue_id
+ join boards b on bi.board_id = b.id
+ WHERE
+ i.type = 'REQUIREMENT'
+ and $__timeFilter(i.created_date)
+ and bi.board_id in ($board_id)
+ GROUP by 1
+```
+
+## How to improve?
+1. Analyze the number of requirements and delivery rate of different time
cycles to find the stability and trend of the development process.
+2. Analyze and compare the number of requirements delivered and delivery rate
of each project/team, and compare the scale of requirements of different
projects.
+3. Based on historical data, establish a baseline of the delivery capacity of
a single iteration (optimistic, probable and pessimistic values) to provide a
reference for iteration estimation.
+4. Drill down to analyze the number and percentage of requirements in
different phases of SDLC. Analyze rationality and identify the requirements
stuck in the backlog.
diff --git a/docs/Metrics/_category_.json b/docs/Metrics/_category_.json
new file mode 100644
index 00000000..c0404058
--- /dev/null
+++ b/docs/Metrics/_category_.json
@@ -0,0 +1,7 @@
+{
+ "label": "Metrics",
+ "position": 4,
+ "link":{
+ "type": "generated-index"
+ }
+}
diff --git a/docs/Overview/Introduction.md b/docs/Overview/Introduction.md
index 6cf72409..7a4e868c 100755
--- a/docs/Overview/Introduction.md
+++ b/docs/Overview/Introduction.md
@@ -11,7 +11,7 @@ Apache DevLake is designed for developer teams looking to
make better sense of t
## What can be accomplished with DevLake?
1. Collect DevOps data across the entire Software Development Life Cycle
(SDLC) and connect the siloed data with a standard [data
model](../DataModels/DevLakeDomainLayerSchema.md).
-2. Visualize out-of-the-box engineering [metrics](../EngineeringMetrics.md) in
a series of use-case driven dashboards
+2. Visualize out-of-the-box [engineering metrics](../Metrics/Overview.md) in a
series of use-case driven dashboards
3. Easily extend DevLake to support your data sources, metrics, and dashboards
with a flexible [framework](Architecture.md) for data collection and ETL
(Extract, Transform, Load).
## How do I use DevLake?
diff --git a/docusaurus.config.js b/docusaurus.config.js
index da47b752..10f67c54 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -193,7 +193,7 @@ const versions = require('./versions.json');
},
{
label: 'Engineering Metrics',
- to: 'docs/EngineeringMetrics',
+ to: 'docs/Metrics/Overview',
},
{
label: 'Dashboards (Live Demo)',
diff --git
a/i18n/zh/docusaurus-plugin-content-blog/2022-05-18-apache-welcomes-devLake/index.md
b/i18n/zh/docusaurus-plugin-content-blog/2022-05-18-apache-welcomes-devLake/index.md
index 9196f283..2ee43a6c 100644
---
a/i18n/zh/docusaurus-plugin-content-blog/2022-05-18-apache-welcomes-devLake/index.md
+++
b/i18n/zh/docusaurus-plugin-content-blog/2022-05-18-apache-welcomes-devLake/index.md
@@ -35,7 +35,7 @@ tags: [devlake, apache]
研发过程数据的标准化程度低,用户难以直接使用这些数据进一步分析;而效能指标定义与计算方法模糊,又给研发数据的应用带来了额外的成本。
-Apache DevLake
提供了便捷的数据转化能力,将收集来的数据清洗转换为[标准数据模型](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema),并基于标准模型生成一系列[研发效能指标](https://devlake.apache.org/docs/EngineeringMetrics),对用户来说简单易懂、开箱即用。一方面节省了治理数据和定义指标的成本,另一方面使效能指标更加透明,便于研发数据的应用落地。
+Apache DevLake
提供了便捷的数据转化能力,将收集来的数据清洗转换为[标准数据模型](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema),并基于标准模型生成一系列[研发效能指标](https://devlake.apache.org/docs/Metrics/Overview),对用户来说简单易懂、开箱即用。一方面节省了治理数据和定义指标的成本,另一方面使效能指标更加透明,便于研发数据的应用落地。
目前 Apache DevLake 已支持 20+常见研发效能指标,可应用于交付效率、质量、成本、能力等不同认知域。