Utilizzare gli approfondimenti di Developer Connect

Questo documento descrive come sfruttare l'intelligence fornita dagli approfondimenti di Developer Connect.

Prima di iniziare

Prima di poter utilizzare gli approfondimenti di Developer Connect, devi seguire i passaggi descritti in Configurare gli approfondimenti di Developer Connect. I ruoli e le autorizzazioni necessari per gli approfondimenti di Developer Connect sono descritti in questo articolo.

Utilizzare gli approfondimenti di Developer Connect in Gemini Cloud Assist

Puoi utilizzare Gemini Cloud Assist per visualizzare gli approfondimenti generati da Developer Connect.

Quando viene creata un'indagine in Gemini Cloud Assist, il sistema rileva automaticamente le implementazioni pertinenti alla tua applicazione App Hub o all'interno di un progetto, a seconda di come l'hai configurata. Quando esegue diagnosi, Gemini Cloud Assist utilizza questi deployment come contesto.

Quando Gemini Cloud Assist correla un evento di deployment con la tua indagine, il sistema mostra una scheda intitolata "Deployment di [DEPLOYMENT_NAME]".

Fai clic su Eventi correlati sulle schede per aprire i log pertinenti in Esplora log.

Quando Gemini Cloud Assist ritiene che un deployment specifico stia causando un errore, lo include tra le ipotesi, con il titolo "Recent Deployment Impacting Application Behavior" (Deployment recente che influisce sul comportamento dell'applicazione), insieme a consigli per la correzione.

Visualizzare le voci di log degli approfondimenti di Developer Connect

Poiché gli approfondimenti creati utilizzando gli approfondimenti di Developer Connect vengono archiviati come voci di log in Cloud Logging, puoi visualizzare i metadati di deployment in Logging. Per visualizzare le voci di log create dagli approfondimenti di Developer Connect, utilizza il comando gcloud logging read filtrando per nome del log, come segue:

gcloud logging read logName=projects/PROJECT_ID/logs/developerconnect.googleapis.com/sdlc_deployment` \
--project=PROJECT_ID

In questo comando, sostituisci PROJECT_ID con l'ID del progetto in cui hai creato la configurazione degli approfondimenti di Developer Connect.

Questo comando restituisce log con il nome sdlc_deployment, ma puoi anche filtrare in base ad altri valori, ad esempio l'ID configurazione di Developer Connect Insights (labels.insights_config_id=) per mostrare le voci di log per una configurazione di insights specifica.

Di seguito è riportato un esempio di voce di log JSON prodotta dagli approfondimenti di Developer Connect:

{
  "insertId": "11h69plf2713tb",
  "jsonPayload": {
    "previousDeployment": {
      "resource": "//container.googleapis.com/projects/P/locations/L/clusters/dci-cluster",
      "deploymentId": "//container.googleapis.com/projects/P/locations/L/clusters/dci-cluster/k8s/namespaces/default/apps/replicasets/dci-test-app-c8cf94d46",
      "artifactDetails": [
        {
          "commitReferences": [
            {
              "commitSha": "5460433ebfc4b2a7602e21f90828559b4891943e",
              "commitUrl": "https://github.com/USER/REPO/commit/5460433ebfc4b2a7602e21f90828559b4891943e"
            }
          ],
          "packages": [
            {
              "packageVersion": "3.40.1-2+deb12u1",
              "packageName": "libsqlite3-0"
            },
            {
              "packageVersion": "0.45.1",
              "packageName": "wheel"
            },
          ],
          "artifactUri": "us-central1-docker.pkg.dev/P/R/dci-test-app-image@sha256:86ee1874886beb7d2042e40e3ff7253a974c579d49dbbfbba576aad13c880709"
        }
      ],
      "statusSummary": "1/1 Running",
      "timestamp": "2025-03-21T21:13:28Z"
    },
    "currentDeployment": {
      "resource": "//container.googleapis.com/projects/P/locations/L/clusters/dci-cluster",
      "statusSummary": "5/5 Running",
      "artifactDetails": [
        {
          "packages": [
            {
              "packageVersion": "3.40.1-2+deb12u1",
              "packageName": "libsqlite3-0"
            },
            {
              "packageVersion": "0.45.1",
              "packageName": "wheel"
            },
          ],
          "artifactUri": "us-central1-docker.pkg.dev/P/R/dci-test-app-image@sha256:86ee1874886beb7d2042e40e3ff7253a974c579d49dbbfbba576aad13c880709",
          "commitReferences": [
            {
              "commitUrl": "https://github.com/USER/REPO/commit/5460433ebfc4b2a7602e21f90828559b4891943e",
              "commitSha": "5460433ebfc4b2a7602e21f90828559b4891943e"
            }
          ]
        },
        {
          "artifactUri": "us-central1-docker.pkg.dev/P/R/dci-test-app-image@sha256:86ee1874886beb7d2042e40e3ff7253a974c579d49dbbfbba576aad13c880709",
          "packages": [
                       {
              "packageVersion": "3.40.1-2+deb12u1",
              "packageName": "libsqlite3-0"
            },
            {
              "packageVersion": "0.45.1",
              "packageName": "wheel"
            },
          ],
          "commitReferences": [
            {
              "commitSha": "5460433ebfc4b2a7602e21f90828559b4891943e",
              "commitUrl": "https://github.com/USER/REPO/commit/5460433ebfc4b2a7602e21f90828559b4891943e"
            }
          ]
        }
      ],
      "deploymentId": "//container.googleapis.com/projects/P/locations/L/clusters/dci-cluster/k8s/namespaces/default/apps/replicasets/recommendation-app-c8cf94d46",
      "timestamp": "2025-03-21T21:16:33Z"
    }
  },
  "resource": {
    "type": "k8s_cluster",
    "labels": {
      "location": "us-central1",
      "project_id": "REDACTED",
      "cluster_name": "REDACTED"
    }
  },
  "timestamp": "2025-03-21T21:16:33Z",
  "severity": "INFO",
  "labels": {
    "insights_config_id": "projects/P/locations/L/insightsConfigs/ecommerce-699",
    "insights_config_deployment_id": "projects/P/locations/L/insightsConfigs/ecommerce-699/deployments/ee54cbae-08f4-4970-a61b-bc28740572c7"
  },
  "logName": "projects/P/logs/developerconnect.googleapis.com%2Fsdlc_deployment",
  "receiveTimestamp": "2025-03-21T21:18:01.154658625Z",
  "apphub": {
    "application": {
      "container": "projects/dci-test-project-3",
      "location": "us-central1",
      "id": "dci-test-app"
    },
    "workload": {
      "id": "dci-test-app",
      "environmentType": "PRODUCTION",
      "criticalityType": "MISSION_CRITICAL"
    }
  }
}

Visualizzare gli eventi di deployment di Developer Connect Insights

Oltre a visualizzare gli approfondimenti utilizzando Logging, puoi elencare gli eventi di deployment dalla riga di comando e visualizzare i dettagli di questi eventi.

Elenca eventi di deployment

Per elencare gli eventi di deployment per una determinata configurazione di approfondimenti, esegui questo comando:

gcloud alpha developer-connect insights-configs deployment-events list \
       --insights-config=INSIGHTS_CONFIG_ID \
       --location=LOCATION \
       --project=PROJECT_ID

Sostituisci quanto segue:

  • INSIGHTS_CONFIG_ID è il nome assegnato alla configurazione di Developer Connect Insights al momento della creazione.

  • LOCATION è la regione in cui hai creato la configurazione di Developer Connect Insights.

  • PROJECT_ID è l'ID del progetto Google Cloud in cui hai creato la configurazione degli approfondimenti.

Di seguito è riportato un output JSON di esempio del comando deployment-events list, che mostra gli eventi di deployment prodotti dagli approfondimenti di Developer Connect:

[
  {
    "artifactDeployments": [
      {
        "artifactAlias": "us-central1-docker.pkg.dev/my-project/my-registry/my-app@sha256:1234567890",
        "artifactReference": "us-central1-docker.pkg.dev/my-project/my-registry/my-app@sha256:1234567890",
        "containerStatusSummary": "Running-N/A : 1",
        "deployTime": "2025-10-20T16:10:48Z",
        "id": "0a9b8c7d6e5f4g3h2i1",
        "sourceCommitUris": [
          "https://github.com/myGitHub/my-GitHub-project/commit/5806255405d"
        ]
      }
    ],
    "deployTime": "2025-10-20T16:10:48Z",
    "name": "projects/111111111/locations/us-central1/insightsConfigs/my-ic/deploymentEvents/daf0987654321",
    "runtimeConfig": {
      "uri": "//container.googleapis.com/projects/111111111/locations/us-central1/clusters/my-cluster/k8s/namespaces/default/apps/deployments/my-deployment"
    },
    "runtimeDeploymentUri": "//container.googleapis.com/projects/111111111/locations/us-central1/clusters/my-cluster/k8s/namespaces/default/apps/replicasets/my-deployment-6c74f4cdbb",
    "state": "STATE_ACTIVE"
  },
  {
    "artifactDeployments": [
      {
        "artifactAlias": "us-central1-docker.pkg.dev/my-project/my-registry/my-app@sha256:24680",
        "artifactReference": "us-central1-docker.pkg.dev/my-project/my-registry/my-app@sha256:24680",
        "containerStatusSummary": "Terminated-Error (Exit Code: 137) : 1",
        "deployTime": "2025-10-20T15:29:32Z",
        "id": "2a4b6c8d0e",
        "sourceCommitUris": [
          "https://github.com/myGitHub/my-GitHub-project/commit/n6f8e1269f2c18"
        ],
        "undeployTime": "2025-10-20T18:46:47Z"
      }
    ],
    "deployTime": "2025-10-20T15:29:32Z",
    "name": "projects/111111111/locations/us-central1/insightsConfigs/my-ic/deploymentEvents/nkj987654321",
    "runtimeConfig": {
      "uri": "//container.googleapis.com/projects/111111111/locations/us-central1/clusters/my-cluster/k8s/namespaces/default/apps/replicasets/my-deployment"
    },
    "runtimeDeploymentUri": "//container.googleapis.com/projects/111111111/locations/us-central1/clusters/my-cluster/k8s/namespaces/default/apps/replicasets/my-deployment-6c74f4cdbb",
    "state": "STATE_INACTIVE",
    "undeployTime": "2025-10-20T18:46:47Z"
  }
]

Visualizzare i dettagli dell'evento di deployment

Per visualizzare i dettagli degli eventi di deployment per una determinata configurazione di insights, incluse le vulnerabilità, esegui questo comando:

gcloud alpha developer-connect insights-configs deployment-events describe DEPLOYMENT_EVENT_ID \
       --insights-config=INSIGHTS_CONFIG_ID \
       --location=LOCATION \
       --project=PROJECT_ID

Sostituisci quanto segue:

  • DEPLOYMENT_EVENT_ID è un identificatore univoco per l'evento di deployment.

    Puoi ottenere questo ID dall'elenco degli eventi restituiti dal comando gcloud alpha developer-connect insights-configs deployment-events list. L'ID si trova alla fine del percorso nell'elemento name: per l'evento. Ad esempio, nel seguente JSON dell'evento di deployment, l'ID evento è nkj987654321:

    "name": "projects/111111111/locations/us-central1/insightsConfigs/my-ic/deploymentEvents/nkj987654321"
    
  • INSIGHTS_CONFIG_ID è il nome assegnato alla configurazione di Developer Connect Insights al momento della creazione.

  • LOCATION è la regione in cui hai creato la configurazione di Developer Connect Insights.

  • PROJECT_ID è l'ID del progetto Google Cloud in cui hai creato la configurazione degli approfondimenti.

Di seguito è riportato un esempio di output JSON del comando deployment-events describe che mostra i dettagli dell'evento di deployment, prodotto dagli approfondimenti di Developer Connect:

{
  "artifactDeployments": [
    {
      "artifactAlias": "us-central1-docker.pkg.dev/my-project/my-registry/my-app@sha256:1234567890",
      "artifactReference": "us-central1-docker.pkg.dev/my-project/my-registry/my-app@sha256:1234567890",
      "containerStatusSummary": "Running-N/A : 1",
      "deployTime": "2025-12-02T01:04:30Z",
      "id": "0a9b8c7d6e5f4g3h2i1",
      "packages": [
        {
          "name": "abc",
          "version": "1.3.4.20250131-1"
        },
        {
          "name": "defg",
          "version": "4.3.0"
        },
      ],
      "sourceCommitUris": [
        "https://github.com/myGitHub/my-GitHub-project/commit/5806255405d"
      ],
      "vulnerabilities": [
        "CVE-2000-1234",
        "CVE-2001-1234",
        "CVE-2002-1234",
        "CVE-2003-1234",
        "CVE-2004-1234",
      ]
    }
  ],
  "deployTime": "2025-12-02T01:04:30Z",
  "name": "projects/111111111/locations/us-central1/insightsConfigs/my-ic/deploymentEvents/daf0987654321",
  "runtimeConfig": {
    "uri": "//container.googleapis.com/projects/111111111/locations/us-central1/clusters/my-cluster/k8s/namespaces/default/apps/deployments/my-deployment"
  },
  "runtimeDeploymentUri": "//container.googleapis.com/projects/111111111/locations/us-central1/clusters/my-cluster/k8s/namespaces/default/apps/replicasets/my-deployment-6c74f4cdbb",
  "state": "STATE_ACTIVE"
}

Passaggi successivi