Class MetricDescriptor (2.32.0)

public final class MetricDescriptor extends GeneratedMessageV3 implements MetricDescriptorOrBuilder

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.

Protobuf type google.api.MetricDescriptor

Static Fields

DESCRIPTION_FIELD_NUMBER

public static final int DESCRIPTION_FIELD_NUMBER
Field Value
TypeDescription
int

DISPLAY_NAME_FIELD_NUMBER

public static final int DISPLAY_NAME_FIELD_NUMBER
Field Value
TypeDescription
int

LABELS_FIELD_NUMBER

public static final int LABELS_FIELD_NUMBER
Field Value
TypeDescription
int

LAUNCH_STAGE_FIELD_NUMBER

public static final int LAUNCH_STAGE_FIELD_NUMBER
Field Value
TypeDescription
int

METADATA_FIELD_NUMBER

public static final int METADATA_FIELD_NUMBER
Field Value
TypeDescription
int

METRIC_KIND_FIELD_NUMBER

public static final int METRIC_KIND_FIELD_NUMBER
Field Value
TypeDescription
int

MONITORED_RESOURCE_TYPES_FIELD_NUMBER

public static final int MONITORED_RESOURCE_TYPES_FIELD_NUMBER
Field Value
TypeDescription
int

NAME_FIELD_NUMBER

public static final int NAME_FIELD_NUMBER
Field Value
TypeDescription
int

TYPE_FIELD_NUMBER

public static final int TYPE_FIELD_NUMBER
Field Value
TypeDescription
int

UNIT_FIELD_NUMBER

public static final int UNIT_FIELD_NUMBER
Field Value
TypeDescription
int

VALUE_TYPE_FIELD_NUMBER

public static final int VALUE_TYPE_FIELD_NUMBER
Field Value
TypeDescription
int

Static Methods

getDefaultInstance()

public static MetricDescriptor getDefaultInstance()
Returns
TypeDescription
MetricDescriptor

getDescriptor()

public static final Descriptors.Descriptor getDescriptor()
Returns
TypeDescription
Descriptor

newBuilder()

public static MetricDescriptor.Builder newBuilder()
Returns
TypeDescription
MetricDescriptor.Builder

newBuilder(MetricDescriptor prototype)

public static MetricDescriptor.Builder newBuilder(MetricDescriptor prototype)
Parameter
NameDescription
prototypeMetricDescriptor
Returns
TypeDescription
MetricDescriptor.Builder

parseDelimitedFrom(InputStream input)

public static MetricDescriptor parseDelimitedFrom(InputStream input)
Parameter
NameDescription
inputInputStream
Returns
TypeDescription
MetricDescriptor
Exceptions
TypeDescription
IOException

parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)

public static MetricDescriptor parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
inputInputStream
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
MetricDescriptor
Exceptions
TypeDescription
IOException

parseFrom(byte[] data)

public static MetricDescriptor parseFrom(byte[] data)
Parameter
NameDescription
databyte[]
Returns
TypeDescription
MetricDescriptor
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)

public static MetricDescriptor parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
databyte[]
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
MetricDescriptor
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(ByteString data)

public static MetricDescriptor parseFrom(ByteString data)
Parameter
NameDescription
dataByteString
Returns
TypeDescription
MetricDescriptor
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)

public static MetricDescriptor parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
dataByteString
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
MetricDescriptor
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(CodedInputStream input)

public static MetricDescriptor parseFrom(CodedInputStream input)
Parameter
NameDescription
inputCodedInputStream
Returns
TypeDescription
MetricDescriptor
Exceptions
TypeDescription
IOException

parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)

public static MetricDescriptor parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
inputCodedInputStream
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
MetricDescriptor
Exceptions
TypeDescription
IOException

parseFrom(InputStream input)

public static MetricDescriptor parseFrom(InputStream input)
Parameter
NameDescription
inputInputStream
Returns
TypeDescription
MetricDescriptor
Exceptions
TypeDescription
IOException

parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)

public static MetricDescriptor parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
inputInputStream
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
MetricDescriptor
Exceptions
TypeDescription
IOException

parseFrom(ByteBuffer data)

public static MetricDescriptor parseFrom(ByteBuffer data)
Parameter
NameDescription
dataByteBuffer
Returns
TypeDescription
MetricDescriptor
Exceptions
TypeDescription
InvalidProtocolBufferException

parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)

public static MetricDescriptor parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
Parameters
NameDescription
dataByteBuffer
extensionRegistryExtensionRegistryLite
Returns
TypeDescription
MetricDescriptor
Exceptions
TypeDescription
InvalidProtocolBufferException

parser()

public static Parser<MetricDescriptor> parser()
Returns
TypeDescription
Parser<MetricDescriptor>

Methods

equals(Object obj)

public boolean equals(Object obj)
Parameter
NameDescription
objObject
Returns
TypeDescription
boolean
Overrides

getDefaultInstanceForType()

public MetricDescriptor getDefaultInstanceForType()
Returns
TypeDescription
MetricDescriptor

getDescription()

public String getDescription()

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

string description = 6;

Returns
TypeDescription
String

The description.

getDescriptionBytes()

public ByteString getDescriptionBytes()

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

string description = 6;

Returns
TypeDescription
ByteString

The bytes for description.

getDisplayName()

public String getDisplayName()

A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". This field is optional but it is recommended to be set for any metrics associated with user-visible concepts, such as Quota.

string display_name = 7;

Returns
TypeDescription
String

The displayName.

getDisplayNameBytes()

public ByteString getDisplayNameBytes()

A concise name for the metric, which can be displayed in user interfaces. Use sentence case without an ending period, for example "Request count". This field is optional but it is recommended to be set for any metrics associated with user-visible concepts, such as Quota.

string display_name = 7;

Returns
TypeDescription
ByteString

The bytes for displayName.

getLabels(int index)

public LabelDescriptor getLabels(int index)

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.

repeated .google.api.LabelDescriptor labels = 2;

Parameter
NameDescription
indexint
Returns
TypeDescription
LabelDescriptor

getLabelsCount()

public int getLabelsCount()

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.

repeated .google.api.LabelDescriptor labels = 2;

Returns
TypeDescription
int

getLabelsList()

public List<LabelDescriptor> getLabelsList()

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.

repeated .google.api.LabelDescriptor labels = 2;

Returns
TypeDescription
List<LabelDescriptor>

getLabelsOrBuilder(int index)

public LabelDescriptorOrBuilder getLabelsOrBuilder(int index)

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.

repeated .google.api.LabelDescriptor labels = 2;

Parameter
NameDescription
indexint
Returns
TypeDescription
LabelDescriptorOrBuilder

getLabelsOrBuilderList()

public List<? extends LabelDescriptorOrBuilder> getLabelsOrBuilderList()

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.

repeated .google.api.LabelDescriptor labels = 2;

Returns
TypeDescription
List<? extends com.google.api.LabelDescriptorOrBuilder>

getLaunchStage()

public LaunchStage getLaunchStage()

Optional. The launch stage of the metric definition.

.google.api.LaunchStage launch_stage = 12;

Returns
TypeDescription
LaunchStage

The launchStage.

getLaunchStageValue()

public int getLaunchStageValue()

Optional. The launch stage of the metric definition.

.google.api.LaunchStage launch_stage = 12;

Returns
TypeDescription
int

The enum numeric value on the wire for launchStage.

getMetadata()

public MetricDescriptor.MetricDescriptorMetadata getMetadata()

Optional. Metadata which can be used to guide usage of the metric.

.google.api.MetricDescriptor.MetricDescriptorMetadata metadata = 10;

Returns
TypeDescription
MetricDescriptor.MetricDescriptorMetadata

The metadata.

getMetadataOrBuilder()

public MetricDescriptor.MetricDescriptorMetadataOrBuilder getMetadataOrBuilder()

Optional. Metadata which can be used to guide usage of the metric.

.google.api.MetricDescriptor.MetricDescriptorMetadata metadata = 10;

Returns
TypeDescription
MetricDescriptor.MetricDescriptorMetadataOrBuilder

getMetricKind()

public MetricDescriptor.MetricKind getMetricKind()

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

.google.api.MetricDescriptor.MetricKind metric_kind = 3;

Returns
TypeDescription
MetricDescriptor.MetricKind

The metricKind.

getMetricKindValue()

public int getMetricKindValue()

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

.google.api.MetricDescriptor.MetricKind metric_kind = 3;

Returns
TypeDescription
int

The enum numeric value on the wire for metricKind.

getMonitoredResourceTypes(int index)

public String getMonitoredResourceTypes(int index)

Read-only. If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that is associated with this metric type can only be associated with one of the monitored resource types listed here.

repeated string monitored_resource_types = 13;

Parameter
NameDescription
indexint

The index of the element to return.

Returns
TypeDescription
String

The monitoredResourceTypes at the given index.

getMonitoredResourceTypesBytes(int index)

public ByteString getMonitoredResourceTypesBytes(int index)

Read-only. If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that is associated with this metric type can only be associated with one of the monitored resource types listed here.

repeated string monitored_resource_types = 13;

Parameter
NameDescription
indexint

The index of the value to return.

Returns
TypeDescription
ByteString

The bytes of the monitoredResourceTypes at the given index.

getMonitoredResourceTypesCount()

public int getMonitoredResourceTypesCount()

Read-only. If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that is associated with this metric type can only be associated with one of the monitored resource types listed here.

repeated string monitored_resource_types = 13;

Returns
TypeDescription
int

The count of monitoredResourceTypes.

getMonitoredResourceTypesList()

public ProtocolStringList getMonitoredResourceTypesList()

Read-only. If present, then a time series, which is identified partially by a metric type and a MonitoredResourceDescriptor, that is associated with this metric type can only be associated with one of the monitored resource types listed here.

repeated string monitored_resource_types = 13;

Returns
TypeDescription
ProtocolStringList

A list containing the monitoredResourceTypes.

getName()

public String getName()

The resource name of the metric descriptor.

string name = 1;

Returns
TypeDescription
String

The name.

getNameBytes()

public ByteString getNameBytes()

The resource name of the metric descriptor.

string name = 1;

Returns
TypeDescription
ByteString

The bytes for name.

getParserForType()

public Parser<MetricDescriptor> getParserForType()
Returns
TypeDescription
Parser<MetricDescriptor>
Overrides

getSerializedSize()

public int getSerializedSize()
Returns
TypeDescription
int
Overrides

getType()

public String getType()

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

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

string type = 8;

Returns
TypeDescription
String

The type.

getTypeBytes()

public ByteString getTypeBytes()

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

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

string type = 8;

Returns
TypeDescription
ByteString

The bytes for type.

getUnit()

public String getUnit()

The units in which the metric value is reported. It is only applicable if the value_type is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of the stored metric values.

Different systems might scale the values to be more easily displayed (so a value of 0.02kBy might be displayed as 20By, and a value of 3523kBy might be displayed as 3.5MBy). However, if the unit is kBy, then the value of the metric is always in thousands of bytes, no matter how it might be displayed.

If you want a custom metric to record the exact number of CPU-seconds used by a job, you can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently 1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as 12005.

Alternatively, if you want a custom metric to record data in a more granular way, you can create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value 12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024).

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
  • 1 dimensionless

    Prefixes (PREFIX)

  • k kilo (10^3)

  • M mega (10^6)
  • G giga (10^9)
  • T tera (10^12)
  • P peta (10^15)
  • E exa (10^18)
  • Z zetta (10^21)
  • Y yotta (10^24)

  • 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 (2^10)

  • Mi mebi (2^20)
  • Gi gibi (2^30)
  • Ti tebi (2^40)
  • Pi pebi (2^50)

    Grammar

    The grammar also includes these connectors:

  • / division or ratio (as an infix operator). For examples, kBy/{email} or MiBy/10ms (although you should almost never have /s in a metric unit; rates should always be computed at query time from the underlying cumulative or delta value).

  • . multiplication or composition (as an infix operator). For examples, GBy.d or k{watt}.h.

    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. If the annotation is used alone, then the unit is equivalent to 1. For examples, {request}/s == 1/s, By{transmitted}/s == By/s.

  • NAME is a sequence of non-blank printable ASCII characters not containing { or }.
  • 1 represents a unitary dimensionless unit of 1, such as in 1/s. It is typically used when none of the basic units are appropriate. For example, "new users per day" can be represented as 1/d or {new-users}/d (and a metric value 5 would mean "5 new users). Alternatively, "thousands of page views per day" would be represented as 1000/d or k1/d or k{page_views}/d (and a metric value of 5.3 would mean "5300 page views per day").
  • % represents dimensionless value of 1/100, and annotates values giving a percentage (so the metric values are typically in the range of 0..100, and a metric value 3 means "3 percent").
  • 10^2.% indicates a metric contains a ratio, typically in the range 0..1, that will be multiplied by 100 and displayed as a percentage (so a metric value 0.03 means "3 percent").

string unit = 5;

Returns
TypeDescription
String

The unit.

getUnitBytes()

public ByteString getUnitBytes()

The units in which the metric value is reported. It is only applicable if the value_type is INT64, DOUBLE, or DISTRIBUTION. The unit defines the representation of the stored metric values.

Different systems might scale the values to be more easily displayed (so a value of 0.02kBy might be displayed as 20By, and a value of 3523kBy might be displayed as 3.5MBy). However, if the unit is kBy, then the value of the metric is always in thousands of bytes, no matter how it might be displayed.

If you want a custom metric to record the exact number of CPU-seconds used by a job, you can create an INT64 CUMULATIVE metric whose unit is s{CPU} (or equivalently 1s{CPU} or just s). If the job uses 12,005 CPU-seconds, then the value is written as 12005.

Alternatively, if you want a custom metric to record data in a more granular way, you can create a DOUBLE CUMULATIVE metric whose unit is ks{CPU}, and then write the value 12.005 (which is 12005/1000), or use Kis{CPU} and write 11.723 (which is 12005/1024).

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
  • 1 dimensionless

    Prefixes (PREFIX)

  • k kilo (10^3)

  • M mega (10^6)
  • G giga (10^9)
  • T tera (10^12)
  • P peta (10^15)
  • E exa (10^18)
  • Z zetta (10^21)
  • Y yotta (10^24)

  • 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 (2^10)

  • Mi mebi (2^20)
  • Gi gibi (2^30)
  • Ti tebi (2^40)
  • Pi pebi (2^50)

    Grammar

    The grammar also includes these connectors:

  • / division or ratio (as an infix operator). For examples, kBy/{email} or MiBy/10ms (although you should almost never have /s in a metric unit; rates should always be computed at query time from the underlying cumulative or delta value).

  • . multiplication or composition (as an infix operator). For examples, GBy.d or k{watt}.h.

    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. If the annotation is used alone, then the unit is equivalent to 1. For examples, {request}/s == 1/s, By{transmitted}/s == By/s.

  • NAME is a sequence of non-blank printable ASCII characters not containing { or }.
  • 1 represents a unitary dimensionless unit of 1, such as in 1/s. It is typically used when none of the basic units are appropriate. For example, "new users per day" can be represented as 1/d or {new-users}/d (and a metric value 5 would mean "5 new users). Alternatively, "thousands of page views per day" would be represented as 1000/d or k1/d or k{page_views}/d (and a metric value of 5.3 would mean "5300 page views per day").
  • % represents dimensionless value of 1/100, and annotates values giving a percentage (so the metric values are typically in the range of 0..100, and a metric value 3 means "3 percent").
  • 10^2.% indicates a metric contains a ratio, typically in the range 0..1, that will be multiplied by 100 and displayed as a percentage (so a metric value 0.03 means "3 percent").

string unit = 5;

Returns
TypeDescription
ByteString

The bytes for unit.

getValueType()

public MetricDescriptor.ValueType getValueType()

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

.google.api.MetricDescriptor.ValueType value_type = 4;

Returns
TypeDescription
MetricDescriptor.ValueType

The valueType.

getValueTypeValue()

public int getValueTypeValue()

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

.google.api.MetricDescriptor.ValueType value_type = 4;

Returns
TypeDescription
int

The enum numeric value on the wire for valueType.

hasMetadata()

public boolean hasMetadata()

Optional. Metadata which can be used to guide usage of the metric.

.google.api.MetricDescriptor.MetricDescriptorMetadata metadata = 10;

Returns
TypeDescription
boolean

Whether the metadata field is set.

hashCode()

public int hashCode()
Returns
TypeDescription
int
Overrides

internalGetFieldAccessorTable()

protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Returns
TypeDescription
FieldAccessorTable
Overrides

isInitialized()

public final boolean isInitialized()
Returns
TypeDescription
boolean
Overrides

newBuilderForType()

public MetricDescriptor.Builder newBuilderForType()
Returns
TypeDescription
MetricDescriptor.Builder

newBuilderForType(GeneratedMessageV3.BuilderParent parent)

protected MetricDescriptor.Builder newBuilderForType(GeneratedMessageV3.BuilderParent parent)
Parameter
NameDescription
parentBuilderParent
Returns
TypeDescription
MetricDescriptor.Builder
Overrides

newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)

protected Object newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
Parameter
NameDescription
unusedUnusedPrivateParameter
Returns
TypeDescription
Object
Overrides

toBuilder()

public MetricDescriptor.Builder toBuilder()
Returns
TypeDescription
MetricDescriptor.Builder

writeTo(CodedOutputStream output)

public void writeTo(CodedOutputStream output)
Parameter
NameDescription
outputCodedOutputStream
Overrides
Exceptions
TypeDescription
IOException