Package google.api

Indice

Distribuzione

Distribution contiene statistiche riepilogative per una popolazione di valori. Contiene, facoltativamente, un istogramma che rappresenta la distribuzione di questi valori in un insieme di bucket.

Le statistiche di riepilogo sono il conteggio, la media, la somma della deviazione quadratica dalla media, il minimo e il massimo dell'insieme di valori della popolazione. L'istogramma si basa su una sequenza di bucket e fornisce un conteggio dei valori che rientrano in ciascun bucket. I limiti dei bucket vengono forniti in modo esplicito o tramite formule per bucket di larghezza fissa o in aumento esponenziale.

Sebbene non sia vietato, in genere è una cattiva idea includere valori non finiti (infiniti o NaN) nella popolazione di valori, in quanto ciò renderà privi di significato i campi mean e sum_of_squared_deviation.

Campi
count

int64

Il numero di valori nella popolazione. Non deve essere un valore negativo. Questo valore deve essere uguale alla somma dei valori in bucket_counts se viene fornito un istogramma.

mean

double

La media aritmetica dei valori nella popolazione. Se count è zero, questo campo deve essere zero.

sum_of_squared_deviation

double

La somma degli scarti quadratici dalla media dei valori nella popolazione. Per i valori x_i, questo è:

Sum[i=1..n]((x_i - mean)^2)

Knuth, "The Art of Computer Programming", Vol. 2, pagina 232, terza edizione, descrive il metodo di Welford per accumulare questa somma in un'unica passata.

Se count è zero, questo campo deve essere zero.

range

Range

Se specificato, contiene l'intervallo dei valori della popolazione. Il campo non deve essere presente se count è zero.

bucket_options

BucketOptions

Definisce i limiti dei bucket dell'istogramma. Se la distribuzione non contiene un istogramma, ometti questo campo.

bucket_counts[]

int64

Il numero di valori in ogni bucket dell'istogramma, come descritto in bucket_options. Se la distribuzione non ha un istogramma, ometti questo campo. Se è presente un istogramma, la somma dei valori in bucket_counts deve essere uguale al valore nel campo count della distribuzione.

Se presente, bucket_counts deve contenere N valori, dove N è il numero di bucket specificato in bucket_options. Se fornisci meno di N valori, i valori rimanenti vengono considerati pari a 0.

L'ordine dei valori in bucket_counts segue gli schemi di numerazione dei bucket descritti per i tre tipi di bucket. Il primo valore deve essere il conteggio per il bucket di underflow (numero 0). I successivi N-2 valori sono i conteggi per i bucket finiti (da 1 a N-2). L'N-esimo valore in bucket_counts è il conteggio per il bucket di overflow (numero N-1).

exemplars[]

Exemplar

Deve essere in ordine crescente del campo value.

BucketOptions

BucketOptions descrive i limiti dei bucket utilizzati per creare un istogramma per la distribuzione. I bucket possono essere in una sequenza lineare, in una sequenza esponenziale oppure ogni bucket può essere specificato in modo esplicito. BucketOptions non include il numero di valori in ogni bucket.

Un bucket ha un limite inferiore inclusivo e un limite superiore esclusivo per i valori conteggiati per quel bucket. Il limite superiore di un bucket deve essere strettamente maggiore del limite inferiore. La sequenza di N bucket per una distribuzione è costituita da un bucket di underflow (numero 0), da zero o più bucket finiti (numeri da 1 a N - 2) e da un bucket di overflow (numero N - 1). I bucket sono contigui: il limite inferiore del bucket i (i > 0) è uguale al limite superiore del bucket i - 1. I bucket coprono l'intero intervallo di valori finiti: il limite inferiore del bucket di underflow è -infinito e il limite superiore del bucket di overflow è +infinito. I bucket finiti sono chiamati così perché entrambi i limiti sono finiti.

Campi
Campo unione options. Deve essere impostato esattamente uno di questi tre campi. options può essere solo uno dei seguenti:
linear_buckets

Linear

Il bucket lineare.

exponential_buckets

Exponential

I bucket esponenziali.

explicit_buckets

Explicit

I bucket espliciti.

Esplicita

Specifica un insieme di bucket con larghezze arbitrarie.

Ci sono size(bounds) + 1 (= N) bucket. Il bucket i ha i seguenti limiti:

Limite superiore (0 <= i < N-1): bounds[i] Limite inferiore (1 <= i < N); bounds[i - 1]

Il campo bounds deve contenere almeno un elemento. Se bounds ha un solo elemento, non sono presenti bucket finiti e l'unico elemento è il limite comune dei bucket di overflow e underflow.

Campi
bounds[]

double

I valori devono essere monotonicamente crescenti.

Esponenziale

Specifica una sequenza esponenziale di bucket con una larghezza proporzionale al valore del limite inferiore. Ogni bucket rappresenta un'incertezza relativa costante su un valore specifico nel bucket.

Ci sono num_finite_buckets + 2 (= N) bucket. Il bucket i ha i seguenti limiti:

Limite superiore (0 <= i < N-1): scale * (growth_factor ^ i).

Limite inferiore (1 <= i < N): scala * (fattore_di_crescita ^ (i - 1)).

Campi
num_finite_buckets

int32

Deve essere maggiore di 0.

growth_factor

double

Deve essere superiore a 1.

scale

double

Deve essere maggiore di 0.

Lineare

Specifica una sequenza lineare di bucket che hanno tutti la stessa larghezza (tranne overflow e underflow). Ogni bucket rappresenta un'incertezza assoluta costante sul valore specifico nel bucket.

Ci sono num_finite_buckets + 2 (= N) bucket. Il bucket i ha i seguenti limiti:

Limite superiore (0 <= i < N-1): offset + (larghezza * i).

Limite inferiore (1 <= i < N): offset + (larghezza * (i - 1)).

Campi
num_finite_buckets

int32

Deve essere maggiore di 0.

width

double

Deve essere maggiore di 0.

offset

double

Limite inferiore del primo bucket.

Esemplare

Gli esemplari sono punti di esempio che possono essere utilizzati per annotare i valori di distribuzione aggregati. Si tratta di metadati che forniscono informazioni su un determinato valore aggiunto a un bucket di distribuzione, ad esempio un ID traccia attivo quando è stato aggiunto un valore. Potrebbero contenere ulteriori informazioni, come valori ed timestamp di esempio, origine e così via.

Campi
value

double

Valore del punto esemplare. Questo valore determina a quale bucket appartiene l'esemplare.

timestamp

Timestamp

L'ora di osservazione (campionamento) del valore precedente.

attachments[]

Any

Informazioni contestuali sul valore di esempio. Alcuni esempi:

Trace: type.googleapis.com/google.monitoring.v3.SpanContext

Stringa letterale: type.googleapis.com/google.protobuf.StringValue

Etichette eliminate durante l'aggregazione: type.googleapis.com/google.monitoring.v3.DroppedLabels

In un singolo esempio può essere presente un solo allegato di un determinato tipo di messaggio e questo viene applicato dal sistema.

Intervallo

L'intervallo dei valori della popolazione.

Campi
min

double

Il valore minimo della popolazione.

max

double

Il valore massimo della popolazione.

HttpBody

Messaggio che rappresenta un corpo HTTP arbitrario. Deve essere utilizzato solo per i formati di payload che non possono essere rappresentati come JSON, ad esempio un programma binario raw o una pagina HTML.

Questo messaggio può essere utilizzato nei metodi API in streaming e non in streaming, sia nella richiesta sia nella risposta.

Può essere utilizzato come campo di richiesta di livello superiore, il che è utile se si vogliono estrarre dei parametri dall'URL o dal modello HTTP per i campi della richiesta e si vuole anche l'accesso al corpo HTTP raw.

Esempio:

message GetResourceRequest {
  // A unique request id.
  string request_id = 1;

  // The raw HTTP body is bound to this field.
  google.api.HttpBody http_body = 2;

}

service ResourceService {
  rpc GetResource(GetResourceRequest)
    returns (google.api.HttpBody);
  rpc UpdateResource(google.api.HttpBody)
    returns (google.protobuf.Empty);

}

Esempio con metodi in streaming:

service CaldavService {
  rpc GetCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);
  rpc UpdateCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);

}

L'utilizzo di questo tipo modifica solo il modo in cui vengono gestiti i corpi di richiesta e risposta; tutte le altre funzionalità continueranno a funzionare in modo invariato.

Campi
content_type

string

Il valore di intestazione del tipo di contenuto HTTP che specifica il tipo di contenuto del corpo.

data

bytes

Il corpo della richiesta/risposta HTTP come binario non elaborato.

extensions[]

Any

Metadati di risposta specifici dell'applicazione. Devono essere impostati nella prima risposta per le API in streaming.

Metrica

Una metrica specifica, identificata specificando i valori per tutte le etichette di un MetricDescriptor.

Campi
type

string

Un tipo di metrica esistente, vedi google.api.MetricDescriptor. Ad esempio, custom.googleapis.com/invoice/paid/amount.

labels

map<string, string>

L'insieme di valori delle etichette che identificano in modo univoco questa metrica. A tutte le etichette elencate in MetricDescriptor devono essere assegnati valori.

MetricDescriptor

Questo tipo non contiene campi.

Definisce un tipo di metrica e il relativo schema. Una volta creato un descrittore della metrica, l'eliminazione o la modifica interrompe la raccolta dei dati e rende inutilizzabili i dati esistenti del tipo di metrica.

MetricKind

Il tipo di misurazione. Descrive come vengono riportati i dati. Per informazioni sull'impostazione dell'ora di inizio e di fine in base a MetricKind, vedi TimeInterval.

Enum
METRIC_KIND_UNSPECIFIED Non utilizzare questo valore predefinito.
GAUGE Una misurazione istantanea di un valore.
DELTA La variazione di un valore durante un intervallo di tempo.
CUMULATIVE Un valore accumulato in un intervallo di tempo. Le misurazioni cumulative in una serie temporale devono avere la stessa ora di inizio e ore di fine crescenti, finché un evento non reimposta il valore cumulativo su zero e non imposta una nuova ora di inizio per i punti successivi.

ValueType

Il tipo di valore di una metrica.

Enum
VALUE_TYPE_UNSPECIFIED Non utilizzare questo valore predefinito.
BOOL Il valore è un valore booleano. Questo tipo di valore può essere utilizzato solo se il tipo di metrica è GAUGE.
INT64 Il valore è un numero intero a 64 bit con segno.
DOUBLE Il valore è un numero in virgola mobile a precisione doppia.
STRING Il valore è una stringa di testo. Questo tipo di valore può essere utilizzato solo se il tipo di metrica è GAUGE.
DISTRIBUTION Il valore è un Distribution.
MONEY Il valore è denaro.

MonitoredResource

Un oggetto che rappresenta una risorsa che può essere utilizzata per il monitoraggio, la registrazione, la fatturazione o altri scopi. Alcuni esempi includono istanze di macchine virtuali, database e dispositivi di archiviazione come i dischi. Il campo type identifica un oggetto MonitoredResourceDescriptor che descrive lo schema della risorsa. Le informazioni nel campo labels identificano la risorsa effettiva e i relativi attributi in base allo schema. Ad esempio, una determinata istanza VM di Compute Engine potrebbe essere rappresentata dal seguente oggetto, perché MonitoredResourceDescriptor per "gce_instance" ha le etichette "project_id", "instance_id" e "zone":

{ "type": "gce_instance",
  "labels": { "project_id": "my-project",
              "instance_id": "12345678901234",
              "zone": "us-central1-a" }}
Campi
type

string

Obbligatorio. Il tipo di risorsa monitorata. Questo campo deve corrispondere al campo type di un oggetto MonitoredResourceDescriptor. Ad esempio, il tipo di un'istanza VM di Compute Engine è gce_instance. Alcuni descrittori includono il nome del servizio nel tipo; ad esempio, il tipo di un flusso Datastream è datastream.googleapis.com/Stream.

labels

map<string, string>

Obbligatorio. Valori per tutte le etichette elencate nel descrittore della risorsa monitorata associato. Ad esempio, le istanze VM di Compute Engine utilizzano le etichette "project_id", "instance_id" e "zone".

MonitoredResourceMetadata

Metadati ausiliari per un oggetto MonitoredResource. Gli oggetti MonitoredResource contengono il set minimo di informazioni per identificare in modo univoco un'istanza di risorsa monitorata. Esistono altri metadati ausiliari utili. Monitoring e Logging utilizzano una pipeline di importazione per estrarre i metadati per le risorse cloud di tutti i tipi e archiviarli in questo messaggio.

Campi
system_labels

Struct

Solo output. Valori per le etichette dei metadati di sistema predefinite. Le etichette di sistema sono un tipo di metadati estratti da Google, tra cui "machine_image", "vpc", "subnet_id", "security_group", "name" e così via. I valori delle etichette di sistema possono essere solo stringhe, valori booleani o un elenco di stringhe. Ad esempio:

{ "name": "my-test-instance",
  "security_group": ["a", "b", "c"],
  "spot_instance": false }
user_labels

map<string, string>

Solo output. Una mappa delle etichette dei metadati definite dall'utente.