Detección de cambios en el código
Este producto no es compatible con el
sitio Datadog seleccionado. (
).
Únete a la vista previa
CD Visibility está en Vista previa. Si te interesa esta función, rellena el formulario para solicitar acceso.
Request AccessLa detección de cambios en el código permite a Datadog identificar las confirmaciones introducidas como parte de un despliegue. Esto es particularmente valioso para:
- Comprende dónde se han desplegado cambios específicos, como el seguimiento de cuándo llegan las actualizaciones al entorno
production. - Diagnostica los incidentes relacionados con un despliegue proporcionando visibilidad de los cambios exactos introducidos. Esto ayuda a los equipos a identificar rápidamente las posibles causas raíz y acelerar la resolución de problemas.
Para detectar los cambios en el código desplegado, Datadog ejecuta el git log entre el SHA de la confirmación de despliegue actual y el SHA de la confirmación de despliegue anterior. Las confirmaciones de fusión se excluyen del cálculo.
Los cambios de código desplegados son visibles dentro de cualquier ejecución de despliegue de la página de Ejecuciones de despliegue. La pestaña Code Changes (Cambios de código) muestra el despliegue anterior tomado en consideración, y los cambios de código detectados entre ambos.
Además, la columna Deployments (Despliegues) de la página Cambios recientes en el código muestra los detalles de servicio y entorno de todos los despliegues que incluyen una confirmación específica. Esta vista proporciona una forma rápida de entender si los cambios de código se han desplegado y dónde.
Al pasar el ratón por encima del valor del servicio, se muestra si el despliegue ha llegado a todos los entornos esperados, en función de dónde se despliega normalmente el servicio.
Los cambios de código solo se detectan para los despliegues que:
- Tienen un servicio (
@deployment.service) con especificaciones de ruta de archivo definidas en el Software Catalog (ver las instrucciones de instalación para más información). - Disponen de un entorno (
@deployment.env). - Tienen una URL de repositorio (
@deployment.git.repository_url) y un SHA de confirmación (@deployment.git.commit.sha).
Configurar
Para permitir la Detección de cambios de código en tus despliegues, se requieren dos pasos:
- Sincronizar los metadatos de tu repositorio con Datadog.
- Especificar la ruta del archivo de código fuente para tus servicios.
Los procesos de GitHub que ejecutan el activador
pull_request no con compatibles con la integración de GitHub.
Si usas el activador
pull_request, usa el método alternativo.
Si la integración de GitHub no está ya instalada, puedes instalarla en el ícono de integración de GitHub.
Al configurar la aplicación de GitHub:
- Selecciona al menos permisos de Lectura del repositorio para Contenido y Solicitudes de extracción.
- Suscríbete al menos a los eventos Push, PullRequest y PullRequestReview.
Para confirmar que la configuración es válida, selecciona tu aplicación de GitHub en el cuadro de integración de GitHub y comprueba que, en la tabla Datadog Features (Funciones de Datadog), la función Pull Request Information (Información de solicitudes pull) está marcada como válida.
Sigue las instrucciones de incorporación dentro de la aplicación para configurar la integración del código fuente de GitLab.
Nota: El alcance del token de acceso personal de la cuenta de servicio debe ser al menos read_api.
Puedes cargar los metadatos de tu repositorio de Git con el comando datadog-ci git-metadata upload.
Cuando se ejecuta este comando, Datadog recibe la URL del repositorio, el SHA de confirmación de la rama actual y una lista de rutas de archivos rastreados.
Ejecuta este comando en CI para cada nueva confirmación. Cuando se ejecuta un despliegue para un SHA de confirmación específico, asegúrate de que el comando datadog-ci git-metadata upload se ejecute para esa confirmación antes de que se envíe el evento del despliegue.
No proporciones la opción --no-gitsync al comando datadog-ci git-metadata upload.
Cuando se incluye esa opción, la información de confirmación no se envía a Datadog y no se detectan los cambios.
Puedes validar la configuración correcta del comando comprobando la salida del comando. Un ejemplo de una salida correcta es el siguiente:
Reporting commit 007f7f466e035b052415134600ea899693e7bb34 from repository git@github.com:organization/example-repository.git.
180 tracked file paths will be reported.
✅ Handled in 0.077 seconds.
Especificar patrones de ruta de archivos de servicio
Para comprender correctamente los cambios de código que ha introducido un despliegue, solo deben tenerse en cuenta las confirmaciones que afectan al servicio específico que se está desplegando.
Esto se puede hacer en Software Catalog especificando, para los servicios interesados, los patrones de ruta del archivo glob del código fuente en la definición del servicio.
Si la definición del servicio contiene una URL completa de GitHub o GitLab a la carpeta de la aplicación, se utilizará automáticamente un patrón de ruta único. El tipo de enlace debe ser repo y el nombre del enlace debe ser “source” o el nombre del servicio (shopist en los ejemplos siguientes).
Si tu repositorio contiene un único servicio y deseas que se tengan en cuenta todos los directorios para los cambios de código, puedes omitir este paso. Si despliegas dos o más servicios desde un repositorio, es necesario especificar los patrones de ruta del código fuente.
Ejemplo (versión del esquema v2.2):
links:
- name: shopist
type: repo
provider: github
url: https://github.com/organization/example-repository/tree/main/src/apps/shopist
links:
- name: shopist
type: repo
provider: gitlab
url: https://gitlab.com/organization/example-repository/-/tree/main/src/apps/shopist?ref_type=heads
La detección de cambios en el código para los despliegues del servicio shopist solo tendrá en cuenta las confirmaciones de Git que incluyan cambios dentro de la ruta src/apps/shopist/**. Puedes configurar un control más detallado utilizando extensions[datadoghq.com/cd-visibility] o extensions[datadoghq.com/dora-metrics]. Si se detectan ambas extensiones, se utiliza extensions[datadoghq.com/cd-visibility].
Ejemplo (versión del esquema v2.2):
extensions:
datadoghq.com/cd-visibility:
source_patterns:
- src/apps/shopist/**
- src/libs/utils/**
La detección de cambios en el código para los despliegues del servicio shopist solo tendrá en cuenta las confirmaciones de Git que incluyan cambios en las rutas src/apps/shopist/** o src/libs/utils/**.
Si los patrones de código fuente para un servicio se definen tanto en un enlace como en una extensión, al filtrar las confirmaciones solo se tiene en cuenta la extensión.
Utiliza patrones de ruta de archivos de servicio para realizar un seguimiento de los cambios en todo el repositorio.
Para detectar cambios en todo el repositorio, utiliza los patrones de ruta de archivos adecuados. Por ejemplo, "**" coincide con todos los archivos.
Ejemplo (versión del esquema v2.2):
extensions:
datadoghq.com/cd-visibility:
source_patterns:
- "**"
En este caso, la detección de cambios de código para despliegues del servicio shopist considerará las confirmaciones de Git que incluyan cambios en todo el árbol de repositorios.
Si un patrón es exactamente ** o comienza con él, enciérralo entre comillas, ya que * está reservado en YAML para los anclajes.
Referencias adicionales
Más enlaces, artículos y documentación útiles: