Configurer le tracing sur un pipeline AWS CodePipeline
À l'heure actuelle, la solution CI Visibility n'est pas disponible pour le site sélectionné ().
Aperçu
AWS CodePipeline est un service de déploiement continu entièrement géré qui vous permet d’automatiser vos pipelines de publication de code afin de mettre à jour vos applications et infrastructures de façon rapide et fiable.
Configurez le tracing sur AWS CodePipeline pour recueillir des données sur vos exécutions de pipeline, analyser les goulots d’étranglement des performances, résoudre les problèmes opérationnels et surveiller vos flux de déploiement.
Compatibilité
Visibilité du pipeline | Plateforme | Définition |
---|
Tentatives partielles | Pipelines partiels | Consultez les exécutions qui ont fait l’objet d’une nouvelle tentative partielle. |
*Pipelines en cours d’exécution | Pipelines en cours d’exécution | Consultez les exécutions de pipelines en cours. |
**Mise en corrélation des logs | Mise en corrélation des logs | Mettez les spans des pipelines et des tâches en corrélation avec les logs et [activez la collecte des logs de tâches](#activer-la-collecte-des logs-de-taches). |
*Aucune information Git sur un pipeline AWS CodePipeline n’est disponible tant qu’il n’a pas fini de s’exécuter.
**La mise en corrélation des logs AWS CodePipeline est uniquement disponible pour les actions AWS CodeBuild.
Pour configurer l’intégration entre AWS CodePipeline et Datadog CI Visibility, créez deux ressources AWS :
- Destination d’API : un endpoint HTTP qui pointe vers l’ingestion 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 simultanément au cours du processus de création de la règle EventBridge. Pour en savoir plus sur la surveillance des événements de pipeline, consultez le guide officiel d’AWS.
Créer la destination d’API
- Dans la console AWS, accédez à EventBridge > API destinations et cliquez sur Create API destination.
- Attribuez un nom à la destination d’API (datadog-ci-visibility-api, par exemple), puis ajoutez une description si vous le souhaitez.
- Pour API destination endpoint, saisissez
https://webhook-intake./api/v2/webhook
. - Pour HTTP method, sélectionnez POST.
- Dans Connection type, sélectionnez Create a new connection :
- Attribuez un nom à la connexion (datadog-ci-visibility-connection, par exemple) et ajoutez une description si vous le souhaitez.
- Dans Destination type, sélectionnez Other.
- Dans Authorization type, sélectionnez API key.
Saisissez
DD-API-KEY
en tant que API key name ainsi que votre clé d’API Datadog dans le champ Value.
- Click Create.
Créer la règle EventBridge
- Dans la console AWS, accédez à EventBridge > Rules, puis cliquez sur Create Rule.
- Attribuez un nom à la règle (datadog-ci-visibility-integration, par exemple), puis ajoutez une description si vous le souhaitez.
- Laissez l’option default pour le bus d’événements, puis sélectionnez Rule with an event pattern pour Rule Type. Cliquez ensuite sur Next.
- Pour Event Source, sélectionnez AWS events or EventBridge partner events.
- Pour Creation Method, sélectionnez Custom pattern (JSON editor). Saisissez ensuite le JSON suivant sous Event Pattern :
{
"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 l’ensemble de vos pipelines. Pour limiter les pipelines inclus, référez-vous à la section Surveiller uniquement des pipelines spécifiques. - Cliquez sur Next.
- Pour 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. Si vous le souhaitez, vous pouvez également créer la destination d’API en suivant les étapes décrites dans la section Créer la destination d’API.
- Dans Headers Parameters, cliquez sur Add header parameter. Saisissez
DD-CI-PROVIDER-AWSCODEPIPELINE
comme clé et true
comme valeur. - Choisissez Create a new role for this specific resource (ou utilisez un rôle existant).
- Vérifiez que tout est correct et créez la règle.
Une fois la règle créée, l’intégration est terminée et vous pouvez commencer à surveiller vos pipelines dans Datadog.
Surveiller uniquement des pipelines spécifiques
Vous avez la possibilité de limiter le nombre de pipelines surveillés par Pipeline Visibility. Pour ce faire, appliquez le filtre detail.pipeline
au pattern d’événements 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 pattern d’événements ci-dessus configure l’intégration uniquement pour les pipelines first-pipeline
et second-pipeline
.
Mettre en corrélation les pipelines et les tests
Si vous utilisez Test Visibility et que votre pipeline comporte une ou plusieurs actions AWS CodeBuild permettant d’exécuter des tests, vous pouvez mettre ces tests en corrélation avec le pipeline associé dans Datadog Pipeline Visibility.
- Dans la console AWS, accédez à la configuration de votre pipeline et cliquez sur Edit*.
- Accédez à l’étape contenant l’action AWS CodeBuild, cliquez sur Edit Stage, puis modifiez l’action adéquate.
- Sous Environment variables, ajoutez une variable d’environnement.
Saisissez
DD_PIPELINE_EXECUTION_ID
comme nom de variable, puis la valeur#{codepipeline.PipelineExecutionId}
. Gardez Plaintext pour le type de variable d’environnement. - Cliquez sur Done pour enregistrer vos modifications.
Les étapes ci-dessus vous permettent d’ajouter l’ID d’exécution du pipeline aux variables d’environnement de votre action CodeBuild. Pour en savoir plus sur l’utilisation des variables, consultez le guide officiel d’AWS.
Activer la mise en corrélation des logs
L’intégration AWS CodePipeline prend en charge la mise en corrélation des actions CodeBuild avec leurs spans de tâches et de pipelines respectives. Pour activer la collecte de logs pour vos actions CodeBuild, consultez le Guide de transmission de logs AWS.
Remarque : pour que la mise en corrélation des logs pour les actions CodeBuild fonctionne, les noms par défaut du groupe de logs et du flux de logs CloudWatch doivent être configurés pour le projet CodeBuild.
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 aller plus loin
Documentation, liens et articles supplémentaires utiles: