Package google.api

Índice

Distribuição

Distribution contém estatísticas resumidas de uma população de valores. Ele pode conter um histograma que representa a distribuição desses valores em um conjunto de buckets.

As estatísticas resumidas são a contagem, média, soma do desvio quadrático da média, o mínimo e o máximo do conjunto de população de valores. O histograma se baseia em uma sequência de buckets e fornece uma contagem dos valores que se enquadram em cada bucket. Os limites dos buckets são fornecidos explicitamente ou por fórmulas para buckets de larguras fixas ou exponencialmente crescentes.

Embora não seja proibido, geralmente é uma má ideia incluir valores não finitos (infinidades ou NaNs) na população de valores, já que isso vai tornar os campos mean e sum_of_squared_deviation sem significado.

Campos
count

int64

O número de valores na população. Não podem ser negativas. Esse valor precisará ser igual à soma dos valores em bucket_counts se um histograma for fornecido.

mean

double

A média aritmética dos valores na população. Se count for zero, esse campo precisará ser zero.

sum_of_squared_deviation

double

A soma dos desvios ao quadrado da média dos valores na população. Para os valores x_i, é:

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

Knuth, "The Art of Computer Programming", vol. 2, página 232, 3a edição descreve o método de Welford para acumular essa soma em uma passagem.

Se count for zero, esse campo precisará ser zero.

range

Range

Se especificado, contém o intervalo dos valores de população. O campo não poderá estar presente se count for zero.

bucket_options

BucketOptions

Define os limites do bucket do histograma. Se a distribuição não tiver um histograma, omita esse campo.

bucket_counts[]

int64

O número de valores em cada bucket do histograma, conforme descrito em bucket_options. Se a distribuição não tiver um histograma, omita esse campo. Se houver um histograma, a soma dos valores em bucket_counts precisará ser igual ao valor no campo count da distribuição.

Se presente, bucket_counts precisa conter N valores, em que N é o número de buckets especificados em bucket_options. Se você fornecer menos de N valores, os valores restantes serão presumidos como 0.

A ordem dos valores em bucket_counts segue os esquemas de numeração de bucket descritos para os três tipos de bucket. O primeiro valor precisa ser a contagem do bucket de subfluxo (número 0). Os próximos valores N-2 são as contagens para buckets finitos (de 1 a N-2). O valor N em bucket_counts é a contagem do bucket flutuante (número N-1).

exemplars[]

Exemplar

Precisa estar em ordem crescente do campo value.

BucketOptions

BucketOptions descreve os limites do bucket usados para criar um histograma para a distribuição. Os buckets podem estar em uma sequência linear, exponencial ou cada bucket pode ser especificado explicitamente. BucketOptions não inclui o número de valores em cada bucket.

Um bucket tem um limite inferior inclusivo e um limite superior exclusivo para os valores que são contados para aquele bucket. O limite superior de um bucket precisa ser estritamente maior que o limite inferior. A sequência de N buckets para uma distribuição consiste em um bucket de subfluxo (número 0), zero ou mais buckets finitos (de 1 a N - 2) e um bucket de sobrefluxo (número N - 1). Os buckets são contíguos: o limite inferior do bucket i (i > 0) é o mesmo que o limite superior do bucket i - 1. Os buckets abrangem toda a faixa de valores finitos: o limite inferior do bucket de subfluxo é -infinito e o limite superior do bucket de sobrefluxo é +infinito. Os buckets finitos são assim chamados porque ambos os limites são finitos.

Campos
Campo de união options. Exatamente um desses três campos deve ser definido. options pode ser apenas de um dos tipos a seguir:
linear_buckets

Linear

O bucket linear.

exponential_buckets

Exponential

Os buckets exponenciais.

explicit_buckets

Explicit

Os buckets explícitos.

Explícito

Especifica um conjunto de buckets com larguras arbitrárias.

size(bounds) + 1 (= N) buckets. O bucket i tem os seguintes limites:

Limite superior (0 <= i < N-1): limites[i] Limite inferior (1 <= i < N); limites[i - 1]

O campo bounds precisa conter pelo menos um elemento. Se bounds tiver apenas um elemento, não haverá buckets finitos, e esse único elemento será o limite comum dos buckets de sobrefluxo e subfluxo.

Campos
bounds[]

double

Os valores precisam aumentar monotonicamente.

Exponencial

Especifica uma sequência exponencial de buckets com largura proporcional ao valor do limite inferior. Cada bucket representa uma incerteza relativa constante sobre um valor específico no bucket.

num_finite_buckets + 2 (= N) buckets. O bucket i tem os seguintes limites:

Limite superior (0 <= i < N-1): escala * (fator_de_crescimento ^ i).

Limite inferior (1 <= i < N): escala * (fator_de_crescimento ^ (i - 1)).

Campos
num_finite_buckets

int32

Precisa ser maior que 0.

growth_factor

double

Precisa ser maior que 1.

scale

double

Precisa ser maior que 0.

Linear

Especifica uma sequência linear de buckets com a mesma largura (exceto transbordamento e subfluxo). Cada bucket representa uma incerteza absoluta e constante sobre o valor específico dele.

num_finite_buckets + 2 (= N) buckets. O bucket i tem os seguintes limites:

Limite superior (0 <= i < N-1): deslocamento + (largura * i).

Limite inferior (1 <= i < N): deslocamento + (largura * (i - 1)).

Campos
num_finite_buckets

int32

Precisa ser maior que 0.

width

double

Precisa ser maior que 0.

offset

double

Limite inferior do primeiro bucket.

Exemplar

Exemplos são pontos de exemplo que podem ser usados para anotar valores de distribuição agregados. Eles são metadados que fornecem informações sobre um valor específico adicionado a um bucket de distribuição, como um ID de trace ativo quando um valor foi adicionado. Eles podem conter mais informações, como valores de exemplo, carimbos de data/hora, origem etc.

Campos
value

double

Valor do ponto do exemplo. Esse valor determina a qual bucket o exemplo pertence.

timestamp

Timestamp

O horário de observação (amostragem) do valor acima.

attachments[]

Any

Informações contextuais sobre o valor de exemplo. Os exemplos são:

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

String literal: type.googleapis.com/google.protobuf.StringValue

Rótulos descartados durante a agregação: type.googleapis.com/google.monitoring.v3.DroppedLabels

Pode haver apenas um anexo de qualquer tipo de mensagem em um único exemplo, e isso é aplicado pelo sistema.

Intervalo

O intervalo dos valores da população.

Campos
min

double

O mínimo dos valores da população.

max

double

O máximo dos valores de população.

HttpBody

É a mensagem que representa um corpo HTTP arbitrário. Use-a somente para formatos de payload que não podem ser representados como JSON, por exemplo, binário bruto ou uma página HTML.

É possível usar essa mensagem em métodos de API de streaming e não streaming na solicitação e na resposta.

É possível usá-la como um campo de solicitação de nível superior, o que será conveniente se você quiser extrair parâmetros do modelo de URL ou HTTP para os campos da solicitação e também quiser acessar o corpo HTTP bruto.

Exemplo:

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);

}

Exemplo com métodos de 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);

}

O uso desse tipo altera somente o modo como os corpos de solicitação e resposta são tratados. Todos os outros recursos continuarão a funcionar sem alteração.

Campos
content_type

string

O valor do cabeçalho HTTP Content-Type que especifica o tipo de conteúdo do corpo.

data

bytes

O corpo da solicitação/resposta HTTP como binário bruto.

extensions[]

Any

Metadados de resposta específicos do aplicativo. Precisam ser definidos na primeira resposta para APIs de streaming.

Métrica

Uma métrica específica, identificada pela especificação de valores para todos os rótulos de um MetricDescriptor.

Campos
type

string

Um tipo de métrica existente. Consulte google.api.MetricDescriptor. Por exemplo, custom.googleapis.com/invoice/paid/amount.

labels

map<string, string>

O conjunto de valores de rótulo que identificam exclusivamente essa métrica. Todos os rótulos listados em MetricDescriptor precisam receber valores.

MetricDescriptor

Esse tipo não tem campos.

Define um tipo de métrica e seu esquema. Depois que um descritor de métrica é criado, sua exclusão ou alteração interrompe a coleta de dados e torna os dados existentes do tipo de métrica inutilizáveis.

MetricKind

Um tipo de medida. Descreve como os dados são reportados. Para informações sobre como definir o horário de início e de término com base no MetricKind, consulte TimeInterval.

Tipos enumerados
METRIC_KIND_UNSPECIFIED Não use este valor padrão.
GAUGE Uma medida instantânea de um valor.
DELTA A alteração em um valor durante um intervalo de tempo.
CUMULATIVE Um valor acumulado ao longo de um intervalo de tempo. As medidas cumulativas em uma sequência temporal devem ter o mesmo horário de início e horários de término crescentes até que um evento redefina o valor cumulativo para zero e defina um novo horário de início para os pontos posteriores.

ValueType

O tipo de valor de uma métrica.

Enums
VALUE_TYPE_UNSPECIFIED Não use este valor padrão.
BOOL O valor é um booleano. Esse tipo de valor pode ser usado apenas se o tipo de métrica for GAUGE.
INT64 O valor é um número inteiro assinado de 64 bits.
DOUBLE O valor é um número de ponto flutuante de precisão dupla.
STRING O valor é uma string de texto. Esse tipo de valor pode ser usado apenas se o tipo de métrica for GAUGE.
DISTRIBUTION O valor é um Distribution.
MONEY O valor é em dinheiro.

MonitoredResource

Um objeto que representa um recurso que pode ser usado para monitoramento, registro, faturamento ou outros fins. Os exemplos incluem instâncias de máquinas virtuais, bancos de dados e dispositivos de armazenamento, como discos. O campo type identifica um objeto MonitoredResourceDescriptor que descreve o esquema do recurso. As informações no campo labels identificam o recurso real e os respectivos atributos de acordo com o esquema. Por exemplo, uma instância de VM específica do Compute Engine pode ser representada pelo objeto a seguir, porque MonitoredResourceDescriptor para "gce_instance" tem os rótulos "project_id", "instance_id" e "zone":

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

string

Obrigatório. O tipo de recurso monitorado. Este campo precisa corresponder ao campo type de um objeto MonitoredResourceDescriptor. Por exemplo, o tipo de uma instância de VM do Compute Engine é gce_instance. Alguns descritores incluem o nome do serviço no tipo; Por exemplo, o tipo de um fluxo do Datastream é datastream.googleapis.com/Stream.

labels

map<string, string>

Obrigatório. Valores para todos os rótulos listados no descritor de recurso monitorado associado. Por exemplo, as instâncias de VM do Compute Engine usam os rótulos "project_id", "instance_id" e "zone".

MonitoredResourceMetadata

Metadados auxiliares para um objeto MonitoredResource. Os objetos MonitoredResource contêm o conjunto mínimo de informações para identificar exclusivamente uma instância de recurso monitorado. Há alguns outros metadados auxiliares úteis. O Monitoring e o Logging usam um pipeline de processamento a fim de extrair metadados para recursos de nuvem de todos os tipos e armazenar os metadados nessa mensagem.

Campos
system_labels

Struct

Somente saída. Valores para rótulos predefinidos de metadados do sistema. Os rótulos do sistema são um tipo de metadados extraídos pelo Google, incluindo "machine_image", "vpc", "subnet_id", "security_group", "name" etc. Os valores de rótulos do sistema podem ser apenas strings, valores booleanos ou uma lista de strings. Exemplo:

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

map<string, string>

Somente saída. Um mapa de rótulos de metadados definidos pelo usuário.