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 |
---|
Type | Description |
int | |
DISPLAY_NAME_FIELD_NUMBER
public static final int DISPLAY_NAME_FIELD_NUMBER
Field Value |
---|
Type | Description |
int | |
LABELS_FIELD_NUMBER
public static final int LABELS_FIELD_NUMBER
Field Value |
---|
Type | Description |
int | |
LAUNCH_STAGE_FIELD_NUMBER
public static final int LAUNCH_STAGE_FIELD_NUMBER
Field Value |
---|
Type | Description |
int | |
public static final int METADATA_FIELD_NUMBER
Field Value |
---|
Type | Description |
int | |
METRIC_KIND_FIELD_NUMBER
public static final int METRIC_KIND_FIELD_NUMBER
Field Value |
---|
Type | Description |
int | |
MONITORED_RESOURCE_TYPES_FIELD_NUMBER
public static final int MONITORED_RESOURCE_TYPES_FIELD_NUMBER
Field Value |
---|
Type | Description |
int | |
NAME_FIELD_NUMBER
public static final int NAME_FIELD_NUMBER
Field Value |
---|
Type | Description |
int | |
TYPE_FIELD_NUMBER
public static final int TYPE_FIELD_NUMBER
Field Value |
---|
Type | Description |
int | |
UNIT_FIELD_NUMBER
public static final int UNIT_FIELD_NUMBER
Field Value |
---|
Type | Description |
int | |
VALUE_TYPE_FIELD_NUMBER
public static final int VALUE_TYPE_FIELD_NUMBER
Field Value |
---|
Type | Description |
int | |
Static Methods
getDefaultInstance()
public static MetricDescriptor getDefaultInstance()
getDescriptor()
public static final Descriptors.Descriptor getDescriptor()
newBuilder()
public static MetricDescriptor.Builder newBuilder()
newBuilder(MetricDescriptor prototype)
public static MetricDescriptor.Builder newBuilder(MetricDescriptor prototype)
public static MetricDescriptor parseDelimitedFrom(InputStream input)
public static MetricDescriptor parseDelimitedFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
parseFrom(byte[] data)
public static MetricDescriptor parseFrom(byte[] data)
Parameter |
---|
Name | Description |
data | byte[]
|
parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
public static MetricDescriptor parseFrom(byte[] data, ExtensionRegistryLite extensionRegistry)
parseFrom(ByteString data)
public static MetricDescriptor parseFrom(ByteString data)
parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
public static MetricDescriptor parseFrom(ByteString data, ExtensionRegistryLite extensionRegistry)
public static MetricDescriptor parseFrom(CodedInputStream input)
public static MetricDescriptor parseFrom(CodedInputStream input, ExtensionRegistryLite extensionRegistry)
public static MetricDescriptor parseFrom(InputStream input)
public static MetricDescriptor parseFrom(InputStream input, ExtensionRegistryLite extensionRegistry)
parseFrom(ByteBuffer data)
public static MetricDescriptor parseFrom(ByteBuffer data)
parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
public static MetricDescriptor parseFrom(ByteBuffer data, ExtensionRegistryLite extensionRegistry)
parser()
public static Parser<MetricDescriptor> parser()
Methods
equals(Object obj)
public boolean equals(Object obj)
Parameter |
---|
Name | Description |
obj | Object
|
Overrides
getDefaultInstanceForType()
public MetricDescriptor getDefaultInstanceForType()
getDescription()
public String getDescription()
A detailed description of the metric, which can be used in documentation.
string description = 6;
Returns |
---|
Type | Description |
String | The description.
|
getDescriptionBytes()
public ByteString getDescriptionBytes()
A detailed description of the metric, which can be used in documentation.
string description = 6;
Returns |
---|
Type | Description |
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 |
---|
Type | Description |
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 |
---|
Type | Description |
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 |
---|
Name | Description |
index | int
|
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 |
---|
Type | Description |
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;
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 |
---|
Name | Description |
index | int
|
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 |
---|
Type | Description |
List<? extends com.google.api.LabelDescriptorOrBuilder> | |
getLaunchStage()
public LaunchStage getLaunchStage()
Optional. The launch stage of the metric definition.
.google.api.LaunchStage launch_stage = 12;
getLaunchStageValue()
public int getLaunchStageValue()
Optional. The launch stage of the metric definition.
.google.api.LaunchStage launch_stage = 12;
Returns |
---|
Type | Description |
int | The enum numeric value on the wire for launchStage.
|
public MetricDescriptor.MetricDescriptorMetadata getMetadata()
Optional. Metadata which can be used to guide usage of the metric.
.google.api.MetricDescriptor.MetricDescriptorMetadata metadata = 10;
public MetricDescriptor.MetricDescriptorMetadataOrBuilder getMetadataOrBuilder()
Optional. Metadata which can be used to guide usage of the metric.
.google.api.MetricDescriptor.MetricDescriptorMetadata metadata = 10;
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;
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 |
---|
Type | Description |
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 |
---|
Name | Description |
index | int
The index of the element to return.
|
Returns |
---|
Type | Description |
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 |
---|
Name | Description |
index | int
The index of the value to return.
|
Returns |
---|
Type | Description |
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 |
---|
Type | Description |
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;
getName()
The resource name of the metric descriptor.
string name = 1;
Returns |
---|
Type | Description |
String | The name.
|
getNameBytes()
public ByteString getNameBytes()
The resource name of the metric descriptor.
string name = 1;
Returns |
---|
Type | Description |
ByteString | The bytes for name.
|
getParserForType()
public Parser<MetricDescriptor> getParserForType()
Overrides
getSerializedSize()
public int getSerializedSize()
Returns |
---|
Type | Description |
int | |
Overrides
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 |
---|
Type | Description |
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 |
---|
Type | Description |
ByteString | The bytes for type.
|
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 |
---|
Type | Description |
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 |
---|
Type | Description |
ByteString | The bytes for unit.
|
getUnknownFields()
public final UnknownFieldSet getUnknownFields()
Overrides
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;
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 |
---|
Type | Description |
int | The enum numeric value on the wire for valueType.
|
public boolean hasMetadata()
Optional. Metadata which can be used to guide usage of the metric.
.google.api.MetricDescriptor.MetricDescriptorMetadata metadata = 10;
Returns |
---|
Type | Description |
boolean | Whether the metadata field is set.
|
hashCode()
Returns |
---|
Type | Description |
int | |
Overrides
internalGetFieldAccessorTable()
protected GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
Overrides
isInitialized()
public final boolean isInitialized()
Overrides
newBuilderForType()
public MetricDescriptor.Builder newBuilderForType()
newBuilderForType(GeneratedMessageV3.BuilderParent parent)
protected MetricDescriptor.Builder newBuilderForType(GeneratedMessageV3.BuilderParent parent)
Overrides
newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
protected Object newInstance(GeneratedMessageV3.UnusedPrivateParameter unused)
Overrides
toBuilder()
public MetricDescriptor.Builder toBuilder()
writeTo(CodedOutputStream output)
public void writeTo(CodedOutputStream output)
Overrides