Enumerations

MetricKind

static

number

The kind of measurement. It describes how the data is reported.

Value

METRIC_KIND_UNSPECIFIED

Do not use this default value.

GAUGE

An instantaneous measurement of a value.

DELTA

The change in a value during a time interval.

CUMULATIVE

A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points.

ValueType

static

number

Value types that can be used as label values.

Value

STRING

A variable-length string. This is the default.

BOOL

Boolean; true or false.

INT64

A 64-bit signed integer.

ValueType

static

number

The value type of a metric.

Value

VALUE_TYPE_UNSPECIFIED

Do not use this default value.

BOOL

The value is a boolean. This value type can be used only if the metric kind is GAUGE.

INT64

The value is a signed 64-bit integer.

DOUBLE

The value is a double precision floating point number.

STRING

The value is a text string. This value type can be used only if the metric kind is GAUGE.

DISTRIBUTION

The value is a Distribution.

MONEY

The value is money.

Properties

MetricKind

static

number

The kind of measurement. It describes how the data is reported.

Value

METRIC_KIND_UNSPECIFIED

Do not use this default value.

GAUGE

An instantaneous measurement of a value.

DELTA

The change in a value during a time interval.

CUMULATIVE

A value accumulated over a time interval. Cumulative measurements in a time series should have the same start time and increasing end times, until an event resets the cumulative value to zero and sets a new start time for the following points.

ValueType

static

number

Value types that can be used as label values.

Value

STRING

A variable-length string. This is the default.

BOOL

Boolean; true or false.

INT64

A 64-bit signed integer.

ValueType

static

number

The value type of a metric.

Value

VALUE_TYPE_UNSPECIFIED

Do not use this default value.

BOOL

The value is a boolean. This value type can be used only if the metric kind is GAUGE.

INT64

The value is a signed 64-bit integer.

DOUBLE

The value is a double precision floating point number.

STRING

The value is a text string. This value type can be used only if the metric kind is GAUGE.

DISTRIBUTION

The value is a Distribution.

MONEY

The value is money.

Abstract types

BucketOptions

static

A Distribution may optionally contain a histogram of the values in the population. The histogram is given in bucket_counts as counts of values that fall into one of a sequence of non-overlapping buckets. The sequence of buckets is described by bucket_options.

A bucket specifies an inclusive lower bound and exclusive upper bound for the values that are counted for that bucket. The upper bound of a bucket is strictly greater than the lower bound.

The sequence of N buckets for a Distribution consists of an underflow bucket (number 0), zero or more finite buckets (number 1 through N - 2) and an overflow bucket (number N - 1). The buckets are contiguous: the lower bound of bucket i (i > 0) is the same as the upper bound of bucket i - 1. The buckets span the whole range of finite values: lower bound of the underflow bucket is -infinity and the upper bound of the overflow bucket is +infinity. The finite buckets are so-called because both bounds are finite.

BucketOptions describes bucket boundaries in one of three ways. Two describe the boundaries by giving parameters for a formula to generate boundaries and one gives the bucket boundaries explicitly.

If bucket_boundaries is not given, then no bucket_counts may be given.

Properties

Parameter

linearBuckets

Object

The linear bucket.

This object should have the same structure as Linear

exponentialBuckets

Object

The exponential buckets.

This object should have the same structure as Exponential

explicitBuckets

Object

The explicit buckets.

This object should have the same structure as Explicit

See also

google.api.Distribution.BucketOptions definition in proto format

Distribution

static

Distribution contains summary statistics for a population of values and, optionally, a histogram representing the distribution of those values across a specified set of histogram buckets.

The summary statistics are the count, mean, sum of the squared deviation from the mean, the minimum, and the maximum of the set of population of values.

The histogram is based on a sequence of buckets and gives a count of values that fall into each bucket. The boundaries of the buckets are given either explicitly or by specifying parameters for a method of computing them (buckets of fixed width or buckets of exponentially increasing width).

Although it is not forbidden, it is generally a bad idea to include non-finite values (infinities or NaNs) in the population of values, as this will render the mean and sum_of_squared_deviation fields meaningless.

Properties

Parameter

count

number

The number of values in the population. Must be non-negative.

mean

number

The arithmetic mean of the values in the population. If count is zero then this field must be zero.

sumOfSquaredDeviation

number

The sum of squared deviations from the mean of the values in the population. For values x_i this is:

  Sumi=1..n^2)

Knuth, "The Art of Computer Programming", Vol. 2, page 323, 3rd edition describes Welford's method for accumulating this sum in one pass.

If count is zero then this field must be zero.

range

Object

If specified, contains the range of the population values. The field must not be present if the count is zero.

This object should have the same structure as Range

bucketOptions

Object

Defines the histogram bucket boundaries.

This object should have the same structure as BucketOptions

bucketCounts

Array of number

If bucket_options is given, then the sum of the values in bucket_counts must equal the value in count. If bucket_options is not given, no bucket_counts fields may be given.

Bucket counts are given in order under the numbering scheme described above (the underflow bucket has number 0; the finite buckets, if any, have numbers 1 through N-2; the overflow bucket has number N-1).

The size of bucket_counts must be no greater than N as defined in bucket_options.

Any suffix of trailing zero bucket_count fields may be omitted.

See also

google.api.Distribution definition in proto format

Explicit

static

A set of buckets with arbitrary widths.

Defines size(bounds) + 1 (= N) buckets with these boundaries for bucket i:

Upper bound (0 <= i < N-1): bounds[i] Lower bound (1 <= i < N); bounds[i - 1]

There must be at least one element in bounds. If bounds has only one element, there are no finite buckets, and that single element is the common boundary of the overflow and underflow buckets.

Property

Parameter

bounds

Array of number

The values must be monotonically increasing.

See also

google.api.Distribution.BucketOptions.Explicit definition in proto format

Exponential

static

Specify a sequence of buckets that have a width that is proportional to the value of the lower bound. Each bucket represents a constant relative uncertainty on a specific value in the bucket.

Defines num_finite_buckets + 2 (= N) buckets with these boundaries for bucket i:

Upper bound (0 <= i < N-1): scale (growth_factor ^ i). Lower bound (1 <= i < N): scale (growth_factor ^ (i - 1)).

Properties

Parameter

numFiniteBuckets

number

Must be greater than 0.

growthFactor

number

Must be greater than 1.

scale

number

Must be greater than 0.

See also

google.api.Distribution.BucketOptions.Exponential definition in proto format

LabelDescriptor

static

A description of a label.

Properties

Parameter

key

string

The label key.

valueType

number

The type of data that can be assigned to the label.

The number should be among the values of ValueType

description

string

A human-readable description for the label.

See also

google.api.LabelDescriptor definition in proto format

Linear

static

Specify a sequence of buckets that all have the same width (except overflow and underflow). Each bucket represents a constant absolute uncertainty on the specific value in the bucket.

Defines num_finite_buckets + 2 (= N) buckets with these boundaries for bucket i:

Upper bound (0 <= i < N-1): offset + (width i). Lower bound (1 <= i < N): offset + (width (i - 1)).

Properties

Parameter

numFiniteBuckets

number

Must be greater than 0.

width

number

Must be greater than 0.

offset

number

Lower bound of the first bucket.

See also

google.api.Distribution.BucketOptions.Linear definition in proto format

Metric

static

A specific metric, identified by specifying values for all of the labels of a MetricDescriptor.

Properties

Parameter

type

string

An existing metric type, see google.api.MetricDescriptor. For example, custom.googleapis.com/invoice/paid/amount.

labels

Object with string properties

The set of label values that uniquely identify this metric. All labels listed in the MetricDescriptor must be assigned values.

See also

google.api.Metric definition in proto format

MetricDescriptor

static

Defines a metric type and its schema. Once a metric descriptor is created, deleting or altering it stops data collection and makes the metric type's existing data unusable.

Properties

Parameter

name

string

The resource name of the metric descriptor. Depending on the implementation, the name typically includes: (1) the parent resource name that defines the scope of the metric type or of its data; and (2) the metric's URL-encoded type, which also appears in the type field of this descriptor. For example, following is the resource name of a custom metric within the GCP project my-project-id:

  "projects/my-project-id/metricDescriptors/custom.googleapis.com%2Finvoice%2Fpaid%2Famount"

type

string

The metric type, including its DNS name prefix. The type is not URL-encoded. All user-defined custom metric types have the DNS name custom.googleapis.com. Metric types should use a natural hierarchical grouping. For example:

  "custom.googleapis.com/invoice/paid/amount"
  "appengine.googleapis.com/http/server/response_latencies"

labels

Array of Object

The set of labels that can be used to describe a specific instance of this metric type. For example, the appengine.googleapis.com/http/server/response_latencies metric type has a label for the HTTP response code, response_code, so you can look at latencies for successful responses or just for responses that failed.

This object should have the same structure as LabelDescriptor

metricKind

number

Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metric_kind and value_type might not be supported.

The number should be among the values of MetricKind

valueType

number

Whether the measurement is an integer, a floating-point number, etc. Some combinations of metric_kind and value_type might not be supported.

The number should be among the values of ValueType

unit

string

The unit in which the metric value is reported. It is only applicable if the value_type is INT64, DOUBLE, or DISTRIBUTION. The supported units are a subset of The Unified Code for Units of Measure standard:

Basic units (UNIT)

  • bit bit
  • By byte
  • s second
  • min minute
  • h hour
  • d day

    Prefixes (PREFIX)

  • k kilo (103)

  • M mega (106)
  • G giga (109)
  • T tera (1012)
  • P peta (1015)
  • E exa (1018)
  • Z zetta (1021)
  • Y yotta (1024)
  • m milli (10-3)
  • u micro (10-6)
  • n nano (10-9)
  • p pico (10-12)
  • f femto (10-15)
  • a atto (10-18)
  • z zepto (10-21)
  • y yocto (10-24)
  • Ki kibi (210)
  • Mi mebi (220)
  • Gi gibi (230)
  • Ti tebi (240)

    Grammar

    The grammar includes the dimensionless unit 1, such as 1/s.

    The grammar also includes these connectors:

  • / division (as an infix operator, e.g. 1/s).

  • . multiplication (as an infix operator, e.g. GBy.d)

    The grammar for a unit is as follows:

    Expression = Component { "." Component } { "/" Component } ;

    Component = [ PREFIX ] UNIT [ Annotation ]

            | Annotation
            | "1"
            ;

    Annotation = "{" NAME "}" ;

    Notes:

  • Annotation is just a comment if it follows a UNIT and is equivalent to 1 if it is used alone. For examples, {requests}/s == 1/s, By{transmitted}/s == By/s.

  • NAME is a sequence of non-blank printable ASCII characters not containing '{' or '}'.

description

string

A detailed description of the metric, which can be used in documentation.

displayName

string

A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count".

See also

google.api.MetricDescriptor definition in proto format

MonitoredResource

static

An object representing a resource that can be used for monitoring, logging, billing, or other purposes. Examples include virtual machine instances, databases, and storage devices such as disks. The type field identifies a MonitoredResourceDescriptor object that describes the resource's schema. Information in the labels field identifies the actual resource and its attributes according to the schema. For example, a particular Compute Engine VM instance could be represented by the following object, because the MonitoredResourceDescriptor for "gce_instance" has labels "instance_id" and "zone":

{ "type": "gce_instance",
  "labels": { "instance_id": "12345678901234",
              "zone": "us-central1-a" }}

Properties

Parameter

type

string

Required. The monitored resource type. This field must match the type field of a MonitoredResourceDescriptor object. For example, the type of a Cloud SQL database is "cloudsql_database".

labels

Object with string properties

Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Cloud SQL databases use the labels "database_id" and "zone".

See also

google.api.MonitoredResource definition in proto format

MonitoredResourceDescriptor

static

An object that describes the schema of a MonitoredResource object using a type name and a set of labels. For example, the monitored resource descriptor for Google Compute Engine VM instances has a type of "gce_instance" and specifies the use of the labels "instance_id" and "zone" to identify particular VM instances.

Different APIs can support different monitored resource types. APIs generally provide a list method that returns the monitored resource descriptors used by the API.

Properties

Parameter

name

string

Optional. The resource name of the monitored resource descriptor: "projects/{project_id}/monitoredResourceDescriptors/{type}" where {type} is the value of the type field in this object and {project_id} is a project ID that provides API-specific context for accessing the type. APIs that do not use project information can use the resource name format "monitoredResourceDescriptors/{type}".

type

string

Required. The monitored resource type. For example, the type "cloudsql_database" represents databases in Google Cloud SQL. The maximum length of this value is 256 characters.

displayName

string

Optional. A concise name for the monitored resource type that might be displayed in user interfaces. It should be a Title Cased Noun Phrase, without any article or other determiners. For example, "Google Cloud SQL Database".

description

string

Optional. A detailed description of the monitored resource type that might be used in documentation.

labels

Array of Object

Required. A set of labels used to describe instances of this monitored resource type. For example, an individual Google Cloud SQL database is identified by values for the labels "database_id" and "zone".

This object should have the same structure as LabelDescriptor

See also

google.api.MonitoredResourceDescriptor definition in proto format

Range

static

The range of the population values.

Properties

Parameter

min

number

The minimum of the population values.

max

number

The maximum of the population values.

See also

google.api.Distribution.Range definition in proto format