Package google.devtools.cloudprofiler.v2

Indice

ExportService

Il servizio consente ai clienti esistenti di Cloud Profiler di esportare i dati del proprio profilo da Google Cloud.

ListProfiles

rpc ListProfiles(ListProfilesRequest) returns (ListProfilesResponse)

Elenca i profili che sono stati raccolti finora e per i quali il chiamante è autorizzato a visualizzare.

Ambiti di autorizzazione

Richiede uno dei seguenti ambiti OAuth:

  • https://www.googleapis.com/auth/monitoring
  • https://www.googleapis.com/auth/monitoring.write
  • https://www.googleapis.com/auth/cloud-platform

Per ulteriori informazioni, consulta la Panoramica dell'autenticazione.

ProfilerService

Gestisci la raccolta di dati di profilazione continua forniti da agenti di profilazione in esecuzione nel cloud o da un provider offline di dati di profilazione.

Le API elencate in questo servizio sono destinate esclusivamente all'uso all'interno dei nostri agenti profiler.

CreateOfflineProfile

rpc CreateOfflineProfile(CreateOfflineProfileRequest) returns (Profile)

CreateOfflineProfile crea una nuova risorsa del profilo in modalità offline. Il client fornisce il profilo da creare insieme ai byte del profilo e il server lo registra.

Si sconsiglia l'uso diretto di questa API. Per la raccolta del profilo, utilizza invece un agente profiler supportato.

Ambiti di autorizzazione

Richiede uno dei seguenti ambiti OAuth:

  • https://www.googleapis.com/auth/monitoring
  • https://www.googleapis.com/auth/monitoring.write
  • https://www.googleapis.com/auth/cloud-platform

Per ulteriori informazioni, consulta la Panoramica dell'autenticazione.

CreateProfile

rpc CreateProfile(CreateProfileRequest) returns (Profile)

CreateProfile crea una nuova risorsa profilo in modalità online.

Si sconsiglia l'uso diretto di questa API. Per la raccolta del profilo, utilizza invece un agente profiler supportato.

Il server garantisce che i nuovi profili vengano creati a una velocità costante per deployment, quindi la richiesta di creazione potrebbe bloccarsi per un po' di tempo fino a quando non sarà disponibile la successiva sessione del profilo.

La richiesta potrebbe non riuscire con un errore ABORTED se la creazione non è disponibile entro circa 1 minuto e la risposta indicherà la durata del backoff che il client deve eseguire prima di tentare nuovamente di creare un profilo. La durata del backoff viene indicata nell'estensione google.rpc.RetryInfo sullo stato della risposta. Per un client gRPC, l'estensione verrà restituita come proto con serie binaria nell'elemento dei metadati finale denominato "google.rpc.retryinfo-bin".

Ambiti di autorizzazione

Richiede uno dei seguenti ambiti OAuth:

  • https://www.googleapis.com/auth/monitoring
  • https://www.googleapis.com/auth/monitoring.write
  • https://www.googleapis.com/auth/cloud-platform

Per ulteriori informazioni, consulta la Panoramica dell'autenticazione.

UpdateProfile

rpc UpdateProfile(UpdateProfileRequest) returns (Profile)

UpdateProfile aggiorna i byte e le etichette del profilo nella risorsa profilo creata in modalità online. L'aggiornamento dei byte per i profili creati in modalità offline non è attualmente supportato: i contenuti del profilo devono essere forniti al momento della creazione del profilo.

Si sconsiglia l'uso diretto di questa API. Per la raccolta del profilo, utilizza invece un agente profiler supportato.

Ambiti di autorizzazione

Richiede uno dei seguenti ambiti OAuth:

  • https://www.googleapis.com/auth/monitoring
  • https://www.googleapis.com/auth/monitoring.write
  • https://www.googleapis.com/auth/cloud-platform

Per ulteriori informazioni, consulta la Panoramica dell'autenticazione.

CreateOfflineProfileRequest

CreateOfflineProfileRequest descrive una richiesta di creazione offline di una risorsa del profilo.

Campi
parent

string

Progetto principale in cui creare il profilo.

L'autorizzazione richiede la seguente autorizzazione IAM per la risorsa specificata parent:

  • cloudprofiler.profiles.create
profile

Profile

Contenuti del profilo da creare.

CreateProfileRequest

CreateProfileRequest descrive una richiesta di creazione online di risorse del profilo. Il campo del deployment deve essere compilato. Profile_type specifica l'elenco dei tipi di profilo supportati dall'agente. La chiamata di creazione si interrompe finché non è necessario raccogliere un profilo di uno di questi tipi.

Campi
parent

string

Progetto principale in cui creare il profilo.

L'autorizzazione richiede la seguente autorizzazione IAM per la risorsa specificata parent:

  • cloudprofiler.profiles.create
deployment

Deployment

Dettagli del deployment.

L'autorizzazione richiede la seguente autorizzazione IAM per la risorsa specificata deployment:

  • cloudprofiler.profiles.create
profile_type[]

ProfileType

Uno o più tipi di profilo che l'agente è in grado di fornire.

Deployment

Il deployment contiene le informazioni di identificazione del deployment.

Campi
project_id

string

L'ID progetto è l'ID di un progetto cloud. Regex di convalida: ^[a-z][-a-z0-9:.]{4,61}[a-z0-9]$.

target

string

Destinazione è il nome del servizio utilizzato per raggruppare i deployment correlati: * Nome del servizio per App Engine Flex / Standard. * Nome del cluster e del container per GKE. * Stringa specificata dall'utente per la profilazione diretta di Compute Engine (ad es. Java). * Nome job per Dataflow. Regex di convalida: ^[a-z0-9]([-a-z0-9_.]{0,253}[a-z0-9])?$.

labels

map<string, string>

Le etichette identificano il deployment all'interno dell'universo utente e nella stessa destinazione. Regex di convalida per i nomi delle etichette: ^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$. Il valore di una singola etichetta deve essere <= 512 byte, mentre la dimensione totale di tutti i nomi e valori delle etichette deve essere <= 1024 byte.

L'etichetta denominata "language" può essere utilizzata per registrare il linguaggio di programmazione del deployment profilato. Le opzioni standard per il valore sono "java", "go", "python", "ruby", "nodejs", "php", "dotnet".

Per i deployment in esecuzione su Google Cloud Platform, deve essere presente un'etichetta "zona" o "regione" che descriva la località di deployment. Un esempio di zona è "us-central1-a", un esempio di regione è "us-central1" o "us-central".

ListProfilesRequest

ListProfilesRequest contiene i parametri di richiesta per elencare i profili per le implementazioni nei progetti che l'utente è autorizzato a visualizzare.

Campi
parent

string

Obbligatorio. Il principale proprietario di questa raccolta di profili. Formato: projects/{user_project_id}

L'autorizzazione richiede la seguente autorizzazione IAM per la risorsa specificata parent:

  • cloudprofiler.profiles.list
page_size

int32

Facoltativo. Il numero massimo di articoli da restituire. La dimensione predefinita della pagina è 1000. Il limite massimo è 1000.

page_token

string

Facoltativo. Il token per continuare l'impaginazione e ottenere i profili da una pagina specifica. Durante l'impaginazione, tutti gli altri parametri forniti a ListProfiles devono corrispondere alla chiamata che ha fornito il token della pagina.

ListProfilesResponse

ListProfileResponse contiene l'elenco dei profili raccolti per i deployment nei progetti che l'utente è autorizzato a visualizzare.

Campi
profiles[]

Profile

Elenco dei profili recuperati.

next_page_token

string

Token per ricevere la pagina dei risultati successiva. Questo campo potrebbe essere vuoto se non ci sono altri profili da recuperare.

skipped_profiles

int32

Numero di profili che sono stati ignorati nella pagina corrente perché non è stato possibile recuperarli correttamente. In genere questo valore dovrebbe essere pari a zero. Un valore diverso da zero potrebbe indicare un errore temporaneo e, in questo caso, se il numero è troppo alto per il tuo caso d'uso, è possibile riprovare la chiamata.

Profilo

Risorsa del profilo.

Campi
name

string

Solo output. ID univoco opaco, assegnato dal server, per questo profilo.

profile_type

ProfileType

Tipo di profilo. Per la modalità offline, è necessario specificare questo valore durante la creazione del profilo. Per la modalità online viene assegnata e restituita dal server.

deployment

Deployment

Deployment a cui corrisponde questo profilo.

duration

Duration

Durata della sessione di profilazione. Input (per la modalità offline) o output (per la modalità online). Il campo rappresenta la durata della profilazione richiesta. Potrebbe essere leggermente diversa dalla durata effettiva della profilazione, che viene registrata nei dati del profilo, nel caso in cui la profilazione non possa essere interrotta immediatamente (ad es. nel caso in cui l'interruzione della profilazione venga gestita in modo asincrono).

profile_bytes

bytes

Solo input. Byte del profilo, come protocollo serializzato compresso con gzip, il formato è https://github.com/google/pprof/blob/master/proto/profile.proto.

labels

map<string, string>

Solo input. Etichette associate a questo profilo specifico. Queste etichette verranno unite alle etichette di deployment per il set di dati finale. Consulta la documentazione sulle etichette di deployment per conoscere le regole e i limiti di convalida.

start_time

Timestamp

Solo output. Ora di inizio del profilo. Questo output è presente solo in risposta dal metodo ListProfiles.

ProfileType

ProfileType indica il tipo di dati di profilazione. NOTA: i nomi dei membri dell'enumerazione vengono utilizzati (in minuscolo) come identificatori univoci di stringhe dei tipi di profilo, pertanto non devono essere rinominati.

Enum
PROFILE_TYPE_UNSPECIFIED Tipo di profilo non specificato.
CPU Campionamento del tempo di CPU Thread.
WALL Campionamento tempo reale. Più costoso in quanto l'interruzione di tutti i thread.
HEAP Profilo heap in uso. Rappresenta uno snapshot delle allocazioni attive al momento della profilazione.
THREADS Raccolta a colpo singolo di tutti gli stack di thread.
CONTENTION Profilo di contesa della sincronizzazione.
PEAK_HEAP Profilo heap picco.
HEAP_ALLOC Profilo di allocazione dell'heap. Rappresenta l'aggregazione di tutte le allocazioni effettuate nell'arco della durata del profilo. Sono incluse tutte le allocazioni, incluse quelle che potrebbero essere state liberate entro la fine dell'intervallo di profilazione. Il profilo è particolarmente utile per i linguaggi di garbage collection per capire quali parti del codice creano la maggior parte della pressione della garbage collection per vedere se possono essere ottimizzate.

UpdateProfileRequest

UpdateProfileRequest contiene il profilo da aggiornare.

Campi
profile

Profile

Profilo da aggiornare.

L'autorizzazione richiede la seguente autorizzazione IAM per la risorsa specificata profile:

  • cloudprofiler.profiles.update
update_mask

FieldMask

Maschera del campo utilizzata per specificare i campi da sovrascrivere. Attualmente solo i campi profile_bytes ed labels sono supportati da UpdateProfile, quindi solo questi campi possono essere specificati nella maschera. Se non viene fornita alcuna maschera, tutti i campi vengono sovrascritti.