Usar insights do Developer Connect

Este documento descreve como aproveitar a inteligência fornecida pelos insights do Developer Connect.

Antes de começar

Antes de usar os insights do Developer Connect, siga as etapas em Configurar insights do Developer Connect. As funções e permissões necessárias para os insights do Developer Connect são descritas nesse artigo.

Usar insights do Developer Connect no Gemini Cloud Assist

Você pode usar o Gemini Cloud Assist para conferir os insights gerados pelo Developer Connect.

Quando uma investigação é criada no Gemini Cloud Assist, o sistema seleciona automaticamente as implantações relevantes para seu aplicativo do App Hub ou dentro de um projeto, dependendo de como você configurou. Ao fazer diagnósticos, o Gemini Cloud Assist usa essas implantações como contexto.

Quando o Gemini Cloud Assist correlaciona um evento de implantação com sua investigação, o sistema mostra um card intitulado "Implantação de [DEPLOYMENT_NAME]".

Clique em Eventos correlacionados nos cards para abrir os registros relevantes no Explorador de registros.

Quando o Gemini Cloud Assist acredita que uma implantação específica está causando um erro, ele inclui essa implantação como uma das hipóteses, com o título "Implantação recente afetando o comportamento do aplicativo", além de recomendações para correção.

Ver entradas de registro de insights do Developer Connect

Como os insights criados usando o Developer Connect são armazenados como entradas de registro no Cloud Logging, é possível ver os metadados de implantação no Logging. Para ver as entradas de registro criadas pelos insights do Developer Connect, use o comando gcloud logging read e filtre por nome do registro, da seguinte maneira:

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

Neste comando, substitua PROJECT_ID pelo ID do projeto em que você criou a configuração de insights do Developer Connect.

Esse comando retorna registros com o nome sdlc_deployment, mas também é possível filtrar por outros valores, por exemplo, o ID de configuração de insights do Developer Connect (labels.insights_config_id=) para mostrar entradas de registro de uma configuração de insights específica.

Confira abaixo um exemplo de entrada de registro JSON produzida pelos insights do 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"
    }
  }
}

Ver eventos de implantação de insights do Developer Connect

Além de ver insights usando o Logging, você pode listar eventos de implantação na linha de comando e conferir detalhes sobre eles.

Listar eventos de implantação

Para listar eventos de implantação de uma determinada configuração de insights, execute o seguinte comando:

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

Substitua:

  • INSIGHTS_CONFIG_ID é o nome dado à configuração de insights do Developer Connect quando ela foi criada.

  • LOCATION é a região em que você criou a configuração de insights do Developer Connect.

  • PROJECT_ID é o ID do projeto Google Cloud em que você criou a configuração de insights.

Confira a seguir um exemplo de saída JSON do comando deployment-events list, mostrando eventos de implantação produzidos por insights do 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"
  }
]

Ver detalhes do evento de implantação

Para conferir os detalhes do evento de implantação de uma determinada configuração de insights, incluindo vulnerabilidades, execute o seguinte comando:

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

Substitua:

  • DEPLOYMENT_EVENT_ID é um identificador exclusivo do evento de implantação.

    Você pode conseguir esse ID na lista de eventos retornada pelo comando gcloud alpha developer-connect insights-configs deployment-events list. O ID está no final do caminho no elemento name: do evento. Por exemplo, no JSON do evento de implantação a seguir, o ID do evento é nkj987654321:

    "name": "projects/111111111/locations/us-central1/insightsConfigs/my-ic/deploymentEvents/nkj987654321"
    
  • INSIGHTS_CONFIG_ID é o nome dado à configuração de insights do Developer Connect quando ela foi criada.

  • LOCATION é a região em que você criou a configuração de insights do Developer Connect.

  • PROJECT_ID é o ID do projeto Google Cloud em que você criou a configuração de insights.

Confira a seguir um exemplo de saída JSON do comando deployment-events describe mostrando detalhes do evento de implantação, produzido por insights do 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"
}

A seguir

  • Saiba mais sobre as investigações do Gemini Cloud Assist