Package google.api

Índice

Distribución

Distribution contiene estadísticas de resumen de una población de valores. Opcionalmente, contiene un histograma que representa la distribución de esos valores en un conjunto de segmentos.

Las estadísticas de resumen son el recuento, la media, la suma de la desviación cuadrática de la media, el mínimo y el máximo del conjunto de valores de la población. El histograma se basa en una secuencia de contenedores y ofrece un recuento de los valores que corresponden a cada contenedor. Los límites de los segmentos se indican de forma explícita o mediante fórmulas para segmentos de anchura fija o exponencialmente creciente.

Aunque no está prohibido, por lo general no es recomendable incluir valores no finitos (infinitos o NaN) en la población de valores, ya que esto hará que los campos mean y sum_of_squared_deviation no tengan sentido.

Campos
count

int64

Número de valores de la población. No debe ser negativo. Este valor debe ser igual a la suma de los valores de bucket_counts si se proporciona un histograma.

mean

double

La media aritmética de los valores de la población. Si count es cero, este campo también debe ser cero.

sum_of_squared_deviation

double

Suma de las desviaciones cuadráticas de la media de los valores de la población. En el caso de los valores x_i, se calcula de la siguiente manera:

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

Knuth, "The Art of Computer Programming", vol. 2, página 232, 3.ª edición, describe el método de Welford para acumular esta suma en una sola pasada.

Si count es cero, este campo también debe ser cero.

range

Range

Si se especifica, contiene el intervalo de los valores de la población. El campo no debe estar presente si count es cero.

bucket_options

BucketOptions

Define los límites de los contenedores del histograma. Si la distribución no contiene un histograma, omite este campo.

bucket_counts[]

int64

Número de valores de cada segmento del histograma, tal como se describe en bucket_options. Si la distribución no tiene un histograma, omite este campo. Si hay un histograma, la suma de los valores de bucket_counts debe ser igual al valor del campo count de la distribución.

Si está presente, bucket_counts debe contener N valores, donde N es el número de segmentos especificados en bucket_options. Si proporciona menos de N valores, se supone que los valores restantes son 0.

El orden de los valores de bucket_counts sigue los esquemas de numeración de los tres tipos de segmentos. El primer valor debe ser el recuento del segmento de subdesbordamiento (número 0). Los siguientes N-2 valores son los recuentos de los segmentos finitos (del 1 al N-2). El valor N de bucket_counts es el recuento del segmento de desbordamiento (número N-1).

exemplars[]

Exemplar

Debe estar en orden ascendente del campo value.

BucketOptions

BucketOptions describe los límites de los segmentos que se usan para crear un histograma de la distribución. Los segmentos pueden estar en una secuencia lineal o exponencial, o bien se pueden especificar explícitamente. BucketOptions no incluye el número de valores de cada contenedor.

Un segmento tiene un límite inferior inclusivo y un límite superior exclusivo para los valores que se contabilizan en ese segmento. El límite superior de un segmento debe ser estrictamente mayor que el límite inferior. La secuencia de N segmentos de una distribución consta de un segmento de subdesbordamiento (número 0), cero o más segmentos finitos (números del 1 al N-2) y un segmento de desbordamiento (número N-1). Los segmentos son contiguos: el límite inferior del segmento i (i > 0) es el mismo que el límite superior del segmento i - 1. Los segmentos abarcan todo el intervalo de valores finitos: el límite inferior del segmento de subdesbordamiento es -infinito y el límite superior del segmento de desbordamiento es +infinito. Los contenedores finitos se denominan así porque ambos límites son finitos.

Campos
Campo de unión options. Se debe definir exactamente uno de estos tres campos. options solo puede ser una de estas dos opciones:
linear_buckets

Linear

El segmento lineal.

exponential_buckets

Exponential

Los segmentos exponenciales.

explicit_buckets

Explicit

Los segmentos explícitos.

Explícito

Especifica un conjunto de contenedores con anchuras arbitrarias.

Hay size(bounds) + 1 (= N) segmentos. El segmento i tiene los siguientes límites:

Límite superior (0 <= i < N-1): bounds[i] Límite inferior (1 <= i < N): bounds[i - 1]

El campo bounds debe contener al menos un elemento. Si bounds solo tiene un elemento, no hay contenedores finitos y ese elemento es el límite común de los contenedores de desbordamiento y de subdesbordamiento.

Campos
bounds[]

double

Los valores deben aumentar de forma monótona.

Exponencial

Especifica una secuencia exponencial de contenedores que tienen una anchura proporcional al valor del límite inferior. Cada contenedor representa una incertidumbre relativa constante sobre un valor específico del contenedor.

Hay num_finite_buckets + 2 (= N) segmentos. El segmento i tiene los siguientes límites:

Límite superior (0 <= i < N-1): scale * (growth_factor ^ i).

Límite inferior (1 <= i < N): scale * (growth_factor ^ (i - 1)).

Campos
num_finite_buckets

int32

Debe ser superior a 0.

growth_factor

double

Debe ser superior a 1.

scale

double

Debe ser superior a 0.

Lineal

Especifica una secuencia lineal de segmentos que tienen la misma anchura (excepto los segmentos de desbordamiento y de falta de flujo). Cada contenedor representa una incertidumbre absoluta constante sobre el valor específico del contenedor.

Hay num_finite_buckets + 2 (= N) segmentos. El segmento i tiene los siguientes límites:

Límite superior (0 <= i < N-1): offset + (width * i).

Límite inferior (1 <= i < N): offset + (width * (i - 1)).

Campos
num_finite_buckets

int32

Debe ser superior a 0.

width

double

Debe ser superior a 0.

offset

double

Límite inferior del primer segmento.

Exemplar

Los ejemplares son puntos de ejemplo que se pueden usar para anotar valores de distribución agregados. Son metadatos que proporcionan información sobre un valor concreto añadido a un segmento de distribución, como un ID de seguimiento que estaba activo cuando se añadió un valor. Pueden contener más información, como valores de ejemplo, marcas de tiempo, origen, etc.

Campos
value

double

Valor del punto ejemplar. Este valor determina a qué contenedor pertenece el ejemplar.

timestamp

Timestamp

Hora de observación (muestreo) del valor anterior.

attachments[]

Any

Información contextual sobre el valor de ejemplo. Por ejemplo:

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

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

Etiquetas descartadas durante la agregación: type.googleapis.com/google.monitoring.v3.DroppedLabels

Solo puede haber un archivo adjunto de un tipo de mensaje determinado en un solo ejemplar, y el sistema lo aplica.

Intervalo

Intervalo de los valores de la población.

Campos
min

double

El mínimo de los valores de la población.

max

double

El máximo de los valores de la población.

HttpBody

Se trata de un mensaje que representa un cuerpo HTTP arbitrario. Solo debe usarse en formatos de carga útil que no se pueden representar como JSON; por ejemplo, archivos binarios sin procesar o páginas HTML.

Este mensaje se puede usar tanto en los métodos de la API en streaming como en los que no lo son, y se puede incluir en la solicitud y en la respuesta.

También puede incluirse en las solicitudes como campo de nivel superior, lo que puede resultar útil si se quieren extraer parámetros de la URL o la plantilla HTTP para rellenar campos de la solicitud y, además, se quiere acceder al cuerpo HTTP sin procesar.

Ejemplo:

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

}

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

}

Al utilizar este tipo, solo cambia la forma en la que se gestionan los cuerpos de las solicitudes y las respuestas; no hay cambios en las demás funciones.

Campos
content_type

string

El valor del encabezado HTTP Content-Type que especifica el tipo de contenido del cuerpo.

data

bytes

Cuerpo de la solicitud o respuesta HTTP como datos binarios sin formato.

extensions[]

Any

Metadatos de respuestas específicos de la aplicación. Debe definirse en la primera respuesta de las APIs de streaming.

Métrica

Una métrica específica, identificada mediante la especificación de valores para todas las etiquetas de un MetricDescriptor.

Campos
type

string

Un tipo de métrica que ya exista. Consulta google.api.MetricDescriptor. Por ejemplo, custom.googleapis.com/invoice/paid/amount.

labels

map<string, string>

Conjunto de valores de etiqueta que identifican de forma única esta métrica. Se deben asignar valores a todas las etiquetas que aparecen en MetricDescriptor.

MetricDescriptor

Este tipo no tiene campos.

Define un tipo de métrica y su esquema. Una vez que se crea un descriptor de métrica, si se elimina o se modifica, se detiene la recogida de datos y los datos de métrica del tipo dejan de ser utilizables.

MetricKind

El tipo de medición. Describe cómo se registran los datos. Para obtener información sobre cómo definir la hora de inicio y la hora de finalización en función de MetricKind, consulta TimeInterval.

Enumeraciones
METRIC_KIND_UNSPECIFIED No uses este valor predeterminado.
GAUGE Medición instantánea de un valor.
DELTA El cambio de un valor durante un intervalo de tiempo.
CUMULATIVE Valor acumulado durante un intervalo de tiempo. Las mediciones acumulativas de una serie temporal deben tener la misma hora de inicio y horas de finalización cada vez mayores, hasta que un evento restablezca el valor acumulativo a cero y defina una nueva hora de inicio para los puntos siguientes.

ValueType

Tipo de valor de una métrica.

Enumeraciones
VALUE_TYPE_UNSPECIFIED No uses este valor predeterminado.
BOOL El valor es un booleano. Este tipo de valor solo se puede usar si el tipo de métrica es GAUGE.
INT64 El valor es un número entero con signo de 64 bits.
DOUBLE El valor es un número de punto flotante de doble precisión.
STRING El valor es una cadena de texto. Este tipo de valor solo se puede usar si el tipo de métrica es GAUGE.
DISTRIBUTION El valor es un Distribution.
MONEY El valor es dinero.

MonitoredResource

Objeto que representa un recurso que se puede usar para monitorización, registro, facturación u otros fines. Por ejemplo, las instancias de máquinas virtuales, las bases de datos y los dispositivos de almacenamiento, como los discos. El campo type identifica un objeto MonitoredResourceDescriptor que describe el esquema del recurso. La información del campo labels identifica el recurso real y sus atributos según el esquema. Por ejemplo, una instancia de VM de Compute Engine concreta podría representarse con el siguiente objeto, ya que el MonitoredResourceDescriptor de "gce_instance" tiene las etiquetas "project_id", "instance_id" y "zone":

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

string

Obligatorio. El tipo de recurso monitorizado. Este campo debe coincidir con el campo type de un objeto MonitoredResourceDescriptor. Por ejemplo, el tipo de una instancia de VM de Compute Engine es gce_instance. Algunos descriptores incluyen el nombre del servicio en el tipo. Por ejemplo, el tipo de un flujo de datos de Datastream es datastream.googleapis.com/Stream.

labels

map<string, string>

Obligatorio. Valores de todas las etiquetas que se indican en el descriptor de recursos monitorizados asociado. Por ejemplo, las instancias de VM de Compute Engine usan las etiquetas "project_id", "instance_id" y "zone".

MonitoredResourceMetadata

Metadatos auxiliares de un objeto MonitoredResource. Los objetos MonitoredResource contienen el conjunto mínimo de información para identificar de forma única una instancia de recurso monitorizada. Hay otros metadatos auxiliares útiles. Monitoring y Logging usan una canalización de ingestión para extraer metadatos de recursos de nube de todo tipo y almacenarlos en este mensaje.

Campos
system_labels

Struct

Solo de salida. Valores de las etiquetas de metadatos del sistema predefinidas. Las etiquetas de sistema son un tipo de metadatos extraídos por Google, como "machine_image", "vpc", "subnet_id", "security_group" y "name". Los valores de las etiquetas de sistema solo pueden ser cadenas, valores booleanos o una lista de cadenas. Por ejemplo:

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

map<string, string>

Solo de salida. Un mapa de etiquetas de metadatos definidas por el usuario.