
Azure DevOps Analytics is a powerful tool that helps teams make data-driven decisions. It provides a unified view of your entire software development lifecycle, from development to deployment.
With Azure DevOps Analytics, you can track key performance indicators (KPIs) such as lead time, deployment frequency, and change lead time. These metrics help you identify areas for improvement and optimize your development process.
By leveraging Azure DevOps Analytics, teams can gain insights into their workflow, identify bottlenecks, and make informed decisions to improve their software development process. This leads to faster time-to-market and higher quality software.
Date-Based Filtering
Date-Based Filtering is a powerful tool in Azure DevOps Analytics. It allows you to filter work items based on specific dates, making it easier to analyze and understand your project's progress.
You can filter work items based on their Changed Date, which is the date and time when a work item was last modified. For example, you can use a query to return Product Backlog Items, Bugs, and Features that have a Changed Date greater than December 12, 2021.
This feature is particularly useful when you need to track changes made to your work items over time. By filtering based on the Changed Date, you can see which items were updated recently and focus on the most critical tasks.
Team and Area
You can filter work items based on Area to get a specific view of your project's work items.
To do this, you can modify a query to list all work items under a specific Area Path. For example, you could use the query syntax to get the work item count for each project defined for the fabrikam organization. This would return a response showing the work item count for each project.
Filtering work items for a specific team is also possible. You can use a query to list work items for a specific team, which would be useful for team leads or project managers who want to see the work items assigned to their team.
Worth a look: Azure Devops Project Timeline
Retrieve for Iteration
Retrieving work items for a specific iteration is a powerful feature that can help you stay focused on the tasks at hand. You can filter work items based on an iteration, such as the Fabrikam Fiber project under the Iteration Path=Fabrikam Fiber\Release 1\Sprint 6.
To do this, you need to know the exact path to the iteration, which can be a bit tricky. The response returns data for the four work items associated with that iteration.
Retrieving all work items for a given iteration is also possible, and it's a great way to get a comprehensive view of what needs to be done. This is done by querying the work items between the first day of the iteration and the last day of the iteration.
This approach is constrained by the data contained within the work tracking data, so make sure you have accurate and up-to-date information. The query will return all work items that fall within the specified date range.
Specific Team
Filtering work items for a specific team is a breeze. You can use the following query to list work items for a specific team.
To get started, you need to know the syntax, which is to use the query to list work items for a specific team. This will give you the work items you need.
For example, you can use the query to list work items for the team you're interested in. This is a straightforward way to get the information you need.
The query will return the work items for that team, making it easy to stay on top of your work.
Pipelines and Sets
As a team member, understanding pipelines and sets is crucial for effective collaboration and project management.
The Analytics version supports various entity types and entity sets, including Branch and Pipelines. These are used to track basic information about branches and pipelines used in tests or pipelines.
Pipelines are properties for a pipeline, and PipelineJobs are individual execution results for a specific Test associated with a TestRun. PipelineRuns track execution information for pipelines, while PipelineRunActivityResult provides a merged log of all stages, steps, jobs, and tasks within a specific pipeline execution.
Here's a breakdown of the supported entity types and entity sets:
These entity types and entity sets are essential for understanding pipeline consumption and tracking pipeline execution information.
Expand your knowledge: Configure Pipeline in Azure Devops
Tags and Fields
In Azure DevOps Analytics, tags are a powerful way to filter work items. You can use the any operator to filter work items containing specific tags.
The any operator is used because there are a collection of tags that can be associated with a work item. The format is: {Navigation Property}/any(d:d/{Field Name} {operator} {expression}). Any item not surrounded by curly brackets is a literal.
For example, if you want to filter work items with specific tags, you can use this format to keep it simple.
Containing Specific Tags
Containing Specific Tags is a useful feature that allows you to filter work items based on specific tags.
The any operator is used when there are multiple tags associated with a work item. You can use the format {Navigation Property}/any(d:d/{Field Name} {operator} {expression}) to filter work items.
Any item not surrounded by curly brackets is a literal. This means you can use the format as-is, without having to worry about adding extra brackets.
You don't have to use "d" in the expression above, but it's a common variation that keeps the format simple.
Field Based on Value
When you need to filter work items based on a field ever having a specific value, you can use a query similar to the Was Ever operator.
This type of query returned two work items in an example where the work items were assigned to Jamal Hartnett with the email '[email protected]' for the Fabrikam Fiber project.
The query specifically targets work items that were ever assigned to a specific person, in this case, Jamal Hartnett with the mentioned email.
Types and Sets
Entity types are named structured types with a key, defining the named properties and relationships of each entity. They are formed from a subset of the primitive properties, such as WorkItemId, PipelineId, and ReleasePipelineId.
Entity sets are named collections of entities, providing entry points into the data model. For example, WorkItems is an entity set containing WorkItem entities.
Entity types and entity sets are supported in various versions of the Analytics API. Here's a list of some supported entity types and entity sets:
Entity sets vary by project, and you can explore the complete list of entity sets, entity types, and properties by requesting the OData metadata for your project.
Power BI and Reporting
You can use Power BI for Azure DevOps to do complex visualisation of project delivery statistics.
Power BI for Azure DevOps allows you to directly pull data from Azure DevOps into Power BI and construct complex report visualisations.
The integration is based on Analytics Service, which exposes a concise data model over Azure DevOps.
There are multiple connection options, but in this blog post we focus on connecting Azure DevOps with the Azure DevOps Data Connector.
You can now use Power BI for Azure DevOps using the Analytics Service if you use Azure DevOps to manage your project.
Additional reading: Azure Devops Service Connection
Data and Schema
The foundation of Azure DevOps Analytics lies in its data model, which is built on two schema namespaces: Microsoft.VisualStudio.Services.Analytics.Model and Microsoft.VisualStudio.Services.Analytics.
These namespaces are the backbone of the Analytics data model, providing a structured framework for organizing and analyzing data.
The Microsoft.VisualStudio.Services.Analytics.Model namespace is a crucial part of this framework, offering a robust and scalable way to model and analyze data.
Here are the two schema namespaces in a concise format:
Data Connector
To connect your Azure DevOps data to Power BI, you'll need to download Power BI for Desktop on the client machine where you'll be developing your project reports.
You'll also need to install the Analytics Marketplace Extension in your Azure DevOps organization to enable the Analytics Service.
In Power BI Desktop, go to "Get Data" and select "Azure DevOps" from the list of available connectors.
To connect to Azure DevOps, you'll need to enter the names of your organization and Team project, which can be found in your Azure DevOps URL.
For example, if your Azure DevOps URL is https://example.visualstudio.com, your organization name would be "example" and your Team project name would be the part after the slash, such as "example/MyProject".
If prompted, enter your Azure DevOps credentials to authenticate the connection.
Once connected, you should see the default Analytics View preloaded, as well as any customised Analytics views you've created in Azure DevOps.
Clicking "Load" will pull the data from the Analytics View into Power BI for you to use in your report.
Here's a quick rundown of the required fields:
Schema Namespaces
Schema Namespaces are a crucial part of the Analytics data model, and they're based on two specific namespaces.
The first namespace is Microsoft.VisualStudio.Services.Analytics.Model, which is a fundamental building block of the data model.
The second namespace is Microsoft.VisualStudio.Services.Analytics, which is also a vital component of the data model.
Here are the two schema namespaces in a concise list:
- Microsoft.VisualStudio.Services.Analytics.Model
- Microsoft.VisualStudio.Services.Analytics
Composite Entities
Composite entities are composed from simpler entities and often require more computing resources to generate. This can lead to throttling if not used correctly.
They may return larger result sets, which can be beneficial for scenarios that focus on-trend data for a filtered set of items. For example, WorkItemSnapshot combines WorkItemRevisions and Dates to support such queries.
You shouldn't use composite entities to query the current state of items, as it's less efficient. Instead, use the entity set that generates a more quick-running query, like WorkItems.
Some entities contain all historic values, while others only contain current values. WorkItemRevisions is an example of an entity that contains all work item history, which shouldn't be used when only current values are of interest.
You might like: Azure Devops Extension Example
Sources
- https://learn.microsoft.com/en-us/azure/devops/report/extend-analytics/analytics-recipes
- https://dynamicscrmgirl.wordpress.com/2019/01/21/project-reporting-part-3-reporting-with-power-bi-for-azure-devops/
- https://help.metricinsights.com/m/Connecting_to_Data_Sources/l/1747192-establish-connectivity-to-azure-devops
- https://learn.microsoft.com/en-us/azure/devops/report/extend-analytics/data-model-analytics-service
- https://learn.microsoft.com/en-us/azure/devops/report/dashboards/analytics-widgets
Featured Images: pexels.com