Ce produit n'est pas pris en charge par le site Datadog que vous avez sélectionné. ().

Section Overview

AWS CodePipeline est un service de livraison continue entièrement géré qui vous aide à automatiser vos pipelines de version pour des mises à jour d’application et d’infrastructure rapides et fiables.

Configurer CI Visibility pour AWS CodePipeline afin de recueillir des données sur les exécutions de pipeline, d’analyser les goulots d’étranglement en matière de performances ou les problèmes opérationnels et de surveiller vos workflows de déploiement.

Compatibilité

Pipeline VisibilityPlateformeDéfinition
Tentatives partiellesPipelines partielsConsultez les exécutions de pipelines faisant lʼobjet de nouvelles tentatives.
*Pipelines en cours d’exécutionPipelines en cours d’exécutionAfficher les exécutions de pipeline en cours d’exécution. Les pipelines en file d’attente ou en attente s’affichent avec le statut « Running » sur Datadog.
**Corrélation de logsCorrélation de logsMettre en corrélation les spans de pipeline et de tâches avec les logs et activer la corrélation de logs de tâches.
Temps d’attente d’approbationTemps d’attente d’approbationAfficher le temps d’attente des tâches et des pipelines pour les approbations manuelles.
Spans personnaliséesSpans personnaliséesConfigurer des spans personnalisées pour vos pipelines.
Filtrer les tâches CI sur le chemin critiqueFiltrer les tâches CI sur le chemin critiqueFiltrer par tâches sur le chemin critique.
Temps d’exécutionDurée d’exécutionAfficher le temps pendant lequel les pipelines ont exécuté des tâches.

*Les pipelines AWS CodePipeline en cours d’exécution ne disposent pas d’informations Git tant qu’ils ne sont pas terminés.
**La corrélation de logs AWS CodePipeline est uniquement disponible pour les actions AWS CodeBuild.

Termes

Ce tableau présente le mappage des concepts entre Datadog CI Visibility et AWS CodePipeline :

DatadogCodePipeline AWS
PipelinePipeline
StageStage
JobAction

Configurer l’intégration Datadog

Pour configurer l’intégration entre AWS CodePipeline et Pipeline Visibility, créez deux ressources AWS.

Destination d’API
un endpoint HTTP pointant vers l’ingestion de Datadog.
Règle AWS EventBridge
une règle qui transmet les événements CodePipeline à la destination d’API.

Vous pouvez créer ces ressources séparément, ou en même temps, lors du processus de création de règle EventBridge. Pour plus d’informations sur la surveillance des événements de pipeline, consultez le guide AWS officiel.

Créer la destination d’API

  1. Dans la console AWS, accédez à EventBridge > API destinations et cliquez sur Create API destination.
  2. Choisissez un nom pour la destination d’API (par exemple, datadog-ci-visibility-api) et ajoutez éventuellement une description.
  3. Sous API destination endpoint, saisissez https://webhook-intake./api/v2/webhook.
  4. Sous HTTP method, sélectionnez POST.
  5. Sous Connection type, sélectionnez Create a new connection :
    1. Choisissez un nom pour la connexion (par exemple, datadog-ci-visibility-connection) et ajoutez éventuellement une description.
    2. Sous Destination type, sélectionnez Other.
    3. Sous Authorization type, sélectionnez API key. Saisissez DD-API-KEY comme API key name et ajoutez votre clé d’API Datadog dans le champ Value.
  6. Cliquez sur Create.

Créer la règle EventBridge

  1. Dans la console AWS, accédez à EventBridge > Rules et cliquez sur Create Rule.

  2. Choisissez un nom pour la règle (par exemple, datadog-ci-visibility-integration) et ajoutez éventuellement une description.

  3. Laissez le bus d’événements sur default, et sous Rule Type, sélectionnez Rule with an event pattern. Cliquez sur Next.

  4. Sous Event Source, sélectionnez AWS events or EventBridge partner events.

  5. Sous Creation Method, sélectionnez Custom pattern (JSON editor). Ensuite, sous Event Pattern, saisissez ce qui suit :

    {
      "source": ["aws.codepipeline"],
      "detail-type": ["CodePipeline Pipeline Execution State Change", "CodePipeline Action Execution State Change", "CodePipeline Stage Execution State Change"]
    }
    

    Le JSON ci-dessus configure l’intégration pour tous vos pipelines. Pour restreindre l’ensemble des pipelines, suivez la section Surveiller uniquement des pipelines spécifiques ci-dessous.

  6. Cliquez sur Next.

  7. Sous Target Types, sélectionnez EventBridge API destination. Ensuite, choisissez Use an existing API Destination et sélectionnez la destination d’API que vous avez créée à l’étape précédente. Vous pouvez également créer la destination d’API en suivant les étapes décrites dans la section Créer la destination d’API.

  8. Sous Headers Parameters, cliquez sur Add header parameter. Saisissez DD-CI-PROVIDER-AWSCODEPIPELINE comme clé et true comme valeur.

  9. Choisissez Create a new role for this specific resource (ou utilisez un rôle existant).

  10. Vérifiez que les informations sont correctes et créez la règle.

Une fois la règle créée, vous pouvez surveiller vos pipelines dans Datadog.

Configuration avancée

Surveiller uniquement des pipelines spécifiques

Si vous le souhaitez, vous pouvez choisir de limiter le nombre de pipelines surveillés par Pipeline Visibility. Pour ce faire, appliquez le filtre detail.pipeline au pattern d’événement de la règle défini lors de la création de la règle EventBridge. Par exemple :

 {
   "source": ["aws.codepipeline"],
   "detail-type": ["CodePipeline Pipeline Execution State Change", "CodePipeline Action Execution State Change", "CodePipeline Stage Execution State Change"],
   "detail": {
     "pipeline": ["first-pipeline", "second-pipeline"]
   }
 }

Le modèle d’événement configure l’intégration uniquement pour les pipelines first-pipeline et second-pipeline.

Mettre en corrélation les pipelines avec les tests

Si vous utilisez Test Optimization et que votre pipeline contient une ou plusieurs actions AWS CodeBuild pour exécuter des tests, vous pouvez mettre en corrélation vos tests avec le pipeline associé dans Datadog Pipeline Visibility. Pour obtenir des instructions, consultez la section Ajouter l’ID d’exécution de pipeline.

Collecter les logs de tâches

L’intégration AWS CodePipeline prend en charge la corrélation des actions CodeBuild avec leurs spans de tâches et de pipeline respectifs. Pour activer la collecte de logs pour vos actions CodeBuild, consultez le guide de transfert de logs AWS.

La corrélation de logs pour les actions CodeBuild nécessite que le projet CodeBuild ait les noms de groupe de logs et de flux de logs CloudWatch par défaut.

Les logs sont facturés séparément de CI Visibility. La rétention, l’exclusion et les index de logs sont configurés dans les paramètres de logs. Les logs pour AWS CodeBuild peuvent être identifiés par les tags source:codebuild et sourcecategory:aws.

Ajouter l’ID d’exécution de pipeline en tant que variable d’environnement

L’ID d’exécution de pipeline est un identifiant dont Datadog a besoin pour identifier de manière unique une exécution de pipeline. Effectuez les étapes suivantes pour attribuer un ID d’exécution de pipeline afin de mettre en corrélation les pipelines avec les tests et les commandes personnalisées :

  1. Dans la console AWS, accédez à la configuration de votre pipeline et cliquez sur Edit
  2. Accédez au stage contenant l’action AWS CodeBuild, cliquez sur Edit Stage, puis modifiez l’action concernée.
  3. Sous Environment variables, ajoutez une variable d’environnement. Nommez la variable DD_PIPELINE_EXECUTION_ID, et la valeur #{codepipeline.PipelineExecutionId}. Laissez le type sur Plaintext.
  4. Cliquez sur Done pour enregistrer vos modifications.

Les étapes ci-dessus vous permettent d’ajouter l’ID d’exécution de pipeline à vos variables d’environnement d’action CodeBuild. Pour plus d’informations sur l’utilisation des variables, consultez le guide AWS officiel.

Visualiser les données de pipeline dans Datadog

Consultez vos données sur les pages CI Pipeline List et Executions après l’exécution des pipelines.

La page CI Pipeline List affiche des données uniquement pour la branche par défaut de chaque référentiel. Pour plus d’informations, consultez la section Rechercher et gérer les pipelines CI.

Pour aller plus loin