Débogage des générations

Apprenez à traiter les incidents liés aux générations IBM Cloud® Code Engine et aux exécutions de votre génération à l'aide des astuces de traitement des incidents.

Que vous exécutiez votre génération depuis la console ou depuis l'interface de ligne de commande, utilisez l'interface de ligne de commande pour traiter les problèmes liés à votre génération.

  1. Exécutez la commande ibmcloud ce buildrun get --name BUILDRUN_NAME pour afficher les détails de votre exécution de génération.
  2. Consultez la section Reason dans la sortie de la commande.

Si votre génération ne se comporte pas comme prévu, consultez les journaux et les événements système pour obtenir des informations pouvant contribuer au débogage.

Limites relatives aux générations à prendre en compte

Le nombre maximal de configurations de génération possibles par projet est 100. Si vous atteignez le nombre total de 100 exécutions de génération par projet, vous devez retirer ou nettoyer d'anciennes exécutions.

Pour plus d'informations sur les limites pour les générations, notamment relatives à la mémoire et à l'unité centrale, voir Limites et quotas pour Code Engine.

Avec l'interface de ligne de commande, vous pouvez utiliser la commande ibmcloud ce project get pour afficher des informations sur les limites et l'utilisation actuelle. Exemple :

ibmcloud ce project get --name myproject

Exemple de sortie

Getting project 'myproject'...
OK
Name:                                      myproject
ID:                         abcdabcd-abcd-abcd-abcd-f1de4aab5d5d
Status:                                    active
Enabled:                                   true
Application Private Visibility Supported:  true
Selected:                                  true
Region:                                    us-south
Resource Group:             default
Service Binding Service ID: ServiceId-1234abcd-abcd-abcd-1111-1a2b3c4d5e6f
Age:                        52d
Created:                                   Tue, 28 Sep 2021 05:12:16 -0500
Updated:                                   Tue, 28 Sep 2021 05:12:19 -0500
Quotas:
Category                                  Used  Limit
App revisions                             2    120
Apps                                      1     40
Build runs                                1     100
Builds                                    2     100
Configmaps                                2     100
CPU                                       0     128
Ephemeral storage                         0     512G
Functions                                 0     20
Instances (active)                        0     250
Instances (total)                         0     2500
Job runs                                 13     100
Jobs                                      2     100
Memory                                    0     512G
Secrets                                   6     100
Subscriptions (cron)                      0     100
Subscriptions (IBM Cloud Object Storage)  0     100
Subscriptions (Kafka)                     0     100

Obtention des journaux pour mes générations

Les journaux peuvent être utiles pour traiter les problèmes survenant lorsque vous exécutez des générations. Vous pouvez consulter les journaux des générations depuis l'interface de ligne de commande ou la console.

Obtention des journaux pour mes générations à partir de la console

Vous pouvez afficher les journaux d'instances d'exécution de génération spécifiques à partir de la console.

  1. Accédez au tableau de bord Code Engine.
  2. Sélectionnez un projet (ou créez-en un).
  3. Sur la page du projet, cliquez sur Générations d'image.
  4. Dans l'onglet Génération d'image, cliquez sur le nom de votre génération d'image pour ouvrir la page de génération d'une génération définie ou créez une génération.
  5. A partir de la page de la génération définie, cliquez sur le nom de l'instance de l'exécution de génération dans la section Exécutions de génération. Vous pourriez être amené à cliquer sur Soumettre une génération pour créer une exécution de génération.
  6. Les informations du journal de génération sont maintenant visibles dans la page de l'instance d'exécution de génération. Développez des étapes de génération spécifiques pour afficher des informations de journalisation détaillées.

Pour plus d'informations, voir Affichage des journaux de génération à partir de la console.

Obtention des journaux pour mes générations à l'aide de l'interface de ligne de commande

Utilisez la commande ibmcloud ce buildrun logs pour afficher les journaux relatifs à l'exécution de génération. Utilisez cette commande pour afficher les journaux de toutes les instances d'une exécution de génération en fonction du nom de l'exécution de génération.

Pour afficher les journaux de toutes les instances de l'exécution de génération mybuildrun, spécifiez le nom de l'exécution de génération avec l'option --name ; par exemple :

ibmcloud ce buildrun logs --name mybuildrun

Exemple de sortie

Getting build run 'mybuildrun'...
Getting instances of build run 'mybuildrun'...
Getting logs for build run 'mybuildrun'...
OK
mybuildrun-bvzbg-pod-tppvg/step-source-default:
2021/09/21 09:39:08 Info: ssh (/usr/bin/ssh): OpenSSH_8.0p1, OpenSSL 1.1.1g FIPS  21 Apr 2020
2021/09/21 09:39:08 Info: git (/usr/bin/git): git version 2.27.0
2021/09/21 09:39:08 Info: git-lfs (/usr/bin/git-lfs): git-lfs/2.11.0 (GitHub; linux amd64; go 1.14.4)
2021/09/21 09:39:08 /usr/bin/git clone --quiet --no-tags --branch main --depth 1 --single-branch -- https://github.com/IBM/CodeEngine /workspace/source
2021/09/21 09:39:09 /usr/bin/git -C /workspace/source submodule update --init --recursive --depth 1
2021/09/21 09:39:10 /usr/bin/git -C /workspace/source rev-parse --abbrev-ref HEAD
2021/09/21 09:39:10 Successfully loaded https://github.com/IBM/CodeEngine (main) into /workspace/source
2021/09/21 09:39:10 /usr/bin/git -C /workspace/source rev-parse --verify HEAD
mybuildrun-bvzbg-pod-tppvg/step-build-and-push:
INFO[0000] Retrieving image manifest golang:alpine
INFO[0000] Retrieving image golang:alpine from registry index.docker.io
INFO[0001] Retrieving image manifest alpine
INFO[0001] Retrieving image alpine from registry index.docker.io
INFO[0003] Built cross stage deps: map[0:[/codeengine]]
INFO[0003] Retrieving image manifest golang:alpine
INFO[0003] Returning cached image manifest
INFO[0003] Executing 0 build triggers
INFO[0003] Unpacking rootfs as cmd COPY ./helloworld /helloworld requires it.
INFO[0009] COPY ./helloworld /helloworld
INFO[0009] Taking snapshot of files...
INFO[0009] COPY codeengine.go /
INFO[0009] Taking snapshot of files...
INFO[0009] RUN go build -o /codeengine /codeengine.go
INFO[0009] Taking snapshot of full filesystem...
INFO[0017] cmd: /bin/sh
INFO[0017] args: [-c go build -o /codeengine /codeengine.go]
INFO[0017] Running: [/bin/sh -c go build -o /codeengine /codeengine.go]
INFO[0018] Taking snapshot of full filesystem...
INFO[0018] Saving file codeengine for later use
INFO[0018] Deleting filesystem...
INFO[0019] Retrieving image manifest alpine
INFO[0019] Returning cached image manifest
INFO[0019] Executing 0 build triggers
INFO[0019] Unpacking rootfs as cmd COPY --from=0 /codeengine /codeengine requires it.
INFO[0019] COPY --from=0 /codeengine /codeengine
INFO[0019] Taking snapshot of files...
INFO[0019] CMD /codeengine
INFO[0019] Pushing image to us.icr.io/acme-namespace/codeengine-sample
INFO[0023] Pushed image to 1 destinations

Obtention des informations sur les événements système pour mes générations

Les informations sur les événements système peuvent être utiles pour traiter les problèmes survenant lorsque vous exécutez des générations. Vous pouvez afficher des informations sur les événements système pour les générations depuis l'interface de ligne de commande.

  1. Utilisez la commande ibmcloud ce buildrun list pour répertorier toutes vos exécutions de génération dans un projet ; par exemple,

    ibmcloud ce buildrun list  
    
  2. Utilisez la commande ibmcloud ce buildrun get pour obtenir les détails d'une exécution de génération. Exemple :

    ibmcloud ce buildrun get --name mybuildrun  
    

    Exemple de sortie

    Getting build run 'mybuildrun'...
    Run 'ibmcloud ce buildrun events -n mybuildrun' to get the system events of the build run.
    Run 'ibmcloud ce buildrun logs -f -n mybuildrun' to follow the logs of the build run.
    OK
    Name:          mybuilddrun
    [...]
    Created:       2021-06-01T11:43:24-04:00
    Summary:  Succeeded
    Status:   Succeeded
    Reason:   All Steps have completed executing
    Image:  us.icr.io/mynamespace/codeengine-codeengine-200
    

    Si vous souhaitez des détails plus détaillés sur votre exécution de génération, utilisez l'option --o yaml avec la commande buildrun get ; par exemple,ibmcloud ce buildrun get --name myapp --o yaml. Cette option permet d'afficher des informations plus détaillées dans l'interface de ligne de commande pour l'exécution de la génération.

  3. Affichez les événements système de votre exécution de génération. Utilisez la commande ibmcloud ce buildrun events. Exemple :

    ibmcloud ce buildrun events --name mybuildrun
    

    Exemple de sortie

    Getting build run 'mybuildrun'...
    Getting instances of build run 'mybuildrun'...
    Getting events for build run 'mybuildrun'...
    OK
    mybuildrun-bvzbg-pod-tppvg:
        Type    Reason     Age    Source                Messages
        Normal  Scheduled  4m43s  default-scheduler     Successfully assigned 62ckpsxlh7x/mybuildrun-bvzbg-pod-tppvg to 10.242.0.17
        Normal  Pulled     4m42s  kubelet, 10.242.0.17  Container image "icr.io/obs/codeengine/tekton-pipeline/entrypoint-bff0a22da108bc2f16c818c97641a296:v0.23.0-rc6@sha256:43dd56a6c7c10f80300a861615f6f8d91c026deba744f81553a4e536b301b322" already present on machine
        Normal  Created    4m42s  kubelet, 10.242.0.17  Created container place-tools
        Normal  Started    4m41s  kubelet, 10.242.0.17  Started container place-tools
        Normal  Pulled     4m40s  kubelet, 10.242.0.17  Container image "icr.io/obs/codeengine/git:v0.8.100" already present on machine
        Normal  Created    4m40s  kubelet, 10.242.0.17  Created container step-source-default
        Normal  Started    4m40s  kubelet, 10.242.0.17  Started container step-source-default
        Normal  Pulled     4m40s  kubelet, 10.242.0.17  Container image "icr.io/obs/codeengine/buildkit/builder:v0.9.0-rc.19" already present on machine
        Normal  Created    4m40s  kubelet, 10.242.0.17  Created container step-build-and-push
        Normal  Started    4m40s  kubelet, 10.242.0.17  Started container step-build-and-push
    

    Les événements ne sont stockés dans le système que pendant une heure.