쿼리 추세 데이터
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
데이터의 추세를 검토하고 기간 경과 비교를 하는 것은 보고 및 데이터 분석의 중요한 측면입니다. Analytics는 이러한 기능을 지원합니다.
메모
Analytics 서비스는 모든 Azure DevOps Services에 대해 프로덕션에서 자동으로 사용하도록 설정되고 지원됩니다.
Power BI 통합 및 Analytics Service의 OData 피드 에 대한 액세스가 이제 일반적으로 제공됩니다. 이를 사용하고 피드백을 제공하는 것이 좋습니다.
사용 가능한 데이터는 버전에 따라 다릅니다. 지원되는 최신 버전은 v2.0
최신 미리 보기 버전이 v4.0-preview
. 자세한 내용은 OData API 버전 관리참조하세요.
메모
Analytics 서비스는 Azure DevOps Server 2020 이상 버전의 모든 새 프로젝트 컬렉션에 대해 프로덕션에 자동으로 설치되고 지원됩니다. Power BI 통합 및 Analytics Service의 OData 피드에 대한 액세스는 일반적으로 이용 가능합니다. 이를 사용하고 피드백을 제공하는 것이 좋습니다. Azure DevOps Server 2019에서 업그레이드한 경우 업그레이드 중에 Analytics 서비스를 설치할 수 있습니다.
사용 가능한 데이터는 버전에 따라 다릅니다. 지원되는 최신 버전은 v2.0
최신 미리 보기 버전이 v4.0-preview
. 자세한 내용은 OData API 버전 관리참조하세요.
메모
Analytics 서비스는 Azure DevOps Server 2019용 미리 보기로 제공됩니다. 프로젝트 컬렉션에 대해 사용하도록 설정하거나 설치할 수 있습니다. Power BI 통합 및 Analytics Service의 OData 피드 대한 액세스는 미리 보기로 제공됩니다. 이를 사용하고 피드백을 제공하는 것이 좋습니다.
사용 가능한 데이터는 버전에 따라 다릅니다. 지원되는 최신 버전은 v2.0
최신 미리 보기 버전이 v4.0-preview
. 자세한 내용은 OData API 버전 관리참조하세요.
추세 데이터는 WorkItemSnapshot 및 WorkItemBoardSnapshot 엔터티 집합에 노출됩니다. 생성된 날부터 오늘까지 모든 작업 항목이 매일 존재할 수 있도록 생성됩니다. 1년 전에 만든 작업 항목이 하나뿐인 조직의 경우 이 엔터티에는 365개의 행이 있습니다. 대규모 프로젝트의 경우 이러한 엔터티는 클라이언트 도구와 함께 사용하기에 실용적이지 않습니다.
솔루션이란? 집계 확장을 사용하세요.
OData 집계 확장을 사용하여 보고에 도움이 되는 Azure DevOps에서 집계된 데이터를 반환할 수 있습니다. 예를 들어 3월의 버그 추세를 표시할 수 있습니다. 버그 추세는 프로젝트를 관리하는 데 있어 일반적이고 중요한 부분이므로 즉시 적절한 사용을 할 수 있습니다.
메모
이 문서에 표시된 예제는 Azure DevOps Services URL을 기반으로 합니다. 필요에 따라 Azure DevOps Server URL을 대체합니다.
https://{servername}:{port}/tfs/{OrganizationName}/{ProjectName}/_odata/{version}/
필수 구성 요소
범주 | 요구 사항 |
---|---|
액세스 수준 |
-
프로젝트 멤버. - 적어도 기본 액세스. |
사용 권한 | 기본적으로 프로젝트 멤버는 분석을 쿼리하고 뷰를 만들 수 있는 권한이 있습니다. 서비스 및 기능 사용 및 일반 데이터 추적 활동과 관련된 다른 필수 구성 요소에 대한 자세한 내용은 사용 권한 및 분석액세스하기 위한 필수 구성 요소를 참조하세요. |
추세 데이터에 대한 기본 쿼리 생성
WorkItemSnapshot 테이블을 효과적으로 쿼리하려면 다음 기본 요구 사항을 따릅니다.
- 날짜별로 데이터를 필터링합니다.
- 적어도 날짜를 기준으로 집계를 그룹화합니다. 그렇지 않은 경우 응답에 경고가 포함됩니다.
버그 추세 보고서를 만드는 쿼리는 다음 예제와 같습니다.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//WorkItemSnapshot?
$apply=
filter(DateValue ge 2016-03-01Z and DateValue le 2016-03-31Z and WorkItemType eq 'Bug')/
groupby((DateValue,State), aggregate($count as Count))
&$orderby=DateValue
다음 예제와 유사한 결과를 반환합니다.
{
"@odata.context": "https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//$metadata#WorkItemSnapshot(DateValue,State,Count)",
"value": [
{
"@odata.id": null,
"State": "Active",
"DateValue": "2016-03-01T00:00:00-08:00",
"Count": 2666
},
{
"@odata.id": null,
"State": "Closed",
"DateValue": "2016-03-01T00:00:00-08:00",
"Count": 51408
}
]
}
이 쿼리는 최대 31 * (number of bug states)
생성합니다. 기본 버그에는 다음 세 가지 상태가 있습니다.
- 활동적인
- 해결
- 닫힘
이 쿼리는 실제로 수천 개의 레코드가 존재하더라도 93개의 행을 반환합니다. 훨씬 더 압축된 형식의 반환 데이터를 제공합니다.
이 예제의 변형을 살펴보겠습니다. 반복 또는 한 번 반복으로 시작하고 다른 반복으로 끝나는 릴리스에 대한 버그 추세를 확인하려고 합니다.
해당 쿼리를 생성하려면 다음 예제를 수행합니다.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//WorkItemSnapshot?
$apply=
filter(WorkItemType eq 'Bug')/
filter(Iteration/IterationName eq 'Sprint 99')/
filter(DateValue ge Iteration/StartDate and (Iteration/EndDate eq null or DateValue le Iteration/EndDate))/
groupby((DateValue, State), aggregate($count as Count))
&$orderby=DateValue
다음 예제와 유사한 결과를 반환합니다.
{
"@odata.context": "https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}//$metadata#WorkItemSnapshot(DateValue,State,Count)",
"value": [
{
"@odata.id": null,
"State": "Active",
"DateValue": "2016-04-04T00:00:00-07:00",
"Count": 320
},
{
"@odata.id": null,
"State": "Closed",
"DateValue": "2016-04-04T00:00:00-07:00",
"Count": 38
}
]
}
이 쿼리에는 두 가지 주요 차이점이 있습니다. 데이터를 특정 반복으로 필터링하는 필터 절을 추가했으며, 이제 날짜가 반복 시작 날짜 및 종료 날짜와 하드 코딩된 날짜와 비교됩니다.
메모
스냅샷 테이블의 쿼리에서 집계를 사용하지 않는 경우 응답에 "지정된 쿼리에는 모든 쿼리에 권장되는 $select
또는 $apply
절이 포함되지 않습니다."라는 경고가 표시됩니다.