Definire un'analisi personalizzata

Cloud Deploy supporta i job di analisi che utilizzano gli avvisi generati da Google Cloud Observability in base alle metriche e ad altri dati provenienti anche da Google Cloud Observability. Tuttavia, puoi anche estendere Cloud Deploy per utilizzare altri provider di metriche. Questo documento descrive come configurare e utilizzare un job di analisi e i requisiti per un container personalizzato che includa la logica per analizzare le metriche del fornitore di tua scelta.

Prima di iniziare

  1. Accedi al tuo Account Google.

    Se non ne hai già uno, registrati per creare un nuovo account.

  2. Installa Google Cloud CLI.

  3. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  4. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  5. Verifica di disporre delle autorizzazioni necessarie per completare questa guida.

  6. Verifica che la fatturazione sia abilitata per il tuo progetto Google Cloud .

  7. Abilita le API Compute Engine e Cloud Deploy:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin), che include l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    gcloud services enable clouddeploy.googleapis.com  compute.googleapis.com
  8. Installa Google Cloud CLI.

  9. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  10. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  11. Verifica di disporre delle autorizzazioni necessarie per completare questa guida.

  12. Verifica che la fatturazione sia abilitata per il tuo progetto Google Cloud .

  13. Abilita le API Compute Engine e Cloud Deploy:

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin), che include l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    gcloud services enable clouddeploy.googleapis.com  compute.googleapis.com

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare e utilizzare job di analisi, chiedi all'amministratore di concederti i seguenti ruoli IAM sull'account per il tuo progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Per assicurarti che il account di servizio Cloud Deploy disponga delle autorizzazioni necessarie per creare e utilizzare job di analisi, chiedi all'amministratore di concedere i seguenti ruoli IAMaccount di servizioount Cloud Deploy sul tuo progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

L'amministratore potrebbe anche assegnare al account di servizio Cloud Deploy le autorizzazioni richieste tramite ruoli personalizzati o altri ruoli predefiniti.

Configura un job di analisi personalizzato

Un job di analisi personalizzata è uguale a un job di analisi che utilizza gli avvisi di Google Cloud Observability, ma il job personalizzato utilizza una o più attività che fanno riferimento a container personalizzati e ai comandi da eseguire su questi container per elaborare i dati del tuo fornitore di metriche.

Questa sezione descrive come configurare un job di analisi di Cloud Deploy che utilizza un provider di monitoraggio nonGoogle Cloud .

La sezione analysis può essere utilizzata direttamente all'interno di una configurazione della strategia di deployment (strategy.standard.analysis, per una strategia standard). Se vuoi configurare l'analisi per fase, utilizza un canary personalizzato (strategy.canary.customCanaryDepolyment.phaseConfigs.phaseId.analysis).

strategy:
  standard:
    analysis:
      duration: DURATION
      customChecks:
      - id: CHECK_ID
        frequency: FREQUENCY
        task:
          type: container
          image: IMAGE_NAME
          command: COMMAND
          args: [ARGS]
          env:
            [VAR_NAME: VALUE]

Dove:

  • DURATION

    Indica la durata, in secondi, del job di analisi. Al termine della durata, il job viene completato. Se l'analisi non va a buon fine (il container restituisce un codice di uscita diverso da zero), il job termina (FAILED) prima della scadenza della durata.

  • CHECK_ID

    È un ID per il singolo controllo. Questo ID deve essere univoco all'interno di questo job di analisi

  • FREQUENCY

    Indica la frequenza, in secondi, di esecuzione del singolo controllo.

  • IMAGE_NAME

    È il percorso e il nome che identificano l'immagine container.

  • COMMAND

    È il comando da eseguire sul container, ad esempio uno script shell (/bin/bash).

  • ARGS

    È un elenco di argomenti per quel comando. Si tratta di un elenco separato da virgole. Se COMMAND_TO_RUN è "/bin/sh", uno degli argomenti qui sarebbe -c e un altro argomento sarebbe l'intero comando che vuoi eseguire nella shell che stai richiamando.

  • VAR_NAME

    È il nome di una variabile di ambiente da passare al container. Utilizzi le variabili di ambiente per configurare il comportamento del container. ovvero le variabili e i relativi valori indicano al contenitore cosa monitorare nello specifico nel provider di metriche.

    Puoi utilizzare i parametri di sistema come variabili di ambiente qui.

  • VALUE

    È il valore di ogni variabile di ambiente. Cloud Deploy non esegue alcuna operazione con queste variabili di ambiente, se non passarle, con i relativi valori, al tuo container. Spetta al contenitore utilizzare i valori nella logica di analisi.

Ogni controllo in una definizione di analisi personalizzata include un'attività che fa riferimento a un container, il comando o i comandi da eseguire su quel container e qualsiasi variabile di ambiente applicabile da passare al container.

Il container personalizzato

Per l'analisi personalizzata, il container che fornisci è responsabile dell'analisi della telemetria, dei log o di altri dati del fornitore di metriche che utilizzi. Il job di analisi di Cloud Deploy attende il codice restituito dal container.

Cosa deve fare il container personalizzato

Il contenitore personalizzato è responsabile dell'importazione dei dati dal tuo fornitore di metriche, di determinare se le metriche, i log o altri dati indicano un'applicazione funzionante correttamente e di restituire i risultati a Cloud Deploy.

Cosa deve restituire il container personalizzato

Cloud Deploy non richiede nulla dal container personalizzato, se non che restituisca un codice di uscita zero o diverso da zero. Se il container restituisce un codice di uscita diverso da zero, l'analisi non va a buon fine.

Il container può scrivere i risultati in un file denominato results.json (in formato JSON), che si trova nel bucket Cloud Storage fornito da Cloud Deploy. Il file conterrà i metadati sotto forma di coppie chiave-valore. Questo passaggio non è obbligatorio.

Variabili di ambiente disponibili

Cloud Deploy fornisce e popola anche le seguenti variabili di ambiente nell'ambiente di esecuzione. Puoi utilizzare queste variabili di ambiente come parte del deploy hook, del verify job, o del rendering o del deployment del target personalizzato.

  • ANTHOS_MEMBERSHIP

    Per i target di tipo ANTHOS, il nome della risorsa completamente specificato dell'appartenenza Anthos.

  • CLOUD_RUN_LOCATION

    Per i target di tipo RUN, la regione in cui è stato eseguito il deployment del servizio Cloud Run.

  • CLOUD_RUN_PROJECT

    Per le destinazioni di tipo RUN, il progetto in cui è stato creato il servizio Cloud Run.

  • CLOUD_RUN_SERVICE

    Per le destinazioni di tipo RUN, il nome del servizio Cloud Run di cui è stato eseguito il deployment.

  • CLOUD_RUN_SERVICE_URLS

    Per i target di tipo RUN, l'URL o gli URL (elenco separato da virgole) che gli utenti finali utilizzeranno per accedere al tuo servizio. Puoi trovarli nei dettagli del servizio Cloud Run per il tuo servizio, nella consoleGoogle Cloud . Gli URL vengono generati da Cloud Run dopo il deployment riuscito del servizio o dei servizi Cloud Run. Pertanto, questa variabile di ambiente è disponibile solo negli hook post-deployment e nei job di verifica.

  • CLOUD_RUN_REVISION

    Per i target di tipo RUN, la revisione specifica del servizio Cloud Run.

  • GKE_CLUSTER

    Per le destinazioni di tipo GKE, il nome della risorsa completamente specificato del cluster Google Kubernetes Engine, ad esempio projects/p/locations/us-central1/clusters/dev.

  • TARGET_TYPE

    Il tipo di runtime specifico della destinazione. GKE, ANTHOS o RUN. Per i target personalizzati, questo valore non verrà impostato.

  • CLOUD_DEPLOY_LOCATION

    La regione contenente le risorse Cloud Deploy.

  • CLOUD_DEPLOY_DELIVERY_PIPELINE

    L'ID della pipeline di distribuzione.

  • CLOUD_DEPLOY_TARGET

    L'ID del target.

  • CLOUD_DEPLOY_PROJECT

    Il numero di progetto Google Cloud per il progetto contenente le risorse Cloud Deploy.

  • CLOUD_DEPLOY_PROJECT_ID

    L'ID progetto Google Cloud del progetto.

  • CLOUD_DEPLOY_RELEASE

    L'ID della release in cui verranno eseguiti gli hook.

  • CLOUD_DEPLOY_ROLLOUT

    L'ID del rollout che contiene i job per gli hook.

  • CLOUD_DEPLOY_JOB_RUN

    L'ID dell'esecuzione del job che rappresenta l'esecuzione corrente del job.

  • CLOUD_DEPLOY_PHASE

    La fase del lancio che contiene il job per l'hook di deployment, il job di verifica o il rendering o il deployment personalizzato.

Passaggi successivi