Consultas con ámbito de proyecto y organización
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Con Analytics para Azure DevOps, puede construir consultas cuyo ámbito sea un proyecto o una organización o colección. Puede ejecutar estas consultas directamente en el explorador o en Power BI.
Las consultas de ámbito de proyecto ayudan a responder preguntas sobre un solo proyecto, mientras que las consultas con ámbito de organización y recopilación permiten responder a preguntas que cruzan los límites del proyecto. Las consultas con ámbito de organización y recopilación requieren permisos de usuario más amplios o restricciones de ámbito cuidadosas para asegurarse de que la consulta no está bloqueada debido a la falta de permisos.
Nota:
El servicio Analytics se habilita automáticamente y se admite en producción para todos los servicios de Azure DevOps. La integración de Power BI y el acceso a la fuente OData del servicio Analytics están disponibles con carácter general. Le recomendamos que lo use y nos envíe sus comentarios.
Los datos disponibles dependen de la versión. La versión más reciente admitida es v2.0
y la versión preliminar más reciente es v4.0-preview
. Para obtener más información, consulte Control de versiones de la API de OData.
Nota:
El servicio Analytics se instala y admite automáticamente en producción para todas las colecciones de proyectos nuevas para Azure DevOps Server 2020 y versiones posteriores. La integración de Power BI y el acceso a la fuente OData del servicio Analytics están disponibles con carácter general. Le recomendamos que lo use y nos envíe sus comentarios. Si ha actualizado desde Azure DevOps Server 2019, puede instalar el servicio Analytics durante la actualización.
Los datos disponibles dependen de la versión. La versión más reciente admitida es v2.0
y la versión preliminar más reciente es v4.0-preview
. Para obtener más información, consulte Control de versiones de la API de OData.
Nota:
El servicio Analytics está en versión preliminar para Azure DevOps Server 2019. Puede habilitarlo o instalarlo para una colección de proyectos. La integración y el acceso de Power BI a la fuente OData del servicio Analytics se encuentran en versión preliminar. Le recomendamos que lo use y nos envíe sus comentarios.
Los datos disponibles dependen de la versión. La versión más reciente admitida es v2.0
y la versión preliminar más reciente es v4.0-preview
. Para obtener más información, consulte Control de versiones de la API de OData.
Requisitos previos
- Access: sea miembro de un proyecto con al menos acceso básico .
- Permisos: de forma predeterminada, los miembros del proyecto tienen permiso para consultar Analytics y crear vistas.
- Para obtener más información sobre otros requisitos previos relacionados con las actividades de habilitación de servicios y características y seguimiento de datos generales, consulte Permisos y requisitos previos para acceder a Analytics.
Importante
Si no tiene acceso a todos los proyectos de una organización, se recomienda aplicar un filtro de proyecto a todas las consultas. Al extraer datos en herramientas de cliente como Power BI o Excel, el uso de la sintaxis de la ruta de acceso del proyecto es la mejor manera de asegurarse de que todos los datos están restringidos por el proyecto determinado. Se recomienda usar consultas con ámbito de organización o con ámbito de recopilación solo cuando necesite informar sobre dos o más proyectos.
Consultas con ámbito de proyecto
Para crear una consulta, escriba la dirección URL de OData en un explorador web compatible.
La dirección URL base de una consulta de OData de nivel de proyecto se muestra en la sintaxis siguiente.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/
En los ejemplos proporcionados, reemplace {OrganizationName}
y {ProjectName}
por los nombres de su organización y proyecto que desee consultar.
Nota:
Los ejemplos restantes que se proporcionan en este artículo se basan en una dirección URL de Azure DevOps Services. Tendrá que sustituir en la dirección URL del servidor de Azure DevOps para ejercer los ejemplos.
Devolver un recuento de elementos de trabajo
Por ejemplo, la siguiente consulta con ámbito de proyecto devuelve el recuento de elementos de trabajo de un proyecto específico.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/WorkItems/$count
Por ejemplo, una consulta del proyecto Fabrikam Fiber devuelve un recuento de 7126 elementos de trabajo. Los elementos de trabajo eliminados no se incluyen en el recuento.
https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v1.0/WorkItems/$count
7126
Devolver rutas de acceso del área del proyecto
Del mismo modo, la siguiente cadena de consulta devolverá las áreas de un proyecto específico:
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/Areas
Es equivalente al siguiente filtro en una consulta con ámbito de organización:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/Areas?
$filter=Project/ProjectName eq '{ProjectName}'
Por ejemplo, una consulta del proyecto Fabrikam Fiber devuelve todas las propiedades definidas para una ruta de acceso de área, ya que no se aplica ningún $select
operador en la consulta.
https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v1.0/Areas
En el ejemplo siguiente se muestran los datos devueltos para una única ruta de acceso de área.
ProjectSK "56af920d-393b-4236-9a07-24439ccaa85c"
AreaSK "26be05fd-e68a-4fcb-833f-497f6bee45f2"
AreaId "26be05fd-e68a-4fcb-833f-497f6bee45f2"
AreaName "Service Delivery"
Number 55373
AreaPath "Fabrikam Fiber\\Service Delivery"
AreaLevel1 "Fabrikam Fiber"
AreaLevel2 "Service Delivery"
AreaLevel3 null
AreaLevel4 null
AreaLevel5 null
AreaLevel6 null
AreaLevel7 null
AreaLevel8 null
AreaLevel9 null
AreaLevel10 null
AreaLevel11 null
AreaLevel12 null
AreaLevel13 null
AreaLevel14 null
Depth 1
Uso de la opción $expand
Al usar una consulta con ámbito de proyecto con una $expand
opción, no es necesario proporcionar otros filtros.
Por ejemplo, el siguiente filtro con ámbito de proyecto:
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/WorkItems?
$expand=Parent
se filtra automáticamente para aplicar la seguridad:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=ProjectName eq '{ProjectName}'
&$expand=Parent($filter=ProjectName eq '{ProjectName}')
Consultas con ámbito de organización
La dirección URL base de las consultas de nivel de organización se muestra como se muestra:
https://analytics.dev.azure.com/{OrganizationName}/_odata/v1.0
Al usar una consulta con ámbito de organización con una $expand
opción, debe proporcionar otro filtro.
Por ejemplo, la siguiente consulta con ámbito de organización, que usa para $expand
recuperar los elementos secundarios de todos los elementos de trabajo.
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=Project/ProjectName eq '{ProjectName}'
&$expand=Children
Requiere otro filtro para comprobar que los elementos secundarios están limitados al proyecto especificado:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=Project/ProjectName eq '{ProjectName}'
&$expand=Children($filter=Project/ProjectName eq '{ProjectName}')
Devolver el elemento primario de todos los elementos de trabajo
La consulta siguiente, que usa una $expand
opción para recuperar el elemento primario de todos los elementos de trabajo.
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=Project/ProjectName eq '{ProjectName}'
&$expand=Parent
Requiere otro filtro para comprobar que el elemento primario está limitado al proyecto especificado:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=Project/ProjectName eq '{ProjectName}'
&$expand=Parent($filter=Project/ProjectName eq '{ProjectName}')
Sin el otro filtro, se producirá un error en la solicitud si el elemento primario de cualquier elemento de trabajo hace referencia a elementos de trabajo de un proyecto al que no tiene acceso de lectura.
Restricciones de seguridad de nivel de proyecto
Analytics tiene algunas restricciones más en la sintaxis de consulta relacionada con la seguridad de nivel de proyecto.
Los any
filtros o all
se aplican a la entidad base en un $expand
. En el caso de los filtros basados en un proyecto, se omite explícitamente el filtro al usar :$expand
Por ejemplo, la consulta siguiente:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=ProjectName eq '{ProjectName}'
&$expand=Children($filter=Project/ProjectName eq '{ProjectName}')
Se interpreta como:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=ProjectName eq '{ProjectName}'
&$expand=Children
y producirá un error si no tiene acceso a todos los proyectos.
Para solucionar la restricción, debe agregar una expresión adicional en $filter
:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=ProjectName eq '{ProjectName}' and Children/any(r: r/ProjectName eq '{ProjectName}')
&$expand=Children
El uso $level
solo se admite si tiene acceso a todos los proyectos de la colección o cuando se usa una consulta con ámbito de proyecto:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$expand=Children($levels=2;$filter=ProjectName eq '{ProjectName}')
Analytics no admite ninguna referencia entre niveles para proyectos que usen la $it
cláusula . Por ejemplo, la consulta siguiente hace referencia al elemento de ProjectName
trabajo raíz mediante $it
alias, que no se admite:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$expand=Links(
$expand=TargetWorkItem;
$filter=TargetWorkItem/Project/ProjectName eq $it/Project/ProjectName)