This is the multi-page printable view of this section.
Click here to print.
Return to the regular view of this page.
SPEKTRA Edge Monitoring Service API
Understanding the Monitoring service API.
The monitoring service provides a massive scale time-series multi-tenant
data store with multi-key indexing and automatic rollups.
It has wire-compatible capabilities with google monitoring API
for time-series - version v3.
Version v4
is however recommended one we are expanding.
Full API Specifications (with resources):
Highlights:
- Dynamic metric configuration: all resource/metric descriptors (schemas)
are managed through an API.
- Monitoring includes a background pipeline that helps reduce query times
for wide time intervals, such as a week, month, or year
- Ability to configure pre-aggregated or paginated (sorted) db indexes via API.
- Time series data compaction
- Time series watch (subscribe)
- Time series forwarding
- Automatic alerting based on incoming time series
- Multi-indexing: Provides faster response times than traditional time series
databases and supports multiple query patterns.
Metrics Definition
The Monitoring Service predefines a schema for time-series data and uses that
schema to populate data and execute queries.
The schema is defined in two stages, with the upper level definition being
the resource definition and the lower level definition being the metrics
definition.
The higher-level resource definitions are units of entities that generate
metrics and are defined as Monitored Resource Descriptors. For example,
an entity that generates metrics, such as an SPEKTRA Edge device or SEI agent,
exists as a resource. A resource definition contains the name of the resource
as well as additional information such as labels.
Resource definitions are defined at the service level and are usually
available only for reference by the user. Predefined resources can be viewed
with the following commands, example for devices service:
cuttle monitoring list monitored-resource-descriptors \
--service devices.edgelq.com
Lower-level metric definitions define individual values and are defined as
Metric Descriptor resources. For example, a metric definition could be the
CPU utilization of an SPEKTRA Edge device or the latency measured by the SEI
agent. In addition to the name of the metric, the metric definition defines
a label as additional information and a data type.
On top of that, metric descriptor defines indices (per resource type).
In Monitoring service, metric descriptors are designed to “know” resource
descriptors, therefore time series storage indices are defined on metric
descriptors level.
The following commands can be used to reference a Metric Descriptor in a project:
cuttle monitoring list metric-descriptors --project $PROJECT
Each metric has a defined data type and metric type.
Metric types include, for example, general GAUGE
(e.g., CPU utilization),
cumulative CUMULATIVE
(e.g., total network interface transfer volume), and
differential DELTA
.
Data types include INT64
for general integer values, DOUBLE
for real
numbers, and DISTRIBUTION
for histograms.
Note that a list of labels defined for each resource and metric can be
obtained by adding the --view FULL
option when executing the list command.
The labels can be used as filter conditions when executing the query described
below.
Please take a look at the following fixtures for the metric as well as the
monitored resource descriptors for your reference:
Some metric descriptor resources are automatically created in the Project scope
each time a Project resource is created. As the scope is Project, the resource
can be managed both by the system and ordinary users - to some extent.
By default, each project gets Applications/Devices metric descriptors defined
for pods and devices. Project may enable more optional services, which can
create additional metric descriptors.
Service-provided Metric Descriptors provide:
- Defining labels (sometimes called keys)
- Built-in indices
- Determining value type, metric type and distribution options
Users of the projects can:
- Define their own indices, as an addition to those built-in.
- Customize storage options
TimeSerie
Time Series is identifiable by a unique set of:
- project + region
- metric type and labels
- resource type and labels
Example of individual TimeSerie is number of packets in on a specific
interface on a specific virtual machine.
Time series data points are expected to arrive in order and from a single
client at once.
Example TimeSerie object:
{
"key": "BQHPAQoCGrEEHf8geAECGXc=",
"project": "your-project",
"region": "us-west2",
"metric": {
"type": "watchdog.edgelq.com/probe/session/delivery"
},
"resource": {
"type": "watchdog.edgelq.com/probe",
"labels": {
"probe_id": "p1"
}
},
"metricKind": "GAUGE",
"valueType": "DOUBLE",
"unit": "0-1%",
"points": [
{
"interval": {
"endTime": "2023-07-12T19:01:00Z"
},
"value": {
"doubleValue": 1
}
},
{
"interval": {
"endTime": "2023-07-12T19:00:00Z"
},
"value": {
"doubleValue": 1
}
}
]
}
Highlights:
- TimeSerie can be identified not only by project+region+metric+resource
fields, but also by
key
. There is 1-1 relation between a binary key
(encoded as base64 in this example above) and a string label set.
- Project, region, metric.type and resource.type must always exist and
be specified.
- Individual TimeSerie has list of points. Information about individual point
types can be obtained from fields
metricKind
, valueType
and unit
.
Note that those values may actually differ between queries: If user asks
for COUNT aggregation, valueType
will be always INT64
. If user is
interested in MEAN, it will be DOUBLE
. Unit is fetched from
MetricDescriptor
.
Metric Kinds
Gauge
The most common metric type - represents “in-moment” measurement, like
Used Memory or statistics over a small period, like: CPU Usage.
Cumulative
Monotonically increasing value, like interface packet count. May be reset
from time to time, but that should not affect the aggregated total sum.
Useful for billing purposes.
Delta
Delta Kind may correspond to changes in resource usage like added new Device
(+1) or removed Device (-1). Useful for quota control, request counting, or
any case where maintaining Cumulative value isn’t an option.
Values Types
INT64
Useful for Metrics that represent counters, like packet or request counts,
or Gauges like used memory.
DOUBLE
Floating point value - useful for Gauge values, like CPU Utilization, etc.
DISTRIBUTION
A histogram is useful for retaining more information about data-point
value distribution when performing multiple aggregation steps
(Align + Reduce), like request latency where we’re interested in
the 99th percentile, not just mean.
Also, see
https://github.com/cloudwan/edgelq-sdk/blob/main/monitoring/proto/v4/common.proto
and find the Distribution
message.
Phantom Time Series
A phantom time series allows to ensure that time series
with specific value when responsible agent is down (or disconnected) and
doesn’t emit anything. Usually orchestrated by controllers to provide
device or agent down-detection.
You can also think of phantom time series as generators, as they emit specified
points each minute.
Running a query
Unlike other resources, TimeSerie obtains information through an operation
called Query.
Standard list queries
The following example queries the SEI agent (watchdog.edgelq.com/probe
)
as a resource and the metrics as packet loss
(watchdog.edgelq.com/probe/session/delivery
).
It asks for specific probe in specific region.
cuttle monitoring query time-serie --parent projects/your-project \
--filter 'resource.type="watchdog.edgelq.com/probe" AND \
metric.type="watchdog.edgelq.com/probe/session/delivery" AND \
resource.labels.probe_id="p1" AND region="us-west2"' \
--aggregation '{"alignmentPeriod": "60s", \
"perSeriesAligner": "ALIGN_SUMMARY", \
"crossSeriesReducer": "REDUCE_MEAN",
"groupByFields":["resource.labels.probe_id"]}' \
--interval '{"startTime": "2023-07-12T19:00:00Z", \
"endTime": "2023-07-12T19:01:00Z"}' -o json
Example output:
{
"timeSeries": [
{
"key": "BQHPAQoCGrEEHf8geAECGXc=",
"project": "your-project",
"region": "us-west2",
"metric": {
"type": "watchdog.edgelq.com/probe/session/delivery"
},
"resource": {
"type": "watchdog.edgelq.com/probe",
"labels": {
"probe_id": "p1"
}
},
"metricKind": "GAUGE",
"valueType": "DOUBLE",
"points": [
{
"interval": {
"endTime": "2023-07-12T19:01:00Z"
},
"value": {
"doubleValue": 1
}
},
{
"interval": {
"endTime": "2023-07-12T19:00:00Z"
},
"value": {
"doubleValue": 1
}
}
]
}
]
}
Standard list time series queries are those that contain:
- Project
- Filter (specifying
metric.type
)
- Aggregation
- Interval
--parent
All time series belong to some project, and it is necessary to specify
project from which we query time series. Each project has own dedicated
database indices, and is protected by authorization.
--filter
Describes filter conditions for the query combined with AND
operator.
Filter is a string that should satisfy:
metric.type <EqualityOp> <MetricTypes> [AND <FilterPath> <Operator> <Values>]
.
Expressions within []
may be repeated many times (or not at all).
<EqualityOp>
must be equal to =
or IN
<MetricTypes>
may be an array for IN operator, or just a quoted string for
single value.
<FilterPath>
must be a valid path in TimeSerie object. It must be one of:
resource.type
: Points to MonitoredResourceDescriptor. If user does not
provide it, system deduces possible values based on metric.type
.
metric.labels.<Key>
, where <Key>
must be a valid label key present in
MetricDescriptor resource (Field labels
). If user specified more than
one metric type, then labels must be present in all of them!
resource.labels.<Key>
, where <Key>
must be valid label key present in
MonitoredResourceDescriptor resource (Field labels
). If user specified
multiple resource types, then label must be present for all of them! If
user did not specify resource type, label will must match whatever system
determines is actual resource type.
region
: All time series belong not only to the project, but also to
specific regions. Project must be enabled in at least one region, but
may belong to the multiple regions. If region
filter condition is not
specified, then query is redirected to all regions where project is
enabled. It is advisable to provide region in the filter if we know it.
This way query will be not broadcast to multiple regions, which saves
on latency.
<Operator>
must be equal to =
, !=
, IN
or NOT IN
.
<Values>
may be single string value (quoted) or an array of quoted strings
between []
characters.
--aggregation
You can specify an alignment interval (alignmentPeriod
), an aligner
for each time series (perSeriesAligner
), and a reducer across time series
(crossSeriesReducer
).
The alignment interval specifies the granularity of data required.
The minimum granularity is 1 minute (60s or 1m), and the other available
granularities are:
- 3 minutes (3m)
- 5 minutes (5m)
- 15 minutes (15m)
- 30 minutes (30m)
- 1 hour (1h)
- 3 hours (3h)
- 6 hours (6h)
- 12 hours (12h)
- 1 day (1d)
Note that unaligned data cannot be acquired.
The alignment interval must be set appropriately for the value of
the period (--interval
) value described below. Specifying a small
alignment interval with a large period value may cause the query to fail
due to the large amount of data to be processed.
The Aligner per Time Series defines the process used to merge data within
an alignment period. For example, if the alignment interval is 5 minutes
and the original data is stored every minute, there will be 5 data points
in one alignment period. In this case, the data representative of
that alignment period must be calculated, and the calculation method must be
specified according to the application.
Below is a list of typical aligners that are commonly used:
-
ALIGN_MIN
, ALIGN_MAX
, ALIGN_MEAN
, ALIGN_STDDEV
use the minimum, maximum, average or standard deviation value within the period.
-
ALIGN_COUNT
use the number of data points in the period.
-
ALIGN_SUM
computes sum of values within specified alignment period.
-
ALIGN_SUMMARY
use the composite value of the histogram within the period.
(Distribution type only).
-
ALIGN_DELTA
extract difference between current value specified at current end timestamp
and previous value at previous end timestamp. This aligner works only
for CUMULATIVE
and DELTA
metric types (Field metric_type
in MetricDescriptor must
be either of those values).
-
ALIGN_RATE
Works like ALIGN_DELTA
, but also divides result by number of seconds within
period (alignment period).
-
ALIGN_PERCENTILE_99
, ALIGN_PERCENTILE_95
, ALIGN_PERCENTILE_50
, ALIGN_PERCENTILE_05
use the value of each percentile in the period.
Reducer is used to group multiple time series and combine them to produce
a single time series. This option is used in conjunction with
the groupByFields
option, which specifies the criteria for grouping.
For example, to obtain a time series of the average CPU usage of all devices
in a specific project, specify resource.labels.project_id
in the
groupByField
option, then specify REDUCE_MEAN
as the reducer.
## If the above example is used as a parameter.
{... "crossSeriesReducer": "REDUCE_MEAN", "groupByFields": ["resource.labels.project_id"]}
Below is a list of typical reducers that are commonly used.
-
REDUCE_NONE
no grouping, no composite time series. Field groupByFields
is not relevant.
-
REDUCE_COUNT
Computes number of merged time series. Note it is not a sum of number of points
within merged time series!. To have sum of data points, use ALIGN_COUNT
combined
with REDUCE_SUM
.
-
REDUCE_SUM
use the sum of values within a group.
-
REDUCE_MIN
, REDUCE_MAX
, REDUCE_MEAN
, REDUCE_STDDEV
use the minimum, maximum, average and standard deviation values within a group.
-
REDUCE_PERCENTILE_99
, REDUCE_PERCENTILE_95
, REDUCE_PERCENTILE_50
, REDUCE_PERCENTILE_05
use the value of each percentile in the group.
It is important to note, that specific reducers (MEAN, STDDEV, any PERCENTILE), are typically best
used with perSeriesAligner ALIGN_SUMMARY. This allows to eliminate imbalances between individual
time series, and displays proper mean/percentile. Rate/Delta values (ALIGN_DELTA and ALIGN_RATE) are
often used with REDUCE_SUM, similarly counters (ALIGN_COUNT) are best used with REDUCE_SUM as well.
See API Specifications
for details on available aligners and reducers and the conditions under
which they can be used.
--interval
Specify the time period for which time series data is to be retrieved.
Specify the start time and end time in RFC3339 format for startTime
and
endTime
. Please refer to “Data Storage Period” to set the available time
periods.
Standard list time series queries are those that contain:
- Project
- Filter (specifying
metric.type
)
- Pagination
- Interval
One of the differences between regular queries and paginated, is that
latter have aggregation function built-in. Paginated views must be defined
within MetricDescriptors (more on it later), functions define aligner,
reducer, and sorting order.
Pagination queries are helping to traverse/iterate over large number of
individual time series.
Pagination view describes:
- labels that separate individual time series into different pagination
rankings (filterable/promoted labels).
- labels identifying individual time series to be sorted (paginated labels).
- Labels that are neither of the above are reduced (time series are merged).
Function describes:
- Aligner+reducer extracting double/integer value from each timestamp in each
individual time series (after merging those with reduced labels). Final
value will be used for sorting purposes.
- Sorting direction
Time series across projects/regions will never be sorted together.
Function (aligner+reducer) must extract either double or integer value.
Mechanism is following: For specified pagination view, each TimeSerie is
sorted into specific ranking (project, region, metric and resource types are
minimal shared properties of individual ranking, plus filterable/promoted
labels). Within single ranking, function (aligner+reducer) extracts
double/integer value from each TimeSerie for each timestamp. Finally, for
each timestamp individually, sorted ranking of TimeSeries is created in
specified order.
For example, imagine we have metric.type
equal to
devices.edgelq.com/device/disk/used
. This metric describes number of bytes
used on a disk. Matching resource.type
is devices.edgelq.com/device
.
Imagine we have a project and region where we have 10000 devices, and each
has 3 partitions (name and mount). We can use paginated query to find out
top 20 devices for each partition, but within single project and region.
Query can look like the following example:
cuttle monitoring query time-serie --parent projects/your-project \
--filter 'metric.type="devices.edgelq.com/device/disk/used" AND \
resource.type="devices.edgelq.com/device" AND \
region="us-west2"' \
--pagination '{"alignmentPeriod": "3600s", \
"view": "ByDevice", \
"function": "Mean",
"limit": 20,
"offset": 0}' \
--interval '{"startTime": "2023-07-12T19:00:00Z", \
"endTime": "2023-07-12T22:00:00Z"}' -o json
This query, in order to work, must have in MetricDescriptor defined pagination
view ByDevice
and function Mean
. We will describe this later on in
Indices Management.
For now, assume that:
- View
ByDevice
is the one where partition (name + mount) labels are
separating TimeSeries into different rankings. Resource label device_id
is the one label we keep in each individual ranking.
- Function
Mean
is using ALIGN_SUMMARY+REDUCE_MEAN in DESCENDING order.
Because we know there are 3 common partitions across all devices, we will
receive, for each timestamp (19:00:00, 20:00:00, 21:00:00, 22:00:00),
60 time series data points (3 partitions by 20 devices) belonging to
different TimeSerie objects.
Notes for caution:
- Each partition has its own ranking of top devices. Therefore, for partition
“A” you may get 20 totally different devices compared to other partitions
“B” and “C”.
- Each timestamp has its own ranking too. 20 devices for time T1 may be
different from timestamp T1+1, if one device within same partition took
over “one of the top 20 places”. As of now monitoring does not average
values across whole specified interval to make sure time series between
timestamps do not change. In the final response message, it is possible
to receive TimeSeries object with data points with timestamps like
(19:00:00, 20:00:00, 22:00:00) - note missing 21:00:00. It does not mean
data point does not exist, it only means that this TimeSeries for this
timestamp does not fit into top 20.
Parameters other than --pagination
are same as for standard queries.
Watch command
It is also possible to receive time series as they appear in the service.
You need the
cuttle version
2.5.0 or above to run the following
command.
$ cuttle monitoring watch time-serie \
--parent projects/your-project \
--filter 'metric.type="devices.edgelq.com/device/connected" AND \
resource.type="devices.edgelq.com/device"' \
--aggregation '{"alignmentPeriod": "300s", \
"crossSeriesReducer": "REDUCE_MEAN", \
"perSeriesAligner": "ALIGN_MEAN", \
"groupByFields":["resource.labels.device_id"]}' \
--starting-time "2025-01-01T12:00:00Z" \
-o json | jq .
Arguments are same as in standard queries, except --interval
is not
supported. It is replaced by --starting-time
. Starting time should not be
too far into te past (as of now, it can be one week old).
This is streaming long-running command. When some TimeSerie object is seen for
the first time, monitoring will retrieve all data points from starting time
(and including). It will also fetch full headers (metric & resource type and
labels, project, region, unit).
Here is an example initial time series retrieved by the command above, assuming
that current time is past 2025-01-01T12:05:00Z
.
{
"timeSeries": [
{
"key": "BQHPAQoCGrEEHf8geAEA",
"project": "your-project",
"region": "us-west2",
"metric": {
"type": "devices.edgelq.com/device/connected"
},
"resource": {
"type": "devices.edgelq.com/device",
"labels": {
"device_id": "raspberry-pi-5"
}
},
"unit": "1",
"metricKind": "GAUGE",
"valueType": "DOUBLE",
"points": [
{
"interval": {
"endTime": "2025-01-01T12:05:00Z"
},
"value": {
"doubleValue": 1
}
},
{
"interval": {
"endTime": "2025-01-01T12:00:00Z"
},
"value": {
"doubleValue": 1
}
}
]
}
]
}
After 2025-01-01T12:10:00Z
, caller may receive next data point for this
timestamp:
{
"timeSeries": [
{
"key": "BQHPAQoCGrEEHf8geAEA",
"metricKind": "GAUGE",
"valueType": "DOUBLE",
"points": [
{
"interval": {
"endTime": "2025-01-01T12:10:00Z"
},
"value": {
"doubleValue": 1
}
}
]
}
]
}
This time, fields project
, region
, unit
, metric
and resource
are not
returned. Instead, caller should find matching TimeSerie object using key
value seen in the past. This mechanism ensures system does not need to fetch
again all TimeSerie metadata, saving on latency, bandwidth, resource
consumption.
Data point is unique for given key
and interval.endTime
fields.
Watch time-series call works using at-least-once principle. It is possible to:
- Re-receive again full data headers for some TimeSerie object despite being
already seen.
- Re-receive data points for given TimeSerie object (by key). In other words,
for some
key
field, in one moment you may receive data points for timestamps
(2025-01-01T12:00:15Z
, 2025-01-01T12:00:20Z
, 2025-01-01T12:00:25Z
),
then (2025-01-01T12:00:20Z
, 2025-01-01T12:00:25Z
, 2025-01-01T12:00:30Z
).
User should prefer last value received for given key and timestamp.
Those received-again data points/headers are possible due to:
- Maintenance restarts of internal services.
- Autoscaling events (which may cause also restarts).
- Recoveries from abnormal situations.
- It is also possible that edge devices will submit late data points causing
corrections of some received before values.
Finally, a TimeSerie object with unique key
may be not exactly synchronized
with other TimeSerie regarding timestamps: It is possible to receive data point
with timestamp 2025-01-01T12:00:15Z
for TimeSerie A, then
2025-01-01T12:00:05Z
for TimeSerie B (earlier). Typically, timestamps for
all TimeSerie should grow equally, but if some edge agent goes offline, it is
possible for them to submit LATE data when it comes online. Watch time-series
may return multiple late data points for this given edge object.
If edge agent comes online way too late, system may refuse data points over
certain age though. As of now, maximum allowed age is one hour. Therefore, if
device comes online after more than 1 hour break, older data points will not
be accepted. TimeSeries received over watch (and actually also over List) will
have gap in timestamps.
Data retention period
Data can only be acquired for a limited time depending on the alignment
interval. For example, data with a resolution of 1 m (1 minute) can only
be acquired up to 14 days in the past. If you want data up to 90 days old,
you must use an alignment interval of 30 minutes.
This table represents retention periods:
Alignment Interval |
Storage Period |
1m |
14 days |
3m |
28 days |
5m |
42 days |
15m |
62 days |
30m |
92 days |
1h |
184 days |
3h |
366 days |
6h |
732 days |
12h |
1098 days |
1d |
1464 days |
By default, all time series have those alignment periods enabled. It is
however possible to opt-out from them using storage options in MetricDescriptor
instances. For example, if we only need up to 1h alignment period of
devices.edgelq.com/device/connected
metric type in project your-project
,
we can do that making an update:
$ cuttle monitoring update metric-descriptor \
'projects/your-project/metricDescriptors/devices.edgelq.com/device/connected' \
--storage-config '{"maxAp":"3600s"}' --update-mask 'storageConfig.maxAp' -o json
This allows to significantly reduce number of data points to be created and
stored, lowering total costs (especially long term storage).
It is not possible to disable individual alignment periods “in the middle”.
Higher alignments require lower alignments.
Buckets
It is possible to restrict time series creation/queries to a specific subset
within the project scope.
For example, suppose we have a device agent, and we want to ensure it can
read/write only from/to specific owned time series. We can create
the following bucket:
cuttle monitoring create bucket <bucketId> --project <projectId> \
--region <regionId> \
--resources '{
"types":["devices.edgelq.com/device", "applications.edgelq.com/pod"],
"labels": {"project_id":{"strings": ["<projectId>"]}, "region_id":{"strings": ["<regionId>"]}, "device_id":{"strings": ["<deviceId>"]}}
}'
We can now create a Role for Device (Yaml):
- name: services/devices.edgelq.com/roles/restricted-device-agent
scopeParams:
- name: region
type: STRING
- name: bucket
type: STRING
grants:
- subScope: regions/{region}/buckets/{bucket}
permissions:
- services/monitoring.edgelq.com/permissions/timeSeries.create
- services/monitoring.edgelq.com/permissions/timeSeries.query
The project can be specified in RoleBinding. When we assign the Role to
the Device, the device agent will be only able to create/query time series
for a specific bucket - and this bucket will guarantee that:
- Device can read/submit TimeSeries only for
devices.edgelq.com/device
or
applications.edgelq.com/pod
resource types.
- Metric types are not restricted
- All time series for resource descriptors will have to specify
a “project_id” label equal to the specified project, “region_id” equal
to the specified region, and “device_id” equal to the specified device.
When querying, the filter will have to specify all those fields.
Buckets ensure also correctness even if the client is submitting binary
time series keys (A key in TimeSerie is provided, which allows to skip metric
and resource types and labels).
Provided example above is for information - Service devices.edgelq.com
already provides Buckets for all Devices!
Alert management
Monitoring service can observe specified time series to spot issues and trigger
alerts.
Policies and conditions
Top monitoring resource is AlertingPolicy
. It is characterized by:
- Project and region scope.
- Can hold multiple alerting conditions.
- Can be enabled/disabled - in disabled state none of the conditions are
evaluated.
- We can attach notification channels.
Creation of example policy in specific project/region, without notification:
$ cuttle monitoring create alerting-policy policyName --project your-project --region us-west2 \
--display-name "display name" --spec '{"enabled":true}' -o json
We can enable/disable it ($ENABLED
must be either true
or false
):
$ cuttle monitoring update alerting-policy projects/your-project/regions/us-west2/alertingPolicies/policyName \
--spec '{"enabled":$ENABLED}' --update-mask spec.enabled -o json
You can check policies in a project:
$ cuttle monitoring list alerting-policies --project your-project -o json
Once you have alerting policy, you can create a condition. Condition has 3
spec components:
- Time series query (filter and aggregation, without interval): Informs what
time-series are observed. Note that presence of aggregation means that one
condition can observe multiple time series objects.
- Threshold: Informs when to trigger an Alert (based on time-series data).
- Duration: Informs for how long data needs to exceed threshold before alert
is raised (or silenced).
Be aware, that alerting condition must belong to some policy, which is region
scoped. Therefore, a condition will have implicitly added region
filter
condition. If you want to have same condition across multiple regions, you will
need to copy it as many times as you have regions in a project.
Suppose that we want to trigger an alert if avg CPU utilization on ANY device
exceeds 90% for at least 15 consecutive minutes, using granularity of 5 minutes.
Assume that time series are reported within range from 0.0 to 1.0. We can do
that with cuttle:
$ cuttle monitoring create alerting-condition cndName \
--parent 'projects/your-project/regions/us-west2/alertingPolicies/policyName' \
--display-name 'Display name' \
--spec '{"timeSeries":{\
"query":{\
"filter": "metric.type=\"devices.edgelq.com/device/cpu/utilization\" AND resource.type=\"devices.edgelq.com/device\"",\
"aggregation": {"alignmentPeriod":"300s", "perSeriesAligner":"ALIGN_SUMMARY","crossSeriesReducer":"REDUCE_MEAN","groupByFields":["resource.labels.device_id"]}\
},\
"threshold":{"compare":"GT", "value":0.9},\
"duration":"900s"\
}}'
Note that in query we specify filter and aggregation fields. In other words,
pagination queries are not possible for alerting.
When alerting condition is created, monitoring checks non-aggregated and
pre-aggregated indices. It is worth mentioning here that alerting conditions
utilize watch time-series queries internally. Therefore,
labels in aggregation.groupByFields
are taken into account when looking
at partitionLabelSets
.
Number of TimeSeries objects monitored by a service for a single condition
depends on cardinality of labels in aggregation.groupByFields
. Also, at any
given time, there can be as many firing alerts as many are unique TimeSeries
objects within fields defined by aggregation.groupByFields
. Each Alert
instance is associated with:
- Specific TimeSeries object according to
aggregation.groupByFields
.
- Time range (starting and ending time).
Alerts for same TimeSeries will not overlap time-wise.
Duration field in condition specification has two meanings:
- It indicates how long TimeSerie value should exceed threshold before alert
is raised.
- It also tells how long TimeSerie value should be equal or below threshold
before firing alert is silenced.
Duration should be multiplication of aggregation.alignmentPeriod
.
Non-firing alerts are deleted after 3 months as of now (garbage collected).
As of now this is not configurable.
Notifications
In order to enable notifications about alerts, it is necessary to create
NotificationChannel
resource. It can be done using cuttle. As of now, there
are 3 type of notifications:
$ cuttle monitoring create notification-channel --project your-project email-example \
--spec '{"enabled":true, "type":"EMAIL", "addresses":["admin@example.com"]}'
$ cuttle monitoring create notification-channel --project your-project slack-example \
--spec '{"enabled":true, "type":"SLACK", "incomingWebhook": "https://some.url"}'
$ cuttle monitoring create notification-channel --project your-project slack-example \
--spec '{"enabled":true, "type":"WEBHOOK", "webhook": {"url": "https://some.url", "maxMessageSizeMb": 0.25}}'
Created channels may be attached to policies from any region in a project:
$ cuttle monitoring update alerting-policy 'projects/your-project/regions/us-west2/alertingPolicies/policyName' \
--spec '{"notification":{"enabled":true, "channels": ["projects/your-project/notificationChannels/email-example"]}}'
Naturally policy can be created straight with attached notification channel.
Apart from using notifications, users can also access API to watch alert changes
directly in their projects.
Webhooks
Webhooks are more customizable notification types, and more guaranteed
structure. Webhook full notification has following format:
{
"project": {/** monitoring.edgelq.com/Project object here **/},
"organization": {/** iam.edgelq.com/Organization object here **/},
"alertingPolicy": {/** monitoring.edgelq.com/AlertingPolicy object here **/},
"notification": {/** monitoring.edgelq.com/Notification object here **/},
"events": [{
"alertingCondition": {/** monitoring.edgelq.com/AlertingCondition object here **/},
"metricDescriptor": {/** monitoring.edgelq.com/MetricDescriptor object here **/},
"monitoredResourceDescriptor": {/** monitoring.edgelq.com/MonitoredResourceDescriptor object here **/},
"alerts": [{
/** monitoring.edgelq.com/Alert object here **/
}/** More alerts **/]
}/** More events **/]
}
Refer to specifications of specified resources for more details what fields
are available.
Note that this is described as full message. Many fields are hidden to
reduce notification size. It is possible to define what field paths should
be included in each message using notificationMask
field:
$ cuttle monitoring create notification-channel --project your-project slack-example \
--spec '{..., "webhook": {..., "notificationMask": ["path1", "path2"...]}}'
Refer to NotificationChannel
specification to see what is the default
notificationMask if user does not specify it (it is not empty).
Smaller message should easier fit into webhook.
It is also possible to limit maximum message using maxMessageSizeMb
param:
$ cuttle monitoring create notification-channel --project your-project slack-example \
--spec '{..., "webhook": {..., "maxMessageSizeMb": 0.25}}'
It should be used if there is a maximum size webhook can accept. By default
there is no limit.
Time series forwarding
TimeSeries objects can be queried or received in real-time manner using watch.
However, it is also possible to forward them to the external systems.
We can do that using two resources:
TimeSeriesForwarderSink
: Provides target where time series can be stored
in protobuf format (with optional compression).
TimeSeriesCollectionRule
: Provides persistent query that executes in the
service background. It can (should) be attached to sink resource.
Collection rules do not have to be in the same project as sink. Admins
may create one sink in major project and connect collection rules from minor
ones.
Creating sink requires providing some external endpoint. As of now, only
azure event hub is supported. Endpoint to azure event hub must contain
auth key, therefore it is necessary to create secret resource first:
$ cuttle secrets create secret secretName --region us-west2 --project your-project \
--data '{"EndpointString": "Endpoint=sb://<name>.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=<SECRET>;EntityPath=<topicName>"}'
Replace all variables within <>
with proper values. Note that you should
provide also topic name (after creating azure even hub, create also a topic).
Then you can create sink, reference azure endpoint with secret:
$ cuttle monitoring create time-series-forwarder-sink sink-name --project your-project \
--display-name "some name" \
--spec '{"compression": "SNAPPY", "azureEventHub": {"endpoint": "projects/your-project/regions/us-west2/secrets/secretName"}}' -o json
Monitoring service detects automatically on start number of partitions.
With sink, you can create collection rules. They are very similar to
watch queries. You need to provide filter and aggregation.
Thenew argument is only sink.
Remember that fields filter
, aggregation
and sink
cannot be changed.
You will need to recreate rule.
Under the hood, watch queries are executed by the system to forward time
series to the sink.
$ cuttle monitoring create time-series-collection-rule r1 --project your-project \
--display-name 'Some name' \
--filter 'metric.type="devices.edgelq.com/device/connected" AND \
resource.type="devices.edgelq.com/device"' \
--aggregation '{"alignmentPeriod": "300s", \
"crossSeriesReducer": "REDUCE_MEAN", \
"perSeriesAligner": "ALIGN_MEAN", \
"groupByFields":["resource.labels.device_id"]}' \
--sink 'projects/your-project/timeSeriesForwarderSinks/sink-name' -o json
With described example setup, azure event hub should be receiving protobuf
objects of type ntt.monitoring.v4.BulkTimeSeries
. If compression is used,
remember to decompress azure event bytes first, before attempting to
unmarshal BulkTimeSeries. Example simple Go code to parse events:
package main
import (
"context"
"fmt"
"os"
"github.com/golang/snappy"
eventhub "github.com/Azure/azure-event-hubs-go/v3"
"google.golang.org/protobuf/proto"
rts "github.com/cloudwan/edgelq-sdk/monitoring/resources/v4/time_serie"
)
func main() {
ctx := context.Background()
connStr := "Endpoint=sb://demo.servicebus.windows.net/;SharedAccessKeyName=shared;SharedAccessKey=SecretKey;EntityPath=test"
hub, err := eventhub.NewHubFromConnectionString(connStr)
if err != nil {
panic(fmt.Errorf("Failed to create hub client: %s", err))
}
// Subscribe to partition "0"
handle, err := hub.Receive(ctx, "0", func(ctx context.Context, event *eventhub.Event) error {
decompressedData, err := snappy.Decode(nil, event.Data)
if err != nil {
panic(err)
}
metrics := &rts.BulkTimeSeries{}
if err := proto.Unmarshal(decompressedData, metrics); err != nil {
panic(err)
}
os.Stderr.WriteString(fmt.Sprintf("GOT METRICS: %s\n", metrics))
return nil
})
if err != nil {
panic(fmt.Errorf("Failed receive: %s", err))
}
<-handle.Done()
}
If data is not being delivered, it is worth to check:
- Status of the sink:
cuttle monitoring get time-series-forwarder-sink projects/your-project/timeSeriesForwarderSinks/name --field-mask status -o json
- Verify if collection rules by using watch query (use filter and aggregation from collection rule):
cuttle monitoring watch time-serie --parent 'projects/your-project' --filter '...' --aggregation '...' -o json
- Verify collection rule is connected to the sink (Check field
sink
in TimeSeriesCollectionRule
).
If sink status does not indicate error, and watch query is delivering data, and collection rule is attached to the
sink, it indicates system issue.
Advanced: Index definitions
Indices are important for two reasons:
- For efficient queries (ListTimeSeries)
- For reasonable storage usage (writes)
It is required to balance between them - more indices will require more writes
and larger storage.
It is necessary to understand process of writing:
- First, Monitoring service receives raw unaligned points via CreateTimeSeries
- Next, Monitoring service merges raw data points within individual series
(1 minute, 3 minute, 5 minute etc.).
- Time-aligned data points are saved in time series storage, PER each
non-aggregated index defined in MetricDescriptor.
- Monitoring detects separately paginated and pre-aggregated indices.
Based on their specification, it processes further time-aligned data points,
merging and sorting. Computed data points are stored separately for those
indices.
Essentially, there are 3 category of indices:
The common characteristic for all indices are partitions. Single partition
stores data points of TimeSerie objects with different keys in timestamp
increasing order. TimeSerie object identified by key
may be stored in one
or more partitions, depending on index specification.
Efficient queries require that partition we read from does not store too much
data points (from different TimeSerie) in a single timestamp. This rule is
common for all index types.
Each partition at least specifies following fields of TimeSerie: project
,
region
, metric.type
and resource.type
. It means TimeSerie across
regions, projects and metric types will not be mixed with others. Index
specification may contain more metric/resource label keys optionally.
For simplicity, when examining time series indices, we will assume that there
is only one region ID used by an example project.
Non-aggregated indices
Non-aggregated indices use partitions to group TimeSerie objects, but nothing
more. Data points are aligned according to the AP period (one minute, 3
minutes…, etc.). To ensure efficiency, high cardinality labels should be
part of partition key.
For example, lets take the following MonitoredResourceDescriptor:
- name: services/devices.edgelq.com/monitoredResourceDescriptors/device
type: devices.edgelq.com/device
displayName: Device
labels:
- key: device_id
description: Device ID
valueType: STRING
- key: device_display_name
description: Device Display Name
valueType: STRING
defaultValue: <undefined>
- key: device_serial_number
description: Device Serial Number
valueType: STRING
defaultValue: <undefined>
Then, lets take the following MetricDescriptor:
- name: projects/your-project/metricDescriptors/devices.edgelq.com/device/disk/used
type: devices.edgelq.com/device/disk/used
displayName: Disk usage in bytes
metricKind: GAUGE
valueType: INT64
unit: By
labels:
- key: mount_point
description: Mount Point
valueType: STRING
- key: partition_name
description: Parition Name
valueType: STRING
We may have a fleet of devices, each characterized by a unique device_id
and
small set of partitions. If we have large fleet of similar devices we can
assume that:
- Resource label keys
device_id
, device_display_name
and device_serial_number
are high cardinality. If we have 20K devices, then we will have 20K label values
for each of these. However, it can be safely assumed that for specific device_id
we will have one value of device_display_name
and device_serial_number
.
- Metric label keys
mount_point
and partition_name
will typically have low
cardinality, as devices within specific project/region should be similar.
But within single device_id
, we should be even more confident that number of
partitions will not go into large values.
Based on the knowledge above, we may define the following non-aggregated indices:
- name: projects/your-project/metricDescriptors/devices.edgelq.com/device/disk/used
type: devices.edgelq.com/device/disk/used
displayName: # ... SKIP
labels: # ... SKIP
metricKind: GAUGE
valueType: INT64
unit: By
indices:
builtIn:
nonAggregatedIndices:
- name: "device-nonaggregated"
resourceTypes: [ devices.edgelq.com/device ]
partitionLabelSets:
- name: "DeviceScope"
resourceKeys: [ device_id ]
metricKeys: [ ]
- name: "SerialNumberScope"
resourceKeys: [ device_serial_number ]
metricKeys: [ ]
In the result we will have, for this metric descriptor (which has project,
region, metric and resource type scope), as many partitions as number of
devices multiplied by 2. We will have two indices:
device-nonaggregated:DeviceScope
: With partitions separated by resource
label key device_id
.
device-nonaggregated:SerialNumberScope
: With partitions separated by resource
label key device_serial_number
.
Note that each TimeSerie data point will be saved twice.
In terms of query efficiency, we satisfy the requirement that single partition
should not have too many data points for single timestamp. It is because single
partition will be guaranteed to contain data from only one device. If number of
disk partitions (labels mount_point
and partition_name
) on single device
is low (like 3 at most), single partition for single timestamp will contain 3
data points.
Let’s examine some queries:
cuttle monitoring query time-serie --parent 'projects/your-project' \
--filter 'metric.type="devices.edgelq.com/device/disk/used" AND \
resource.type="devices.edgelq.com/device" \
AND resource.labels.device_id="some_id"' \
--aggregation '{"perSeriesAligner":"ALIGN_SUMMARY",
"alignmentPeriod":"300s",
"crossSeriesReducers":"REDUCE_MEAN",
"groupByFields":["metric.labels.mount_point"]}' \
--interval '{"startTime":"$START_TIME","endTime":"$END_TIME"}' -o json | jq .
Above query specifies resource.labels.device_id
in the filter condition, but not
resource.labels.device_serial_number
. In that case, monitoring will use
device-nonaggregated:DeviceScope
index to retrieve data. If unique number of
metric.labels.mount_point
label is 3, we will receive 3 separate TimeSerie objects
for specified interval. We will read little number of points from the partition
belonging to device.
Note that param aggregation
may specify crossSeriesReducers
and groupByFields
fields for non-aggregated indices. Non-aggregated only means that data stored is in
non-aggregated (across time series) format. Aggregation can be executed on-fly,
during query execution.
Lets take a look into another example query:
cuttle monitoring query time-serie --parent 'projects/your-project' \
--filter 'metric.type="devices.edgelq.com/device/disk/used" AND \
resource.type="devices.edgelq.com/device" \
AND resource.labels.device_serial_number="some_number"' \
--aggregation '{"perSeriesAligner":"ALIGN_SUMMARY",
"alignmentPeriod":"300s",
"crossSeriesReducers":"REDUCE_MEAN",
"groupByFields":["metric.labels.mount_point"]}' \
--interval '{"startTime":"$START_TIME","endTime":"$END_TIME"}' -o json | jq .
Query above will use other index, device-nonaggregated:SerialNumberScope
,
but otherwise we will get similar response as before.
Now examine the following query:
cuttle monitoring query time-serie --parent 'projects/your-project' \
--filter 'metric.type="devices.edgelq.com/device/disk/used" AND \
resource.type="devices.edgelq.com/device" \
AND resource.labels.device_display_name="Some name"' \
--aggregation '{"perSeriesAligner":"ALIGN_SUMMARY",
"alignmentPeriod":"300s",
"crossSeriesReducers":"REDUCE_MEAN",
"groupByFields":["metric.labels.mount_point"]}' \
--interval '{"startTime":"$START_TIME","endTime":"$END_TIME"}' -o json | jq .
Monitoring service will return InvalidArgument
error, indicating that filter
does not match any of the defined indices.
If query contained BOTH resource.labels.device_serial_number
and
resource.labels.device_id
, monitoring will pick one of those indices,
but not both. Index is picked on case-by-case basis, after computing what
is more optimal.
Finally, let’s take a look at this query:
cuttle monitoring query time-serie --parent 'projects/your-project' \
--filter 'metric.type="devices.edgelq.com/device/disk/used" AND \
resource.type="devices.edgelq.com/device"' \
--aggregation '{"perSeriesAligner":"ALIGN_SUMMARY",
"alignmentPeriod":"300s",
"crossSeriesReducers":"REDUCE_MEAN",
"groupByFields":["resource.labels.device_id", "metric.labels.mount_point"]}' \
--interval '{"startTime":"$START_TIME","endTime":"$END_TIME"}' -o json | jq .
This query will also fail due to lack of index that could match it. When
monitoring receives a list query, it takes into account only filter
field
when matching against partitionLabelSets
. Presence of resource.labels.device_id
in aggregation.groupByFields
does not change this calculation. Monitoring
service is not scanning all partitions within project in search of unique device
IDs. Single queries are required to read from limited number of partitions.
Scanning potentially tens of thousands of partitions may also be non-practical.
If we had 3 disk partitions and 10K devices, we would receive 30K TimeSerie
objects - and if interval is one day (while alignment period is 5 minutes), query
would return 288 data points per each TimeSerie, totalling 8640000. Response
(uncompressed) may take hundreds of Megabytes. It is heavy for the system
and receiving client. If number of devices grow even more, it will scale worse
and worse.
Potentially, we can enable this query by adding non-aggregated index like this:
nonAggregatedIndices:
- name: "device-nonaggregated"
resourceTypes: [ devices.edgelq.com/device ]
partitionLabelSets:
- name: "ProjectScope" # Not recommended
resourceKeys: [ ]
metricKeys: [ ]
- name: "DeviceScope"
resourceKeys: [ device_id ]
metricKeys: [ ]
- name: "SerialNumberScope"
resourceKeys: [ device_serial_number ]
metricKeys: [ ]
Index device-nonaggregated:ProjectScope
would create one big partition though,
which goes against the rule that single partition must contain limited number of
data points for each timestamp. While monitoring does not prevent from creating
bad indices (it cannot know in advance cardinality of labels), subsequent queries
may start being rejected with timeout/out of resources errors.
Non-aggregated indices also are used for watch queries. However,
we have more relaxed requirements regarding indices, as labels provided via
aggregation.groupByFields
are also used against partitionLabelSets
. In other
words, following query would be supported:
cuttle monitoring watch time-serie --parent 'projects/your-project' \
--filter 'metric.type="devices.edgelq.com/device/disk/used" AND \
resource.type="devices.edgelq.com/device"' \
--aggregation '{"perSeriesAligner":"ALIGN_SUMMARY",
"alignmentPeriod":"300s",
"crossSeriesReducers":"REDUCE_MEAN",
"groupByFields":["resource.labels.device_id", "metric.labels.mount_point"]}' \
--starting-time '$START_TIME' -o json | jq .
While resource.labels.device_id
is not provided via filter, it is provided via
group by. It is not supported for regular queries, but works well for watch. The
reason lies within internal implementation details. Plus, watch time series
is capable of chunking large responses into more - it is designed to run longer,
in streaming fashion.
Finally, it is worth to reduce number of indices when they are not needed.
Non-aggregated indices are not re-using underlying storage, they are full
replicas. In case of devices.edgelq.com/device/disk/used
, we were able to
notice that caller always provides device_id
, rendering other index using
serial number redundant.
Recommendations
- Ensure that
partitionLabelSets
contain all high cardinality labels.
- Reduce not needed
partitionLabelSets
.
- If you dont want to use high cardinality labels in filter field, look
at pre-aggregated or paginated indices to see if they provide solution
for a problem.
Pre-aggregated indices
Pre aggregated indices are next evolution from non-aggregated ones. Like the
latter, pre-aggregated indices are used by regular and watch queries: User
must specify parent project, filter and aggregation. However, while non-aggregated
indices store original TimeSerie objects as reported by time series writers,
pre-aggregated merge those aligned-only time-series with each other
to create new ones - so they are one step after non-aggregated.
Pre-aggregated means that aggregation happens at the storage level. Because
storage already contains this data, it makes retrieval relatively cheap. Even
if query requires merging tens of thousands of TimeSerie with each other,
monitoring has a little work at the query time.
Let’s come back to known devices.edgelq.com/device
monitored resource
descriptor, as we will use it in these examples. Now, let’s define following
metric descriptor:
- name: projects/your-project/metricDescriptors/devices.edgelq.com/device/connected
type: devices.edgelq.com/device/connected
displayName: Device connected
metricKind: GAUGE
valueType: INT64
unit: "1"
labels: [] # empty labels
Each device sends “1” when it is online. When it is offline, data points are
populated with “0” value. Because connected
metric is direct single property
of device, it does not need any additional labels.
Hard cardinality labels are same as those discussed for non-aggregated indices.
To be able to check connectivity history of each individual device, we need some
non-aggregated index:
- name: projects/<project>/metricDescriptors/devices.edgelq.com/device/connected
type: devices.edgelq.com/device/connected
displayName: Device connected
metricKind: GAUGE
valueType: INT64
unit: "1"
labels: []
indices:
builtIn:
nonAggregatedIndices:
- name: "device-nonaggregated"
resourceTypes: [ devices.edgelq.com/device ]
partitionLabelSets:
- name: "DeviceScope"
resourceKeys: [ device_id ]
metricKeys: [ ]
However, we may also want to know connectivity history of devices across project
and region in general. In other words, we would like to execute query like this:
cuttle monitoring query time-serie --parent 'projects/your-project' \
--filter 'metric.type="devices.edgelq.com/device/connected" AND resource.type="devices.edgelq.com/device"' \
--aggregation '{ \
"perSeriesAligner":"ALIGN_MEAN", \
"alignmentPeriod":"300s", \
"crossSeriesReducers":"REDUCE_SUM"}' \
--interval '{"startTime":"$START_TIME","endTime":"$END_TIME"}' -o json | jq .
Note we do not group by device ID.
Execution of this query is done in two steps. First, for each individual
TimeSerie (which matches single device), we get fraction of 5 minutes interval
when device was online (see alignment period and per series aligner). For
example, if a device was online for 4 minutes during a 5 minute interval
(within larger specified interval in a query), ALIGN_MEAN
will produce
value 0.8: (1 + 1 + 1 + 1 + 0) / 5 = 0.8
. It assumes we have one data
point per minute. Each 5-minutes interval is computed individually, until
we fetch whole period specified by interval
argument.
After extracting aligned value for each individual time-series and timestamp,
we look at the cross series reducer. REDUCE_SUM
means we will add up all
values sharing same timestamp with each other. If a result for some timestamp
is 5635.7 it means that, within 5-minute interval ending at that timestamp,
on average 5635.7 of devices were online. If there were 10K devices in total,
maximum result we can ever have for single timestamp is 10000.
Knowing average number of online devices across time may be useful. In that
case, we can define the following pre-aggregated index:
- name: projects/<project>/metricDescriptors/devices.edgelq.com/device/connected
type: devices.edgelq.com/device/connected
displayName: Device connected
metricKind: GAUGE
valueType: INT64
unit: "1"
labels: []
indices:
builtIn:
preAggregatedIndices:
- name: "device-aggregated"
resourceTypes: [ devices.edgelq.com/device ]
partitionLabelSets:
- name: "ProjectScope"
metricKeys: []
resourceKeys: []
filterAndGroupLabelSets:
- name: "AllReduced"
metricKeys: []
resourceKeys: []
supportedAggregations:
- name: "OnlineDevAvgCounts"
# These arrays may contain multiple entries if needed.
perSeriesAligners: [ ALIGN_MEAN ]
crossSeriesReducers: [ REDUCE_SUM ]
In comparison with non-aggregated indices, pre-aggregated have additional
properties:
- filterAndGroupLabelSets - they contain preserved list of metric and
resource label keys. They may, but dont have to, be used in
filter
or aggregation.groupByFields
parameters. But, label keys that are not
specified in these sets, must not be used in in filter
or
aggregation.groupByFields
parameters (except those mentioned in
partitionLabelSets
).
- supportedAggregations - this is an array of aligners/reducers combinations
we want to support in our queries.
Property partitionLabelSets
works in similar way as in non-aggregated
indices: In filter field, time-series queries must specify all labels
required by at least one set in partitionLabelSets
. And in case of watch
queries, it is also sufficient to provide partition labels via
aggregation.groupByFields
.
Number of actual pre-aggregated indices is a cartesian product of 3 arrays:
partitionLabelSets
, filterAndGroupLabelSets
and supportedAggregations
.
In the presented example, all the arrays have length of just one, therefore
we will have only one pre-aggregated index.
If you go back to the example query above, where groupByFields
set is empty
and filter provides only metric/resource type, you can see that it matches
pre-aggregated index. Partition label set ProjectScope
does not require ANY
extra labels in the filter. Then, AllReduced
set forbids all other labels
to be used, but we don’t. Finally, aligner and reducer are specified in
supported list, so we can use it.
Created indices
Based on each preAggregatedIndices
group, monitoring generates number of
indices based on:
- number of sets in
partitionLabelSets
- number of sets in
filterAndGroupLabelSets
- number of stored aligner functions (computed based on
supportedAggregations
)
In the example, we will have one index:
device-aggregated:ProjectScope/AllReduced/ALIGN_MEAN
Monitoring always multiples number of label sets when generating indices, but
supported aggregations are attempted to be simplified. Monitoring may:
- pick different aligners than indicated by
perSeriesAligners
.
- merge multiple
supportedAggregations
into same aligner, as long as they
belong to same partitionLabelSets
and filterAndGroupLabelSets
.
It is important to note that each final aligner represents separate index
data. To find out what final aligners (storage aligners) were determined by
monitoring, users can make the following query:
$ cuttle monitoring list metric-descriptors --project $PROJECT --view NAME \
--field-mask indices.builtIn.preAggregatedIndices.supportedAggregations.storageAligners \
--field-mask indices.userDefined.preAggregatedIndices.supportedAggregations.storageAligners \
-o json
If there are two different supportedAggregations
functions sharing some
storageAligners
, monitoring will reuse same data to save on index data.
Recommendations and storage estimations
When we define pre-aggregated indices, it is important to make sure resulting
partitions will not be very large: We still should guarantee that number of
data points for given timestamp and partition will be limited. This is driven
by cardinality of labels in each set from filterAndGroupLabelSets
. It is
strongly advised against putting high cardinality labels there (like device ID).
Most device metric labels are fine: like disk partition name. Within single
project and region we can safely assume number of unique disk partitions is
limited. The maximum cardinality is decided ultimately by the widest set in
partitionLabelSets
(least amount of labels) and the largest set in
filterAndGroupLabelSets
(more labels decrease performance).
The particular case described above is very easy: Our AllReduced
has empty
list of keys, therefore total cardinality is exactly 1. Pre-aggregated index
using this group is guaranteed to produce at most 1 data point per each
timestamp, making it very efficient. Furthermore, looking at
partitionLabelSets
, we can say that for single project/region we will have
just one TimeSerie object describing this pre-aggregated connectivity metric
history.
In summary:
partitionLabelSets
may be empty, or contain any low/high cardinality labels.
filterAndGroupLabelSets
should not contain high cardinality labels
- Removing unnecessary partition/filterable sets is recommended
Paginated indices
Pre-aggregated queries allow us to retrieve new TimeSerie objects that are based
on thousands other ones (by aggregation). However, it does not allow to traverse
those thousands of TimeSerie objects in a cheap way.
As a general rule, requests asking for thousands of TimeSerie objects are not
good. If we have that many of them, there are two ways to manage:
- Make aggregated query that computes small number of TimeSerie based on them.
- Ensure that TimeSerie objects are sorted, then retrieve
TOP N / OFFSET K
results.
Paginated indices address the second case.
Let’s define an example: We want to monitor CPU usage across very large fleet
of devices. Specifically, we want to keep an eye on devices with the highest CPU.
This is an example of MetricDescriptor:
- name: projects/your-project/metricDescriptors/devices.edgelq.com/device/cpu/utilization
type: devices.edgelq.com/device/cpu/utilization
displayName: CPU utilization in percentage
metricKind: GAUGE
valueType: DOUBLE
unit: "%"
labels:
- key: cpu_number
description: CPU Number
valueType: STRING
- key: state
description: CPU state one of user, system, idle, nice, iowait, irq, softirq and steal
valueType: STRING
indices:
builtIn:
paginationIndices:
- name: "usage-ranking"
resourceTypes: [ devices.edgelq.com/device ]
partitionLabelSets:
- name: "ProjectScope"
resourceKeys: [ ]
metricKeys: [ ]
views:
- name: "ByDevice"
filterableMetricKeys: [ state ]
filterableResourceKeys: [ ]
paginatedMetricKeys: [ ]
paginatedResourceKeys: [ device_id ]
functions:
- name: "Mean"
aligner: ALIGN_SUMMARY
reducer: REDUCE_MEAN
sorting: DESCENDING
This metric introduces 2 labels:
- cpu number, which allows us to monitor CPU usage per core in each device. It is
likely some fixed string like “1”, “2”, “3”, etc.
- state, which is a fixed enum set.
Of these 2 labels, we can safely assume that both of them are low cardinality.
The only high cardinality label that remains is device ID.
As non and pre aggregated indices, paginated indices also have partitionLabelSets
.
They work in the same manner:
- Time-series queries must specify all labels required by at least one set in
partitionLabelSets
If we can be certain that some labels will be always used in a filter, it is highly
recommended to put them in partition label sets.
In this example case, we would like to retrieve top devices with the highest CPU,
so we cant tell device ID in the filter. Since we may want to make queries with
filter
specifying only metric type and region, it is best to have single empty
set in partitionLabelSets
. This way no labels are required to be specified.
The new important properties of paginated indices are:
views
: View is very important for deciding which labels may be used in a
filter field, and which labels are “paginated”. Filterable labels are defining
separate sorted rankings. Paginated labels are linked to double/integer
values that are sorted according to a defined functions. Note that each view
is combined with each set in partitionLabelSets
. Therefore, one index may
contain multiple rankings in linear memory layout. It is important to ensure
that filterable label keys are not high cardinality labels. Paginated
labels are the ones that can be of high cardinality.
functions
: They combine aligner and reducer to extract double/integer
values for sorting purposes. Aligner specifies what to extract from individual
time series before they are (optionally) merged with each other. In the case
we presented, ALIGN_SUMMARY
tells we will merge distribution values.
Reducer then extracts final value from merged TimeSerie object. In our case,
it means we will extract AVERAGE value from final distributions.
Monitoring merges time series according to the label keys that are not present
in either partitionLabelSets
and views
. Let’s examine current example in
this light.
Paginated indices are generated based on cartesian product of partitionLabelSets
,
views
and functions
. Since we have one item in each, we will have one index
that combines partition set ProjectScope
and view ByDevice
. Now, imagine we
have 10K devices, each with 4 CPU cores and 8 CPU states. Therefore, we have 320K
TimeSerie objects for each individual timestamp. We will be processing each
timestamp separately.
Since labels in ProjectScope
are empty, we will put all 320K TimeSerie objects
in one partition. Next, we take a look into view ByDevice
. We have one filterable
metric label: state
. Since we have established there are 8 states, 320K TimeSerie
objects are grouped into 8 different rankings: Each ranking now has 40K TimeSerie
objects. We will iterate each separately. Inside a ranking, we iterate all TimeSerie
and apply aligner
on each of them. Aligner tells us to extract Distribution
of
CPU measurements per each core. Therefore, we have now 40K Distributions, each has
a pair of labels: resource device ID and metric CPU number. Monitoring looks at
paginatedResourceKeys
and notices we should have only one resource label: device ID.
It takes 40K distributions, then merges those that share same device ID. Metric
label CPU number is effectively reduced (eliminated). Since we have 4 CPU numbers,
we will be left with final 10K Distributions - each assigned to specific device.
Since the value of reducer is REDUCE_MEAN
, we will extract average value from each
of distribution. Finally, we will have 10K pairs: device ID + average CPU value across
cores. This array is sorted in descending order.
Process above is executed by each sorting ranking. Therefore, for each timestamp
and each of 8 CPU states, we will extract 10K device + AVG CPU pairs. Rankings within
same partitionLabelSets
are stored in the same index, but in sorted manner.
Sorting neutralizes cardinality issues of all paginated labels.
While CPU number may be useful label, it was decided that in this ranking we will
drop it to reduce number of rankings in general. If labels are indeed not needed,
it is recommended to reduce them.
View/function names used in queries must be pre-defined in metric descriptor:
cuttle monitoring query time-serie --parent projects/your-project \
--filter 'metric.type="devices.edgelq.com/device/cpu/utilization" AND \
resource.type="devices.edgelq.com/device" AND \
region="us-west2" and metric.labels.state IN ["user","system"]' \
--pagination '{"alignmentPeriod": "3600s", \
"view": "ByDevice", \
"function": "Mean",
"limit": 20,
"offset": 0}' \
--interval '{"startTime": "2023-07-12T19:00:00Z", \
"endTime": "2023-07-12T22:00:00Z"}' -o json
You may have noticed that this CPU ranking may hide devices which have very high
CPU usage on a single core - and low on remaining. For example, if we have 3 CPUs
with 5% load, and 1 CPU with 95% load, average will be 27.5%.
To address this issue, we may add another function:
functions:
- name: "Mean"
# ... other fields
- name: "MaxCoreOfAvg"
aligner: ALIGN_MEAN
reducer: REDUCE_MAX
sorting: DESCENDING
Aligner ALIGN_MEAN
will extract average CPU usage per each core within each
alignment period. Reducer REDUCE_MAX
then picks CPU core that was the highest.
If CPU 0/1/2 had average CPU usage 5%, and CPU 3 had 95%, final value will be
not 27.5%, but 95%.
It is worth checking what functions are needed by users though - each function
requires additional computation/storage resources when writing.
Produced indices
Paginated indices group produces as many indices, as large is cartesian product of
partitionLabelSets
, views
and functions
. In this example, we will have one
index: usage-ranking:ProjectScope/ByDevice/Mean
.
Summary recommendations
partitionLabelSets
may be empty, or contain any low/high cardinality labels.
views.filterableMetricKeys
and views.filterableResourceKeys
should not
contain high cardinality labels.
views.paginatedMetricKeys
and views.paginatedResourceKeys
are designed to
handle high cardinality labels.
- Removing unnecessary partition/views/functions sets is recommended to reduce
compute/storage.
Advanced: Index lifecycle management
Each index has 3 lifecycle states:
- ACTIVE: Writes are active, reads are possible
- SUSPENDED: Writes are active, but reads are possible only up to the timestamp
when index entered this state.
- CLOSED: Writes are not active, reads are possible only up to the timestamp
when index entered this state.
By default, index is in ACTIVE state. From this state, it can be moved into
SUSPENDED or CLOSED state. From SUSPENDED state, index can come back to ACTIVE
state or CLOSED state. CLOSED state is terminal - index only exists to provide
historical data up to the time when index was closed.
Potentially index can be completely removed from MetricDescriptor resource. In
that case, it is forgotten and associated data will eventually expire.
Be aware, that time series are computed/written continuously with time. Adding
new index does not cause old data to be recomputed. Nor deleting/closing index
will delete old data. When monitoring gets a query, it analyzes requested
interval to find the best index for each sub-period within.
It is highly recommended to move index into SUSPENDED state before CLOSED. This
way we can test if anyone was actually using this index. While it is possible to
use Audit service (sample reads) to analyze usage, or check monitoring index usage,
it is advisable to err on safety side.
Non aggregated indices can be closed by changing partition label set status
individually:
nonAggregatedIndices:
- name: "..."
resourceTypes: [ ... ]
partitionLabelSets:
- name: "..."
closingStatus: SUSPENDED # or CLOSED
For pre-aggregated/paginated indices, each cartesian component has its own
closing status field:
paginationIndices:
- name: "..."
resourceTypes: [ ... ]
partitionLabelSets:
- name: "..."
closingStatus: ...
views:
- name: "..."
closingStatus: ...
functions:
- name: "..."
closingStatus: ...
preAggregatedIndices:
- name: "..."
resourceTypes: [ ... ]
partitionLabelSets:
- name: "..."
closingStatus: ...
filterAndGroupLabelSets:
- name: "..."
closingStatus: ...
supportedAggregations:
- name: "..."
closingStatus: ...
Index is considered CLOSED, if at least one of the inputs is in CLOSED state.
If not, then index is SUSPENDED if at least one of the inputs is in
SUSPENDED state.
Apart from lifecycle, it is important to categorize each index into 2 groups:
- built-in: Indices are defined by service developers and cannot be modified
by project admins.
- user-defined: Indices are defined by project administrators. They should
include indices that are useful for individual project perspective.
Both groups are reflected in MetricDescriptor schema:
- name: projects/.../metricDescriptors/...
type: ...
displayName: ...
metricKind: ...
valueType: ...
unit: ...
labels: ...
indices:
builtIn:
nonAggregatedIndices: ...
preAggregatedIndices: ...
paginationIndices: ...
userDefined:
nonAggregatedIndices: ...
preAggregatedIndices: ...
paginationIndices: ...
2 -
Understanding the monitoring.edgelq.com service APIv3, in proto package ntt.monitoring.v3.
Here is the list of resources supported in Monitoring service APIv3:
Alert Resource
Alert Resource
Name patterns:
projects/{project}/regions/{region}/alertingPolicies/{alerting_policy}/alertingConditions/{alerting_condition}/alerts/{alert}
Parent resources:
This section covers the methods
and messages to interact
with Alert resource.
Alert Methods
Here is the list of Alert resource methods:
GetAlert Method
GetAlert
rpc GetAlert(GetAlertRequest) returns (Alert)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.get
The equivalent REST API is:
GET /v3/{name=projects/*/regions/*/alertingPolicies/*/alertingConditions/*/alerts/*}
BatchGetAlerts Method
BatchGetAlerts
rpc BatchGetAlerts(BatchGetAlertsRequest) returns (BatchGetAlertsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.batchGet
The equivalent REST API is:
ListAlerts Method
ListAlerts
rpc ListAlerts(ListAlertsRequest) returns (ListAlertsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.list
The equivalent REST API is:
GET /v3/{parent=projects/*/regions/*/alertingPolicies/*/alertingConditions/*}/alerts
WatchAlert Method
WatchAlert
rpc WatchAlert(WatchAlertRequest) returns (WatchAlertResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.watch
The equivalent REST API is:
POST /v3/{name=projects/*/regions/*/alertingPolicies/*/alertingConditions/*/alerts/*}:watch
WatchAlerts Method
WatchAlerts
rpc WatchAlerts(WatchAlertsRequest) returns (WatchAlertsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.watch
The equivalent REST API is:
POST /v3/{parent=projects/*/regions/*/alertingPolicies/*/alertingConditions/*}/alerts:watch
CreateAlert Method
CreateAlert
rpc CreateAlert(CreateAlertRequest) returns (Alert)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.create
The equivalent REST API is:
POST /v3/{parent=projects/*/regions/*/alertingPolicies/*/alertingConditions/*}/alerts (BODY: alert)
UpdateAlert Method
UpdateAlert
rpc UpdateAlert(UpdateAlertRequest) returns (Alert)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.update
The equivalent REST API is:
PUT /v3/{alert.name=projects/*/regions/*/alertingPolicies/*/alertingConditions/*/alerts/*} (BODY: alert)
DeleteAlert Method
DeleteAlert
rpc DeleteAlert(DeleteAlertRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.delete
The equivalent REST API is:
DELETE /v3/{name=projects/*/regions/*/alertingPolicies/*/alertingConditions/*/alerts/*}
Alert Messages
Here is the list of Alert resource messages:
Alert Message
Name |
Type |
Description |
name |
string (name of Alert) |
Name of Alert When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.:-]{1,128} |
metadata |
Meta |
|
display_name |
string |
|
info |
Alert.Info |
|
state |
Alert.State |
State of alert |
Alert.Info Message
Alert.State Message
Name |
Type |
Description |
is_firing |
bool |
|
is_acknowledged |
bool |
|
is_silenced |
bool |
|
lifetime |
TimeRange |
describes in terms of time series when alert began and ended (resolved). uses Time Series derived timestamps, rather than real-time. use meta.create_time to get creation date. |
needs_notification |
bool |
This alert needs to be notified |
notification_created |
bool |
Notification resource is generated for this alert |
lifecycle_completed |
bool |
Alert has ended and any needed notifications are processed |
Alert.Info.TimeSerie Message
Alert.Info.ObservedValues Message
Name |
Type |
Description |
example_value |
double |
oneof |
per_metric |
map<string, double> |
|
Alert.State.Threshold Message
oneof:
Name |
Type |
Description |
observed_value |
double |
|
Alert.State.CombineThreshold Message
Name |
Type |
Description |
none |
none |
none |
Alert.State.CombineThreshold.PerMetric Message
Name |
Type |
Description |
observed_values |
map<string, double> |
|
GetAlertRequest Message
A request message of the GetAlert method.
Name |
Type |
Description |
name |
string (name of Alert) |
Name of ntt.monitoring.v3.Alert |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetAlertsRequest Message
A request message of the BatchGetAlerts method.
Name |
Type |
Description |
names |
repeated string (name of Alert) |
Names of Alerts |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetAlertsResponse Message
A response message of the BatchGetAlerts method.
Name |
Type |
Description |
alerts |
repeated Alert |
found Alerts |
missing |
repeated string (name of Alert) |
list of not found Alerts |
ListAlertsRequest Message
A request message of the ListAlerts method.
Name |
Type |
Description |
parent |
string (parent name of Alert) |
Parent name of ntt.monitoring.v3.Alert |
page_size |
int32 |
Requested page size. Server may return fewer Alerts than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of Alert) |
A token identifying a page of results the server should return. Typically, this is the value of ListAlertsResponse.next_page_token. |
order_by |
string (orderBy of Alert) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of Alert) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListAlertsResponse Message
A response message of the ListAlerts method.
Name |
Type |
Description |
alerts |
repeated Alert |
The list of Alerts |
prev_page_token |
string (cursor of Alert) |
A token to retrieve previous page of results. Pass this value in the ListAlertsRequest.page_token. |
next_page_token |
string (cursor of Alert) |
A token to retrieve next page of results. Pass this value in the ListAlertsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total Alerts across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchAlertRequest Message
A request message of the WatchAlert method.
Name |
Type |
Description |
name |
string (name of Alert) |
Name of ntt.monitoring.v3.Alert |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchAlertResponse Message
A response message of the WatchAlert method.
WatchAlertsRequest Message
A request message of the WatchAlerts method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of Alert) |
Parent name of ntt.monitoring.v3.Alert |
page_size |
int32 |
Requested page size. Server may return fewer Alerts than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of Alert) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of Alert) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of Alert) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Alert that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Alert that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchAlertsResponse Message
A response message of the WatchAlerts method.
Name |
Type |
Description |
alert_changes |
repeated AlertChange |
Changes of Alerts |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Alerts will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchAlertsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Alerts will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchAlertsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of Alert) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of Alert) |
New token to retrieve next page of results. |
CreateAlertRequest Message
A request message of the CreateAlert method.
Name |
Type |
Description |
parent |
string (parent name of Alert) |
Parent name of ntt.monitoring.v3.Alert |
alert |
Alert |
Alert resource body |
response_mask |
CreateAlertRequest.ResponseMask |
Optional masking applied to response object to reduce message response size. |
CreateAlertRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateAlertRequest Message
A request message of the UpdateAlert method.
Name |
Type |
Description |
alert |
Alert |
Alert resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateAlertRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateAlertRequest.ResponseMask |
reduce message response size. |
UpdateAlertRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
Alert |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateAlertRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteAlertRequest Message
A request message of the DeleteAlert method.
Name |
Type |
Description |
name |
string (name of Alert) |
Name of ntt.monitoring.v3.Alert |
AlertingCondition Resource
AlertingCondition Resource
Name patterns:
projects/{project}/regions/{region}/alertingPolicies/{alerting_policy}/alertingConditions/{alerting_condition}
Parent resources:
This section covers the methods
and messages to interact
with AlertingCondition resource.
AlertingCondition Methods
Here is the list of AlertingCondition resource methods:
GetAlertingCondition Method
GetAlertingCondition
rpc GetAlertingCondition(GetAlertingConditionRequest) returns (AlertingCondition)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.get
The equivalent REST API is:
GET /v3/{name=projects/*/regions/*/alertingPolicies/*/alertingConditions/*}
BatchGetAlertingConditions Method
BatchGetAlertingConditions
rpc BatchGetAlertingConditions(BatchGetAlertingConditionsRequest) returns (BatchGetAlertingConditionsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.batchGet
The equivalent REST API is:
GET /v3/alertingConditions:batchGet
ListAlertingConditions Method
ListAlertingConditions
rpc ListAlertingConditions(ListAlertingConditionsRequest) returns (ListAlertingConditionsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.list
The equivalent REST API is:
GET /v3/{parent=projects/*/regions/*/alertingPolicies/*}/alertingConditions
WatchAlertingCondition Method
WatchAlertingCondition
rpc WatchAlertingCondition(WatchAlertingConditionRequest) returns (WatchAlertingConditionResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.watch
The equivalent REST API is:
POST /v3/{name=projects/*/regions/*/alertingPolicies/*/alertingConditions/*}:watch
WatchAlertingConditions Method
WatchAlertingConditions
rpc WatchAlertingConditions(WatchAlertingConditionsRequest) returns (WatchAlertingConditionsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.watch
The equivalent REST API is:
POST /v3/{parent=projects/*/regions/*/alertingPolicies/*}/alertingConditions:watch
CreateAlertingCondition Method
CreateAlertingCondition
rpc CreateAlertingCondition(CreateAlertingConditionRequest) returns (AlertingCondition)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.create
The equivalent REST API is:
POST /v3/{parent=projects/*/regions/*/alertingPolicies/*}/alertingConditions (BODY: alerting_condition)
UpdateAlertingCondition Method
UpdateAlertingCondition
rpc UpdateAlertingCondition(UpdateAlertingConditionRequest) returns (AlertingCondition)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.update
The equivalent REST API is:
PUT /v3/{alerting_condition.name=projects/*/regions/*/alertingPolicies/*/alertingConditions/*} (BODY: alerting_condition)
DeleteAlertingCondition Method
DeleteAlertingCondition
rpc DeleteAlertingCondition(DeleteAlertingConditionRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.delete
The equivalent REST API is:
DELETE /v3/{name=projects/*/regions/*/alertingPolicies/*/alertingConditions/*}
SearchAlertingConditions Method
SearchAlertingConditions
rpc SearchAlertingConditions(SearchAlertingConditionsRequest) returns (SearchAlertingConditionsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.search
The equivalent REST API is:
GET /v3/{parent=projects/*/regions/*/alertingPolicies/*}/alertingConditions:search
AlertingCondition Messages
Here is the list of AlertingCondition resource messages:
AlertingCondition Message
Name |
Type |
Description |
name |
string (name of AlertingCondition) |
Name of AlertingCondition When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9-]{0,28}[a-z0-9] |
metadata |
Meta |
Metadata |
display_name |
string |
Display Name |
description |
string |
Long description |
spec |
AlertingCondition.Spec |
|
state |
AlertingCondition.State |
|
AlertingCondition.Spec Message
AlertingCondition.State Message
Name |
Type |
Description |
firing_alerts_count |
int64 |
|
AlertingCondition.Spec.TimeSeries Message
AlertingCondition.Spec.Trigger Message
AlertingCondition.Spec.TimeSeries.Query Message
Name |
Type |
Description |
selector |
TimeSeriesSelector |
Selector is used to generate Time Series filter |
aggregation |
Aggregation |
Time Series aggregation |
AlertingCondition.Spec.TimeSeries.Threshold Message
Name |
Type |
Description |
compare |
AlertingCondition.Spec.TimeSeries.Threshold.Compare |
Compare function specifies if observed value must be GreaterThan (GT) or LesserThan (LT) threshold value in order to trigger an alert. Example: for metric latency {compare: GT, value: 150} will trigger if actual latency is above 150ms. |
value |
double |
threshold value |
AlertingCondition.Spec.TimeSeries.CombineThreshold Message
GetAlertingConditionRequest Message
A request message of the GetAlertingCondition method.
Name |
Type |
Description |
name |
string (name of AlertingCondition) |
Name of ntt.monitoring.v3.AlertingCondition |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetAlertingConditionsRequest Message
A request message of the BatchGetAlertingConditions method.
Name |
Type |
Description |
names |
repeated string (name of AlertingCondition) |
Names of AlertingConditions |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetAlertingConditionsResponse Message
A response message of the BatchGetAlertingConditions method.
Name |
Type |
Description |
alerting_conditions |
repeated AlertingCondition |
found AlertingConditions |
missing |
repeated string (name of AlertingCondition) |
list of not found AlertingConditions |
ListAlertingConditionsRequest Message
A request message of the ListAlertingConditions method.
Name |
Type |
Description |
parent |
string (parent name of AlertingCondition) |
Parent name of ntt.monitoring.v3.AlertingCondition |
page_size |
int32 |
Requested page size. Server may return fewer AlertingConditions than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of AlertingCondition) |
A token identifying a page of results the server should return. Typically, this is the value of ListAlertingConditionsResponse.next_page_token. |
order_by |
string (orderBy of AlertingCondition) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of AlertingCondition) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListAlertingConditionsResponse Message
A response message of the ListAlertingConditions method.
Name |
Type |
Description |
alerting_conditions |
repeated AlertingCondition |
The list of AlertingConditions |
prev_page_token |
string (cursor of AlertingCondition) |
A token to retrieve previous page of results. Pass this value in the ListAlertingConditionsRequest.page_token. |
next_page_token |
string (cursor of AlertingCondition) |
A token to retrieve next page of results. Pass this value in the ListAlertingConditionsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total AlertingConditions across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchAlertingConditionRequest Message
A request message of the WatchAlertingCondition method.
Name |
Type |
Description |
name |
string (name of AlertingCondition) |
Name of ntt.monitoring.v3.AlertingCondition |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchAlertingConditionResponse Message
A response message of the WatchAlertingCondition method.
WatchAlertingConditionsRequest Message
A request message of the WatchAlertingConditions method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of AlertingCondition) |
Parent name of ntt.monitoring.v3.AlertingCondition |
page_size |
int32 |
Requested page size. Server may return fewer AlertingConditions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of AlertingCondition) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of AlertingCondition) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of AlertingCondition) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to AlertingCondition that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to AlertingCondition that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchAlertingConditionsResponse Message
A response message of the WatchAlertingConditions method.
Name |
Type |
Description |
alerting_condition_changes |
repeated AlertingConditionChange |
Changes of AlertingConditions |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All AlertingConditions will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchAlertingConditionsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (AlertingConditions will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchAlertingConditionsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of AlertingCondition) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of AlertingCondition) |
New token to retrieve next page of results. |
CreateAlertingConditionRequest Message
A request message of the CreateAlertingCondition method.
CreateAlertingConditionRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateAlertingConditionRequest Message
A request message of the UpdateAlertingCondition method.
Name |
Type |
Description |
alerting_condition |
AlertingCondition |
AlertingCondition resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateAlertingConditionRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateAlertingConditionRequest.ResponseMask |
reduce message response size. |
UpdateAlertingConditionRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
AlertingCondition |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateAlertingConditionRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteAlertingConditionRequest Message
A request message of the DeleteAlertingCondition method.
Name |
Type |
Description |
name |
string (name of AlertingCondition) |
Name of ntt.monitoring.v3.AlertingCondition |
SearchAlertingConditionsRequest Message
A request message of the SearchAlertingConditions method.
Name |
Type |
Description |
parent |
string (parent name of AlertingCondition) |
Parent name of ntt.monitoring.v3.AlertingCondition |
page_size |
int32 |
Requested page size. Server may return fewer AlertingConditions than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of AlertingCondition) |
A token identifying a page of results the server should return. Typically, this is the value of SearchAlertingConditionsResponse.next_page_token. |
order_by |
string (orderBy of AlertingCondition) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of AlertingCondition) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
phrase |
string |
Optional search phrase used to further filter results. |
SearchAlertingConditionsResponse Message
A response message of the SearchAlertingConditions method.
Name |
Type |
Description |
alerting_conditions |
repeated AlertingCondition |
The list of AlertingConditions |
prev_page_token |
string (cursor of AlertingCondition) |
A token to retrieve previous page of results. Pass this value in the SearchAlertingConditionsRequest.page_token. |
next_page_token |
string (cursor of AlertingCondition) |
A token to retrieve next page of results. Pass this value in the SearchAlertingConditionsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page (0 if no page tokens were given). Page index can be computed from offset and limit provided in a request |
total_results_count |
int32 |
Number of total AlertingConditions across all pages. |
AlertingCondition Enumerations
Here is the list of AlertingCondition resource enumerations:
AlertingCondition.Spec.TimeSeries.Threshold.Compare Enumeration
Name |
Description |
COMPARE_UNSPECIFIED |
|
GT |
|
LT |
|
AlertingCondition.Spec.TimeSeries.CombineThreshold.CombineOperator Enumeration
AlertingCondition.Spec.Trigger.Type Enumeration
Name |
Description |
EACH |
Triggers on each unique TimeSeries label set violation |
AlertingPolicy Resource
AlertingPolicy Resource
Name patterns:
projects/{project}/regions/{region}/alertingPolicies/{alerting_policy}
Parent resources:
This section covers the methods
and messages to interact
with AlertingPolicy resource.
AlertingPolicy Methods
Here is the list of AlertingPolicy resource methods:
GetAlertingPolicy Method
GetAlertingPolicy
rpc GetAlertingPolicy(GetAlertingPolicyRequest) returns (AlertingPolicy)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.get
The equivalent REST API is:
GET /v3/{name=projects/*/regions/*/alertingPolicies/*}
BatchGetAlertingPolicies Method
BatchGetAlertingPolicies
rpc BatchGetAlertingPolicies(BatchGetAlertingPoliciesRequest) returns (BatchGetAlertingPoliciesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.batchGet
The equivalent REST API is:
GET /v3/alertingPolicies:batchGet
ListAlertingPolicies Method
ListAlertingPolicies
rpc ListAlertingPolicies(ListAlertingPoliciesRequest) returns (ListAlertingPoliciesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.list
The equivalent REST API is:
GET /v3/{parent=projects/*/regions/*}/alertingPolicies
WatchAlertingPolicy Method
WatchAlertingPolicy
rpc WatchAlertingPolicy(WatchAlertingPolicyRequest) returns (WatchAlertingPolicyResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.watch
The equivalent REST API is:
POST /v3/{name=projects/*/regions/*/alertingPolicies/*}:watch
WatchAlertingPolicies Method
WatchAlertingPolicies
rpc WatchAlertingPolicies(WatchAlertingPoliciesRequest) returns (WatchAlertingPoliciesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.watch
The equivalent REST API is:
POST /v3/{parent=projects/*/regions/*}/alertingPolicies:watch
CreateAlertingPolicy Method
CreateAlertingPolicy
rpc CreateAlertingPolicy(CreateAlertingPolicyRequest) returns (AlertingPolicy)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.create
The equivalent REST API is:
POST /v3/{parent=projects/*/regions/*}/alertingPolicies (BODY: alerting_policy)
UpdateAlertingPolicy Method
UpdateAlertingPolicy
rpc UpdateAlertingPolicy(UpdateAlertingPolicyRequest) returns (AlertingPolicy)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.update
The equivalent REST API is:
PUT /v3/{alerting_policy.name=projects/*/regions/*/alertingPolicies/*} (BODY: alerting_policy)
DeleteAlertingPolicy Method
DeleteAlertingPolicy
rpc DeleteAlertingPolicy(DeleteAlertingPolicyRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.delete
The equivalent REST API is:
DELETE /v3/{name=projects/*/regions/*/alertingPolicies/*}
SearchAlertingPolicies Method
SearchAlertingPolicies
rpc SearchAlertingPolicies(SearchAlertingPoliciesRequest) returns (SearchAlertingPoliciesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.search
The equivalent REST API is:
GET /v3/{parent=projects/*/regions/*}/alertingPolicies:search
AlertingPolicy Messages
Here is the list of AlertingPolicy resource messages:
AlertingPolicy Message
Name |
Type |
Description |
name |
string (name of AlertingPolicy) |
Name of AlertingPolicy When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9-]{0,28}[a-z0-9] |
metadata |
Meta |
|
display_name |
string |
display name |
description |
string |
Long description |
documentation |
AlertingPolicy.Documentation |
|
spec |
AlertingPolicy.Spec |
Spec |
state |
AlertingPolicy.State |
|
AlertingPolicy.Documentation Message
Documentation
Name |
Type |
Description |
content |
string |
Documentation content |
mime_type |
string |
documentation mime type. Only "text/markdown" is supported. |
AlertingPolicy.Spec Message
Name |
Type |
Description |
enabled |
bool |
Whether policy is enabled and will evaluate any conditions Note: If any existing fired alerts are present, they will not be resolved automatically TODO: consider if they should? |
condition_combiner |
AlertingPolicy.Spec.ConditionsCombiner |
Condition Combiner when deciding if ANY (OR) or ALL (AND) conditions for given subset of resource labels must fire in order to trigger an alert TODO: Add support to AND |
notification |
AlertingPolicy.Spec.Notification |
Notification specification |
AlertingPolicy.State Message
Name |
Type |
Description |
active_alerts_count |
int64 |
Number of ongoing alerts (incident has not ended) |
AlertingPolicy.Spec.Notification Message
Notification specification for a given Policy
Name |
Type |
Description |
enabled |
bool |
Enabled flag determines whether any notifications will be sent |
channels |
repeated string (reference to NotificationChannel) |
|
GetAlertingPolicyRequest Message
A request message of the GetAlertingPolicy method.
Name |
Type |
Description |
name |
string (name of AlertingPolicy) |
Name of ntt.monitoring.v3.AlertingPolicy |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetAlertingPoliciesRequest Message
A request message of the BatchGetAlertingPolicies method.
Name |
Type |
Description |
names |
repeated string (name of AlertingPolicy) |
Names of AlertingPolicies |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetAlertingPoliciesResponse Message
A response message of the BatchGetAlertingPolicies method.
Name |
Type |
Description |
alerting_policies |
repeated AlertingPolicy |
found AlertingPolicies |
missing |
repeated string (name of AlertingPolicy) |
list of not found AlertingPolicies |
ListAlertingPoliciesRequest Message
A request message of the ListAlertingPolicies method.
Name |
Type |
Description |
parent |
string (parent name of AlertingPolicy) |
Parent name of ntt.monitoring.v3.AlertingPolicy |
page_size |
int32 |
Requested page size. Server may return fewer AlertingPolicies than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of AlertingPolicy) |
A token identifying a page of results the server should return. Typically, this is the value of ListAlertingPoliciesResponse.next_page_token. |
order_by |
string (orderBy of AlertingPolicy) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of AlertingPolicy) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListAlertingPoliciesResponse Message
A response message of the ListAlertingPolicies method.
Name |
Type |
Description |
alerting_policies |
repeated AlertingPolicy |
The list of AlertingPolicies |
prev_page_token |
string (cursor of AlertingPolicy) |
A token to retrieve previous page of results. Pass this value in the ListAlertingPoliciesRequest.page_token. |
next_page_token |
string (cursor of AlertingPolicy) |
A token to retrieve next page of results. Pass this value in the ListAlertingPoliciesRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total AlertingPolicies across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchAlertingPolicyRequest Message
A request message of the WatchAlertingPolicy method.
Name |
Type |
Description |
name |
string (name of AlertingPolicy) |
Name of ntt.monitoring.v3.AlertingPolicy |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchAlertingPolicyResponse Message
A response message of the WatchAlertingPolicy method.
WatchAlertingPoliciesRequest Message
A request message of the WatchAlertingPolicies method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of AlertingPolicy) |
Parent name of ntt.monitoring.v3.AlertingPolicy |
page_size |
int32 |
Requested page size. Server may return fewer AlertingPolicies than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of AlertingPolicy) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of AlertingPolicy) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of AlertingPolicy) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to AlertingPolicy that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to AlertingPolicy that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchAlertingPoliciesResponse Message
A response message of the WatchAlertingPolicies method.
Name |
Type |
Description |
alerting_policy_changes |
repeated AlertingPolicyChange |
Changes of AlertingPolicies |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All AlertingPolicies will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchAlertingPoliciesResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (AlertingPolicies will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchAlertingPoliciesResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of AlertingPolicy) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of AlertingPolicy) |
New token to retrieve next page of results. |
CreateAlertingPolicyRequest Message
A request message of the CreateAlertingPolicy method.
CreateAlertingPolicyRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateAlertingPolicyRequest Message
A request message of the UpdateAlertingPolicy method.
Name |
Type |
Description |
alerting_policy |
AlertingPolicy |
AlertingPolicy resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateAlertingPolicyRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateAlertingPolicyRequest.ResponseMask |
reduce message response size. |
UpdateAlertingPolicyRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
AlertingPolicy |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateAlertingPolicyRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteAlertingPolicyRequest Message
A request message of the DeleteAlertingPolicy method.
Name |
Type |
Description |
name |
string (name of AlertingPolicy) |
Name of ntt.monitoring.v3.AlertingPolicy |
SearchAlertingPoliciesRequest Message
A request message of the SearchAlertingPolicies method.
Name |
Type |
Description |
parent |
string (parent name of AlertingPolicy) |
Parent name of ntt.monitoring.v3.AlertingPolicy |
page_size |
int32 |
Requested page size. Server may return fewer AlertingPolicies than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of AlertingPolicy) |
A token identifying a page of results the server should return. Typically, this is the value of SearchAlertingPoliciesResponse.next_page_token. |
order_by |
string (orderBy of AlertingPolicy) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of AlertingPolicy) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
phrase |
string |
Optional search phrase used to further filter results. |
SearchAlertingPoliciesResponse Message
A response message of the SearchAlertingPolicies method.
Name |
Type |
Description |
alerting_policies |
repeated AlertingPolicy |
The list of AlertingPolicies |
prev_page_token |
string (cursor of AlertingPolicy) |
A token to retrieve previous page of results. Pass this value in the SearchAlertingPoliciesRequest.page_token. |
next_page_token |
string (cursor of AlertingPolicy) |
A token to retrieve next page of results. Pass this value in the SearchAlertingPoliciesRequest.page_token. |
current_offset |
int32 |
Current offset from the first page (0 if no page tokens were given). Page index can be computed from offset and limit provided in a request |
total_results_count |
int32 |
Number of total AlertingPolicies across all pages. |
AlertingPolicy Enumerations
Here is the list of AlertingPolicy resource enumerations:
AlertingPolicy.Spec.ConditionsCombiner Enumeration
MetricDescriptor Resource
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.
Name patterns:
projects/{project}/metricDescriptors/{metric_descriptor}
Parent resources:
This section covers the methods
and messages to interact
with MetricDescriptor resource.
MetricDescriptor Methods
Here is the list of MetricDescriptor resource methods:
BatchGetMetricDescriptors Method
BatchGetMetricDescriptors
rpc BatchGetMetricDescriptors(BatchGetMetricDescriptorsRequest) returns (BatchGetMetricDescriptorsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/metricDescriptors.batchGet
The equivalent REST API is:
GET /v3/metricDescriptors:batchGet
WatchMetricDescriptor Method
WatchMetricDescriptor
rpc WatchMetricDescriptor(WatchMetricDescriptorRequest) returns (WatchMetricDescriptorResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/metricDescriptors.watch
The equivalent REST API is:
POST /v3/{name=projects/*/metricDescriptors/*}:watch
WatchMetricDescriptors Method
WatchMetricDescriptors
rpc WatchMetricDescriptors(WatchMetricDescriptorsRequest) returns (WatchMetricDescriptorsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/metricDescriptors.watch
The equivalent REST API is:
POST /v3/{parent=projects/*}/metricDescriptors:watch
GetMetricDescriptor Method
GetMetricDescriptor
rpc GetMetricDescriptor(GetMetricDescriptorRequest) returns (MetricDescriptor)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/metricDescriptors.get
The equivalent REST API is:
GET /v3/{name=projects/*/metricDescriptors/*}
CreateMetricDescriptor Method
CreateMetricDescriptor
rpc CreateMetricDescriptor(CreateMetricDescriptorRequest) returns (MetricDescriptor)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/metricDescriptors.create
The equivalent REST API is:
POST /v3/{parent=projects/*}/metricDescriptors (BODY: metric_descriptor)
UpdateMetricDescriptor Method
UpdateMetricDescriptor
rpc UpdateMetricDescriptor(UpdateMetricDescriptorRequest) returns (MetricDescriptor)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/metricDescriptors.update
The equivalent REST API is:
PUT /v3/{metric_descriptor.name=projects/*/metricDescriptors/*} (BODY: metric_descriptor)
DeleteMetricDescriptor Method
DeleteMetricDescriptor
rpc DeleteMetricDescriptor(DeleteMetricDescriptorRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/metricDescriptors.delete
The equivalent REST API is:
DELETE /v3/{name=projects/*/metricDescriptors/*}
ListMetricDescriptors Method
ListMetricDescriptors
rpc ListMetricDescriptors(ListMetricDescriptorsRequest) returns (ListMetricDescriptorsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/metricDescriptors.list
The equivalent REST API is:
GET /v3/{parent=projects/*}/metricDescriptors
MetricDescriptor Messages
Here is the list of MetricDescriptor resource messages:
MetricDescriptor Message
Name |
Type |
Description |
metadata |
Meta |
Metadata |
name |
string (name of MetricDescriptor) |
The resource name of the metric descriptor. When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [\w./-]{4,128} |
type |
string |
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” |
resource_types |
repeated string |
associated resource_types (also used to infer defaults) examples, devices.edgelq.com/Device, watchdog.edgelq.com/Agent if not set, defaults to “global” resource type. |
labels |
repeated LabelDescriptor |
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. |
metric_kind |
MetricDescriptor.MetricKind |
Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metric_kind and value_type might not be supported. |
value_type |
MetricDescriptor.ValueType |
Whether the measurement is an integer, a floating-point number, etc. Some combinations of metric_kind and value_type might not be supported. |
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 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 |
description |
string |
A detailed description of the metric, which can be used in documentation. |
display_name |
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”. This field is optional but it is recommended to be set for any metrics associated with user-visible concepts, such as Quota. |
metric_descriptor_metadata |
MetricDescriptor.MetricDescriptorMetadata |
Optional. Metadata which can be used to guide usage of the metric. |
distribution_bucket_options |
Distribution.BucketOptions |
Distribution bucketing options - define only when ValueType is Distribution. Used for validating input. |
promoted_label_key_sets |
repeated LabelKeySet |
Promoted Label Key Sets allow defining multiple indexing rules for underlying backend enabling query optimizations. Metric promoted label sets are combined with MonitoredResource promoted label sets and result in PromotedKeySet. |
index_spec |
MetricDescriptor.IndexSpec |
Indexing allows tweaking storage usage by tweaking amount of “duplicate” data with different promotion criteria. It’s important consideration for balancing time series query performance and storage cost. |
storage_config |
MetricDescriptor.StorageConfig |
Storage settings |
Additional annotations that can be used to guide the usage of a metric.
Name |
Type |
Description |
launch_stage |
LaunchStage |
The launch stage of the metric definition. |
MetricDescriptor.IndexSpec Message
MetricDescriptor.StorageConfig Message
Backend storage config
Name |
Type |
Description |
store_raw_points |
bool |
whether to store raw points |
MetricDescriptor.IndexSpec.Index Message
Name |
Type |
Description |
promoted_labels |
repeated string |
each label is of format: {metric,resource}.labels.\<label-key\> . since resource and metric labels are mixed. Full path is required. |
write_only |
bool |
whether this index is write-only and not usable for querying |
MetricDescriptor.IndexSpec.PerMonitoredResource Message
BatchGetMetricDescriptorsRequest Message
A request message of the BatchGetMetricDescriptors method.
Name |
Type |
Description |
names |
repeated string (name of MetricDescriptor) |
Names of MetricDescriptors |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetMetricDescriptorsResponse Message
A response message of the BatchGetMetricDescriptors method.
Name |
Type |
Description |
metric_descriptors |
repeated MetricDescriptor |
found MetricDescriptors |
missing |
repeated string (name of MetricDescriptor) |
list of not found MetricDescriptors |
WatchMetricDescriptorRequest Message
A request message of the WatchMetricDescriptor method.
Name |
Type |
Description |
name |
string (name of MetricDescriptor) |
Name of ntt.monitoring.v3.MetricDescriptor |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchMetricDescriptorResponse Message
A response message of the WatchMetricDescriptor method.
WatchMetricDescriptorsRequest Message
A request message of the WatchMetricDescriptors method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of MetricDescriptor) |
Parent name of ntt.monitoring.v3.MetricDescriptor |
page_size |
int32 |
Requested page size. Server may return fewer MetricDescriptors than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of MetricDescriptor) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of MetricDescriptor) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of MetricDescriptor) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to MetricDescriptor that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to MetricDescriptor that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchMetricDescriptorsResponse Message
A response message of the WatchMetricDescriptors method.
Name |
Type |
Description |
metric_descriptor_changes |
repeated MetricDescriptorChange |
Changes of MetricDescriptors |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All MetricDescriptors will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchMetricDescriptorsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (MetricDescriptors will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchMetricDescriptorsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of MetricDescriptor) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of MetricDescriptor) |
New token to retrieve next page of results. |
GetMetricDescriptorRequest Message
Request message for method
[GetMetricDescriptor][ntt.monitoring.v3.GetMetricDescriptor]
Name |
Type |
Description |
name |
string (name of MetricDescriptor) |
The metric descriptor on which to execute the request. The format is "projects/{project_id_or_number}/metricDescriptors/{metric_id}" . An example value of {metric_id} is "compute.googleapis.com/instance/disk/read_bytes_count" . |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
CreateMetricDescriptorRequest Message
Request message for method
[CreateMetricDescriptor][ntt.monitoring.v3.CreateMetricDescriptor]
CreateMetricDescriptorRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateMetricDescriptorRequest Message
Request message for method
[UpdateMetricDescriptor][ntt.monitoring.v3.UpdateMetricDescriptor]
Name |
Type |
Description |
metric_descriptor |
MetricDescriptor |
MetricDescriptor resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateMetricDescriptorRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateMetricDescriptorRequest.ResponseMask |
|
UpdateMetricDescriptorRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
MetricDescriptor |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateMetricDescriptorRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteMetricDescriptorRequest Message
Request message for method
[DeleteMetricDescriptor][ntt.monitoring.v3.DeleteMetricDescriptor]
Name |
Type |
Description |
name |
string (name of MetricDescriptor) |
The metric descriptor on which to execute the request. The format is "projects/{project_id_or_number}/metricDescriptors/{metric_id}" . An example of {metric_id} is: "custom.googleapis.com/my_test_metric" . |
ListMetricDescriptorsRequest Message
Request message for method
[ListMetricDescriptors][ntt.monitoring.v3.ListMetricDescriptors]
Name |
Type |
Description |
parent |
string (parent name of MetricDescriptor) |
The project on which to execute the request. The format is "projects/{project_id_or_number}" . |
filter |
string (filter of MetricDescriptor) |
If this field is empty, all custom and system-defined metric descriptors are returned. Otherwise, the filter specifies which metric descriptors are to be returned. For example, the following filter matches all custom metrics: metric.type = starts_with(“custom.googleapis.com/”) |
page_size |
int32 |
A positive number that is the maximum number of results to return. |
page_token |
string (cursor of MetricDescriptor) |
If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call. |
order_by |
string (orderBy of MetricDescriptor) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListMetricDescriptorsResponse Message
Response message for method
[ListMetricDescriptors][ntt.monitoring.v3.ListMetricDescriptors]
Name |
Type |
Description |
metric_descriptors |
repeated MetricDescriptor |
The metric descriptors that are available to the project and that match the value of filter , if present. |
next_page_token |
string (cursor of MetricDescriptor) |
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method. |
prev_page_token |
string (cursor of MetricDescriptor) |
|
current_offset |
int32 |
Current offset from the first page (0 if no page tokens were given or paging info was not requested). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total MetricDescriptors across all pages or 0, if there are no items or paging info was not requested. |
MetricDescriptor Enumerations
Here is the list of MetricDescriptor resource enumerations:
MetricDescriptor.MetricKind Enumeration
The kind of measurement. It describes how the data is reported.
Name |
Description |
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. |
MetricDescriptor.ValueType Enumeration
The value type of a metric.
Name |
Description |
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 ][google.api.Distribution]. |
MONEY |
The value is money. |
MonitoredResourceDescriptor Resource
An object that describes the schema of a
[MonitoredResource][google.api.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.
Name patterns:
monitoredResourceDescriptors/{monitored_resource_descriptor}
This section covers the methods
and messages to interact
with MonitoredResourceDescriptor resource.
MonitoredResourceDescriptor Methods
Here is the list of MonitoredResourceDescriptor resource methods:
BatchGetMonitoredResourceDescriptors Method
BatchGetMonitoredResourceDescriptors
rpc BatchGetMonitoredResourceDescriptors(BatchGetMonitoredResourceDescriptorsRequest) returns (BatchGetMonitoredResourceDescriptorsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/monitoredResourceDescriptors.batchGet
The equivalent REST API is:
GET /v3/monitoredResourceDescriptors:batchGet
WatchMonitoredResourceDescriptor Method
WatchMonitoredResourceDescriptor
rpc WatchMonitoredResourceDescriptor(WatchMonitoredResourceDescriptorRequest) returns (WatchMonitoredResourceDescriptorResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/monitoredResourceDescriptors.watch
The equivalent REST API is:
POST /v3/{name=monitoredResourceDescriptors/*}:watch
WatchMonitoredResourceDescriptors Method
WatchMonitoredResourceDescriptors
rpc WatchMonitoredResourceDescriptors(WatchMonitoredResourceDescriptorsRequest) returns (WatchMonitoredResourceDescriptorsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/monitoredResourceDescriptors.watch
The equivalent REST API is:
POST /v3/monitoredResourceDescriptors:watch
CreateMonitoredResourceDescriptor Method
CreateMonitoredResourceDescriptor
rpc CreateMonitoredResourceDescriptor(CreateMonitoredResourceDescriptorRequest) returns (MonitoredResourceDescriptor)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/monitoredResourceDescriptors.create
The equivalent REST API is:
POST /v3/monitoredResourceDescriptors (BODY: monitored_resource_descriptor)
UpdateMonitoredResourceDescriptor Method
UpdateMonitoredResourceDescriptor
rpc UpdateMonitoredResourceDescriptor(UpdateMonitoredResourceDescriptorRequest) returns (MonitoredResourceDescriptor)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/monitoredResourceDescriptors.update
The equivalent REST API is:
PUT /v3/{monitored_resource_descriptor.name=monitoredResourceDescriptors/*} (BODY: monitored_resource_descriptor)
DeleteMonitoredResourceDescriptor Method
DeleteMonitoredResourceDescriptor
rpc DeleteMonitoredResourceDescriptor(DeleteMonitoredResourceDescriptorRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/monitoredResourceDescriptors.delete
The equivalent REST API is:
DELETE /v3/{name=monitoredResourceDescriptors/*}
GetMonitoredResourceDescriptor Method
GetMonitoredResourceDescriptor
rpc GetMonitoredResourceDescriptor(GetMonitoredResourceDescriptorRequest) returns (MonitoredResourceDescriptor)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/monitoredResourceDescriptors.get
The equivalent REST API is:
GET /v3/{name=monitoredResourceDescriptors/*}
ListMonitoredResourceDescriptors Method
ListMonitoredResourceDescriptors
rpc ListMonitoredResourceDescriptors(ListMonitoredResourceDescriptorsRequest) returns (ListMonitoredResourceDescriptorsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/monitoredResourceDescriptors.list
The equivalent REST API is:
GET /v3/monitoredResourceDescriptors
MonitoredResourceDescriptor Messages
Here is the list of MonitoredResourceDescriptor resource messages:
MonitoredResourceDescriptor Message
Name |
Type |
Description |
name |
string (name of MonitoredResourceDescriptor) |
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}" . NOTE: currently only "monitoredResourceDescriptors/{type}" form is supported. |
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. |
display_name |
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 |
repeated LabelDescriptor |
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" . |
promoted_label_key_sets |
repeated LabelKeySet |
Promoted Label Key Sets allow defining multiple indexing rules for underlying backend enabling query optimizations. Metric promoted label sets are combined with MonitoredResource promoted label sets and result in PromotedKeySet. |
metadata |
Meta |
Metadata |
BatchGetMonitoredResourceDescriptorsRequest Message
A request message of the BatchGetMonitoredResourceDescriptors method.
Name |
Type |
Description |
names |
repeated string (name of MonitoredResourceDescriptor) |
Names of MonitoredResourceDescriptors |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetMonitoredResourceDescriptorsResponse Message
A response message of the BatchGetMonitoredResourceDescriptors method.
WatchMonitoredResourceDescriptorRequest Message
A request message of the WatchMonitoredResourceDescriptor method.
Name |
Type |
Description |
name |
string (name of MonitoredResourceDescriptor) |
Name of ntt.monitoring.v3.MonitoredResourceDescriptor |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchMonitoredResourceDescriptorResponse Message
A response message of the WatchMonitoredResourceDescriptor method.
WatchMonitoredResourceDescriptorsRequest Message
A request message of the WatchMonitoredResourceDescriptors method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
page_size |
int32 |
Requested page size. Server may return fewer MonitoredResourceDescriptors than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of MonitoredResourceDescriptor) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of MonitoredResourceDescriptor) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of MonitoredResourceDescriptor) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to MonitoredResourceDescriptor that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to MonitoredResourceDescriptor that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchMonitoredResourceDescriptorsResponse Message
A response message of the WatchMonitoredResourceDescriptors method.
Name |
Type |
Description |
monitored_resource_descriptor_changes |
repeated MonitoredResourceDescriptorChange |
Changes of MonitoredResourceDescriptors |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All MonitoredResourceDescriptors will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchMonitoredResourceDescriptorsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (MonitoredResourceDescriptors will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchMonitoredResourceDescriptorsResponse.PageTokenChange Message
CreateMonitoredResourceDescriptorRequest Message
A request message of the CreateMonitoredResourceDescriptor method.
CreateMonitoredResourceDescriptorRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateMonitoredResourceDescriptorRequest Message
A request message of the UpdateMonitoredResourceDescriptor method.
Name |
Type |
Description |
monitored_resource_descriptor |
MonitoredResourceDescriptor |
MonitoredResourceDescriptor resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateMonitoredResourceDescriptorRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateMonitoredResourceDescriptorRequest.ResponseMask |
reduce message response size. |
UpdateMonitoredResourceDescriptorRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
MonitoredResourceDescriptor |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateMonitoredResourceDescriptorRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteMonitoredResourceDescriptorRequest Message
A request message of the DeleteMonitoredResourceDescriptor method.
GetMonitoredResourceDescriptorRequest Message
Request message for method
[GetMonitoredResourceDescriptor][ntt.monitoring.v3.GetMonitoredResourceDescriptor]
Name |
Type |
Description |
name |
string (name of MonitoredResourceDescriptor) |
The monitored resource descriptor to get. The format is "monitoredResourceDescriptors/{resource_type}" . The {resource_type} is a predefined type, such as cloudsql_database . |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
ListMonitoredResourceDescriptorsRequest Message
Request message for method
[ListMonitoredResourceDescriptors][ntt.monitoring.v3.ListMonitoredResourceDescriptors]
Name |
Type |
Description |
filter |
string (filter of MonitoredResourceDescriptor) |
An optional filter describing the descriptors to be returned. The filter can reference the descriptor’s type and labels. For example, the following filter returns only Google Compute Engine descriptors that have an id label: resource.type = starts_with(“gce_”) AND resource.label:id |
page_size |
int32 |
A positive number that is the maximum number of results to return. |
order_by |
string (orderBy of MonitoredResourceDescriptor) |
|
page_token |
string (cursor of MonitoredResourceDescriptor) |
If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call. |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListMonitoredResourceDescriptorsResponse Message
Response message for method
[ListMonitoredResourceDescriptors][ntt.monitoring.v3.ListMonitoredResourceDescriptors]
Name |
Type |
Description |
monitored_resource_descriptors |
repeated MonitoredResourceDescriptor |
The monitored resource descriptors that are available to this project and that match filter , if present. |
next_page_token |
string (cursor of MonitoredResourceDescriptor) |
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method. |
prev_page_token |
string (cursor of MonitoredResourceDescriptor) |
|
current_offset |
int32 |
Current offset from the first page (0 if no page tokens were given or paging info was not requested). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total MonitoresResourceDescriptors across all pages or 0, if there are no items or paging info was not requested. |
Notification Resource
Notification Resource
Name patterns:
projects/{project}/regions/{region}/alertingPolicies/{alerting_policy}/notifications/{notification}
Parent resources:
This section covers the methods
and messages to interact
with Notification resource.
Notification Methods
Here is the list of Notification resource methods:
GetNotification Method
GetNotification
rpc GetNotification(GetNotificationRequest) returns (Notification)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notifications.get
The equivalent REST API is:
GET /v3/{name=projects/*/regions/*/alertingPolicies/*/notifications/*}
BatchGetNotifications Method
BatchGetNotifications
rpc BatchGetNotifications(BatchGetNotificationsRequest) returns (BatchGetNotificationsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notifications.batchGet
The equivalent REST API is:
GET /v3/notifications:batchGet
ListNotifications Method
ListNotifications
rpc ListNotifications(ListNotificationsRequest) returns (ListNotificationsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notifications.list
The equivalent REST API is:
GET /v3/{parent=projects/*/regions/*/alertingPolicies/*}/notifications
WatchNotification Method
WatchNotification
rpc WatchNotification(WatchNotificationRequest) returns (WatchNotificationResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notifications.watch
The equivalent REST API is:
POST /v3/{name=projects/*/regions/*/alertingPolicies/*/notifications/*}:watch
WatchNotifications Method
WatchNotifications
rpc WatchNotifications(WatchNotificationsRequest) returns (WatchNotificationsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notifications.watch
The equivalent REST API is:
POST /v3/{parent=projects/*/regions/*/alertingPolicies/*}/notifications:watch
CreateNotification Method
CreateNotification
rpc CreateNotification(CreateNotificationRequest) returns (Notification)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notifications.create
The equivalent REST API is:
POST /v3/{parent=projects/*/regions/*/alertingPolicies/*}/notifications (BODY: notification)
UpdateNotification Method
UpdateNotification
rpc UpdateNotification(UpdateNotificationRequest) returns (Notification)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notifications.update
The equivalent REST API is:
PUT /v3/{notification.name=projects/*/regions/*/alertingPolicies/*/notifications/*} (BODY: notification)
DeleteNotification Method
DeleteNotification
rpc DeleteNotification(DeleteNotificationRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notifications.delete
The equivalent REST API is:
DELETE /v3/{name=projects/*/regions/*/alertingPolicies/*/notifications/*}
Notification Messages
Here is the list of Notification resource messages:
Notification Message
Name |
Type |
Description |
name |
string (name of Notification) |
Name of Notification When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.:-]{1,128} |
metadata |
Meta |
|
alerting_policy |
string (name of AlertingPolicy) |
Reference to alerting policy that this notification is for |
alerts |
repeated string (name of Alert) |
References to alerts that are part of this notification |
state |
Notification.State |
|
Notification.State Message
Name |
Type |
Description |
is_resolved |
bool |
|
notification_state |
repeated Notification.State.NotificationState |
Notification state |
incident_notify_attempts_done |
bool |
Internal state to keep track of whether any notification sends needs to be retried for new incident |
resolution_notify_attempts_done |
bool |
Internal state to keep track of whether any notification sends needs to be retried for resolution |
alerts_lifetime |
TimeRange |
Time range for which alerts for the policy are clubbed together |
resolution_notification_state |
repeated Notification.State.NotificationState |
|
lifecycle_completed |
bool |
Alert has ended and any needed notifications are processed |
Notification.State.NotificationState Message
Notification.State.NotificationState.ProviderData Message
Provider specific data
Notification.State.NotificationState.ProviderData.Slack Message
Slack
Name |
Type |
Description |
ts |
string |
|
Pager Duty
Name |
Type |
Description |
incident_key |
string |
|
GetNotificationRequest Message
A request message of the GetNotification method.
Name |
Type |
Description |
name |
string (name of Notification) |
Name of ntt.monitoring.v3.Notification |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetNotificationsRequest Message
A request message of the BatchGetNotifications method.
Name |
Type |
Description |
names |
repeated string (name of Notification) |
Names of Notifications |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetNotificationsResponse Message
A response message of the BatchGetNotifications method.
Name |
Type |
Description |
notifications |
repeated Notification |
found Notifications |
missing |
repeated string (name of Notification) |
list of not found Notifications |
ListNotificationsRequest Message
A request message of the ListNotifications method.
Name |
Type |
Description |
parent |
string (parent name of Notification) |
Parent name of ntt.monitoring.v3.Notification |
page_size |
int32 |
Requested page size. Server may return fewer Notifications than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of Notification) |
A token identifying a page of results the server should return. Typically, this is the value of ListNotificationsResponse.next_page_token. |
order_by |
string (orderBy of Notification) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of Notification) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListNotificationsResponse Message
A response message of the ListNotifications method.
Name |
Type |
Description |
notifications |
repeated Notification |
The list of Notifications |
prev_page_token |
string (cursor of Notification) |
A token to retrieve previous page of results. Pass this value in the ListNotificationsRequest.page_token. |
next_page_token |
string (cursor of Notification) |
A token to retrieve next page of results. Pass this value in the ListNotificationsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total Notifications across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchNotificationRequest Message
A request message of the WatchNotification method.
Name |
Type |
Description |
name |
string (name of Notification) |
Name of ntt.monitoring.v3.Notification |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchNotificationResponse Message
A response message of the WatchNotification method.
WatchNotificationsRequest Message
A request message of the WatchNotifications method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of Notification) |
Parent name of ntt.monitoring.v3.Notification |
page_size |
int32 |
Requested page size. Server may return fewer Notifications than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of Notification) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of Notification) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of Notification) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Notification that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Notification that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchNotificationsResponse Message
A response message of the WatchNotifications method.
Name |
Type |
Description |
notification_changes |
repeated NotificationChange |
Changes of Notifications |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Notifications will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchNotificationsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Notifications will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchNotificationsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of Notification) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of Notification) |
New token to retrieve next page of results. |
CreateNotificationRequest Message
A request message of the CreateNotification method.
CreateNotificationRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateNotificationRequest Message
A request message of the UpdateNotification method.
Name |
Type |
Description |
notification |
Notification |
Notification resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateNotificationRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateNotificationRequest.ResponseMask |
reduce message response size. |
UpdateNotificationRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
Notification |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateNotificationRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteNotificationRequest Message
A request message of the DeleteNotification method.
Name |
Type |
Description |
name |
string (name of Notification) |
Name of ntt.monitoring.v3.Notification |
Notification Enumerations
Here is the list of Notification resource enumerations:
Notification.State.NotificationState.Status Enumeration
Name |
Description |
UNKNOWN |
|
PENDING |
|
FAILED |
|
SUPPRESSED |
|
SENT |
|
DELIVERED |
Status types that can be used by webhook integrated providers, like PagerDuty. |
ACKNOWLEDGED |
|
UNACKNOWLEDGED |
|
NotificationChannel Resource
NotificationChannel Resource
Name patterns:
projects/{project}/notificationChannels/{notification_channel}
Parent resources:
This section covers the methods
and messages to interact
with NotificationChannel resource.
NotificationChannel Methods
Here is the list of NotificationChannel resource methods:
GetNotificationChannel Method
GetNotificationChannel
rpc GetNotificationChannel(GetNotificationChannelRequest) returns (NotificationChannel)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.get
The equivalent REST API is:
GET /v3/{name=projects/*/notificationChannels/*}
BatchGetNotificationChannels Method
BatchGetNotificationChannels
rpc BatchGetNotificationChannels(BatchGetNotificationChannelsRequest) returns (BatchGetNotificationChannelsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.batchGet
The equivalent REST API is:
GET /v3/notificationChannels:batchGet
ListNotificationChannels Method
ListNotificationChannels
rpc ListNotificationChannels(ListNotificationChannelsRequest) returns (ListNotificationChannelsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.list
The equivalent REST API is:
GET /v3/{parent=projects/*}/notificationChannels
WatchNotificationChannel Method
WatchNotificationChannel
rpc WatchNotificationChannel(WatchNotificationChannelRequest) returns (WatchNotificationChannelResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.watch
The equivalent REST API is:
POST /v3/{name=projects/*/notificationChannels/*}:watch
WatchNotificationChannels Method
WatchNotificationChannels
rpc WatchNotificationChannels(WatchNotificationChannelsRequest) returns (WatchNotificationChannelsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.watch
The equivalent REST API is:
POST /v3/{parent=projects/*}/notificationChannels:watch
CreateNotificationChannel Method
CreateNotificationChannel
rpc CreateNotificationChannel(CreateNotificationChannelRequest) returns (NotificationChannel)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.create
The equivalent REST API is:
POST /v3/{parent=projects/*}/notificationChannels (BODY: notification_channel)
UpdateNotificationChannel Method
UpdateNotificationChannel
rpc UpdateNotificationChannel(UpdateNotificationChannelRequest) returns (NotificationChannel)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.update
The equivalent REST API is:
PUT /v3/{notification_channel.name=projects/*/notificationChannels/*} (BODY: notification_channel)
DeleteNotificationChannel Method
DeleteNotificationChannel
rpc DeleteNotificationChannel(DeleteNotificationChannelRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.delete
The equivalent REST API is:
DELETE /v3/{name=projects/*/notificationChannels/*}
TestNotificationChannel Method
TestNotificationChannel
rpc TestNotificationChannel(TestNotificationChannelRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.test
The equivalent REST API is:
POST /v3/{name=projects/*/notificationChannels/*}:test
NotificationChannel Messages
Here is the list of NotificationChannel resource messages:
NotificationChannel Message
Name |
Type |
Description |
name |
string (name of NotificationChannel) |
Name of NotificationChannel When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9-]{0,28}[a-z0-9] |
metadata |
Meta |
Metadata of NotificationChannel |
display_name |
string |
Display Name |
spec |
NotificationChannel.Spec |
Specification |
state |
NotificationChannel.State |
State |
description |
string |
description |
NotificationChannel.Spec Message
Spec of NotificationChannel
NotificationChannel.State Message
State of NotificationChannel
NotificationChannel.Spec.Email Message
Email Spec
Name |
Type |
Description |
addresses |
repeated string |
Email Addresses |
NotificationChannel.Spec.Slack Message
Slack Spec
Name |
Type |
Description |
incoming_webhook |
string |
Slack Incoming Webhook URL |
PagerDuty Spec
Name |
Type |
Description |
service_key |
string |
PagerDuty Service Key |
NotificationChannel.Spec.Webhook Message
Webhook Spec
Header
Name |
Type |
Description |
key |
string |
|
value |
string |
|
NotificationChannel.State.Error Message
Error of NotificationChannel
Name |
Type |
Description |
time |
.google.protobuf.Timestamp |
|
message |
string |
|
GetNotificationChannelRequest Message
A request message of the GetNotificationChannel method.
Name |
Type |
Description |
name |
string (name of NotificationChannel) |
Name of ntt.monitoring.v3.NotificationChannel |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetNotificationChannelsRequest Message
A request message of the BatchGetNotificationChannels method.
Name |
Type |
Description |
names |
repeated string (name of NotificationChannel) |
Names of NotificationChannels |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetNotificationChannelsResponse Message
A response message of the BatchGetNotificationChannels method.
Name |
Type |
Description |
notification_channels |
repeated NotificationChannel |
found NotificationChannels |
missing |
repeated string (name of NotificationChannel) |
list of not found NotificationChannels |
ListNotificationChannelsRequest Message
A request message of the ListNotificationChannels method.
Name |
Type |
Description |
parent |
string (parent name of NotificationChannel) |
Parent name of ntt.monitoring.v3.NotificationChannel |
page_size |
int32 |
Requested page size. Server may return fewer NotificationChannels than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of NotificationChannel) |
A token identifying a page of results the server should return. Typically, this is the value of ListNotificationChannelsResponse.next_page_token. |
order_by |
string (orderBy of NotificationChannel) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of NotificationChannel) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListNotificationChannelsResponse Message
A response message of the ListNotificationChannels method.
Name |
Type |
Description |
notification_channels |
repeated NotificationChannel |
The list of NotificationChannels |
prev_page_token |
string (cursor of NotificationChannel) |
A token to retrieve previous page of results. Pass this value in the ListNotificationChannelsRequest.page_token. |
next_page_token |
string (cursor of NotificationChannel) |
A token to retrieve next page of results. Pass this value in the ListNotificationChannelsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total NotificationChannels across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchNotificationChannelRequest Message
A request message of the WatchNotificationChannel method.
Name |
Type |
Description |
name |
string (name of NotificationChannel) |
Name of ntt.monitoring.v3.NotificationChannel |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchNotificationChannelResponse Message
A response message of the WatchNotificationChannel method.
WatchNotificationChannelsRequest Message
A request message of the WatchNotificationChannels method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of NotificationChannel) |
Parent name of ntt.monitoring.v3.NotificationChannel |
page_size |
int32 |
Requested page size. Server may return fewer NotificationChannels than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of NotificationChannel) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of NotificationChannel) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of NotificationChannel) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to NotificationChannel that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to NotificationChannel that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchNotificationChannelsResponse Message
A response message of the WatchNotificationChannels method.
Name |
Type |
Description |
notification_channel_changes |
repeated NotificationChannelChange |
Changes of NotificationChannels |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All NotificationChannels will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchNotificationChannelsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (NotificationChannels will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchNotificationChannelsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of NotificationChannel) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of NotificationChannel) |
New token to retrieve next page of results. |
CreateNotificationChannelRequest Message
A request message of the CreateNotificationChannel method.
CreateNotificationChannelRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateNotificationChannelRequest Message
A request message of the UpdateNotificationChannel method.
Name |
Type |
Description |
notification_channel |
NotificationChannel |
NotificationChannel resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateNotificationChannelRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateNotificationChannelRequest.ResponseMask |
reduce message response size. |
UpdateNotificationChannelRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
NotificationChannel |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateNotificationChannelRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteNotificationChannelRequest Message
A request message of the DeleteNotificationChannel method.
Name |
Type |
Description |
name |
string (name of NotificationChannel) |
Name of ntt.monitoring.v3.NotificationChannel |
TestNotificationChannelRequest Message
Request message for method
[TestNotificationChannel][ntt.monitoring.v3.TestNotificationChannel]
Name |
Type |
Description |
name |
string (name of NotificationChannel) |
name of ntt.monitoring.v3.NotificationChannel |
NotificationChannel Enumerations
Here is the list of NotificationChannel resource enumerations:
NotificationChannel.Spec.Type Enumeration
Type of NotificationChannel
Name |
Description |
TYPE_UNSPECIFIED |
Type is unknown |
EMAIL |
Email NotificationChannel |
SLACK |
Slack NotificationChannel |
WEBHOOK |
Webhook NotificationChannel |
NotificationChannel.State.Status Enumeration
State of NotificationChannel
Name |
Description |
STATE_UNSPECIFIED |
State is unknown |
ACTIVE |
NotificationChannel is active |
DISABLED |
NotificationChannel is disabled |
ERROR |
Error of NotificationChannel |
PhantomTimeSerie Resource
PhantomTimeSerie generates data in absence of real data
Name patterns:
projects/{project}/regions/{region}/phantomTimeSeries/{phantom_time_serie}
Parent resources:
This section covers the methods
and messages to interact
with PhantomTimeSerie resource.
PhantomTimeSerie Methods
Here is the list of PhantomTimeSerie resource methods:
GetPhantomTimeSerie Method
GetPhantomTimeSerie
rpc GetPhantomTimeSerie(GetPhantomTimeSerieRequest) returns (PhantomTimeSerie)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/phantomTimeSeries.get
The equivalent REST API is:
GET /v3/{name=projects/*/regions/*/phantomTimeSeries/*}
BatchGetPhantomTimeSeries Method
BatchGetPhantomTimeSeries
rpc BatchGetPhantomTimeSeries(BatchGetPhantomTimeSeriesRequest) returns (BatchGetPhantomTimeSeriesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/phantomTimeSeries.batchGet
The equivalent REST API is:
GET /v3/phantomTimeSeries:batchGet
ListPhantomTimeSeries Method
ListPhantomTimeSeries
rpc ListPhantomTimeSeries(ListPhantomTimeSeriesRequest) returns (ListPhantomTimeSeriesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/phantomTimeSeries.list
The equivalent REST API is:
GET /v3/{parent=projects/*/regions/*}/phantomTimeSeries
WatchPhantomTimeSerie Method
WatchPhantomTimeSerie
rpc WatchPhantomTimeSerie(WatchPhantomTimeSerieRequest) returns (WatchPhantomTimeSerieResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/phantomTimeSeries.watch
The equivalent REST API is:
POST /v3/{name=projects/*/regions/*/phantomTimeSeries/*}:watch
WatchPhantomTimeSeries Method
WatchPhantomTimeSeries
rpc WatchPhantomTimeSeries(WatchPhantomTimeSeriesRequest) returns (WatchPhantomTimeSeriesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/phantomTimeSeries.watch
The equivalent REST API is:
POST /v3/{parent=projects/*/regions/*}/phantomTimeSeries:watch
CreatePhantomTimeSerie Method
CreatePhantomTimeSerie
rpc CreatePhantomTimeSerie(CreatePhantomTimeSerieRequest) returns (PhantomTimeSerie)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/phantomTimeSeries.create
The equivalent REST API is:
POST /v3/{parent=projects/*/regions/*}/phantomTimeSeries (BODY: phantom_time_serie)
UpdatePhantomTimeSerie Method
UpdatePhantomTimeSerie
rpc UpdatePhantomTimeSerie(UpdatePhantomTimeSerieRequest) returns (PhantomTimeSerie)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/phantomTimeSeries.update
The equivalent REST API is:
PUT /v3/{phantom_time_serie.name=projects/*/regions/*/phantomTimeSeries/*} (BODY: phantom_time_serie)
DeletePhantomTimeSerie Method
DeletePhantomTimeSerie
rpc DeletePhantomTimeSerie(DeletePhantomTimeSerieRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/phantomTimeSeries.delete
The equivalent REST API is:
DELETE /v3/{name=projects/*/regions/*/phantomTimeSeries/*}
PhantomTimeSerie Messages
Here is the list of PhantomTimeSerie resource messages:
PhantomTimeSerie Message
Name |
Type |
Description |
metadata |
Meta |
Common resource Metadata |
name |
string (name of PhantomTimeSerie) |
Name of PhantomTimeSeries Name must contain base64 encoded string of TimeSeries key |
key |
bytes |
TimeSerie key identifies unique TimeSeries tuple: <project, metric.type, metric.labels, resource.type, resource.labels> Kind/ValueType are not present in key Key is not to be decoded outside of service, but treated as opaque string |
project |
string |
Internal use - for bulk reporting of TimeSeries |
metric |
Metric |
The associated metric. A fully-specified metric used to identify the time series. This field cannot be updated, can be only set during creation. |
resource |
MonitoredResource |
The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data. This field cannot be updated, can be only set during creation. |
metric_kind |
MetricDescriptor.MetricKind |
The metric kind of the time series. When listing time series, this metric kind might be different from the metric kind of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the metric kind of the associated metric. If the associated metric’s descriptor must be auto-created, then this field specifies the metric kind of the new descriptor and must be either GAUGE (the default) or CUMULATIVE . |
value_type |
MetricDescriptor.ValueType |
The value type of the time series. When listing time series, this value type might be different from the value type of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the type of the data in the points field. |
value |
TypedValue |
Phantom value |
GetPhantomTimeSerieRequest Message
A request message of the GetPhantomTimeSerie method.
Name |
Type |
Description |
name |
string (name of PhantomTimeSerie) |
Name of ntt.monitoring.v3.PhantomTimeSerie |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetPhantomTimeSeriesRequest Message
A request message of the BatchGetPhantomTimeSeries method.
Name |
Type |
Description |
names |
repeated string (name of PhantomTimeSerie) |
Names of PhantomTimeSeries |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetPhantomTimeSeriesResponse Message
A response message of the BatchGetPhantomTimeSeries method.
Name |
Type |
Description |
phantom_time_series |
repeated PhantomTimeSerie |
found PhantomTimeSeries |
missing |
repeated string (name of PhantomTimeSerie) |
list of not found PhantomTimeSeries |
ListPhantomTimeSeriesRequest Message
A request message of the ListPhantomTimeSeries method.
Name |
Type |
Description |
parent |
string (parent name of PhantomTimeSerie) |
Parent name of ntt.monitoring.v3.PhantomTimeSerie |
page_size |
int32 |
Requested page size. Server may return fewer PhantomTimeSeries than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of PhantomTimeSerie) |
A token identifying a page of results the server should return. Typically, this is the value of ListPhantomTimeSeriesResponse.next_page_token. |
order_by |
string (orderBy of PhantomTimeSerie) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of PhantomTimeSerie) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListPhantomTimeSeriesResponse Message
A response message of the ListPhantomTimeSeries method.
Name |
Type |
Description |
phantom_time_series |
repeated PhantomTimeSerie |
The list of PhantomTimeSeries |
prev_page_token |
string (cursor of PhantomTimeSerie) |
A token to retrieve previous page of results. Pass this value in the ListPhantomTimeSeriesRequest.page_token. |
next_page_token |
string (cursor of PhantomTimeSerie) |
A token to retrieve next page of results. Pass this value in the ListPhantomTimeSeriesRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total PhantomTimeSeries across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchPhantomTimeSerieRequest Message
A request message of the WatchPhantomTimeSerie method.
Name |
Type |
Description |
name |
string (name of PhantomTimeSerie) |
Name of ntt.monitoring.v3.PhantomTimeSerie |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchPhantomTimeSerieResponse Message
A response message of the WatchPhantomTimeSerie method.
WatchPhantomTimeSeriesRequest Message
A request message of the WatchPhantomTimeSeries method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of PhantomTimeSerie) |
Parent name of ntt.monitoring.v3.PhantomTimeSerie |
page_size |
int32 |
Requested page size. Server may return fewer PhantomTimeSeries than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of PhantomTimeSerie) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of PhantomTimeSerie) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of PhantomTimeSerie) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to PhantomTimeSerie that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to PhantomTimeSerie that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchPhantomTimeSeriesResponse Message
A response message of the WatchPhantomTimeSeries method.
Name |
Type |
Description |
phantom_time_serie_changes |
repeated PhantomTimeSerieChange |
Changes of PhantomTimeSeries |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All PhantomTimeSeries will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchPhantomTimeSeriesResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (PhantomTimeSeries will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchPhantomTimeSeriesResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of PhantomTimeSerie) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of PhantomTimeSerie) |
New token to retrieve next page of results. |
CreatePhantomTimeSerieRequest Message
A request message of the CreatePhantomTimeSerie method.
CreatePhantomTimeSerieRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdatePhantomTimeSerieRequest Message
A request message of the UpdatePhantomTimeSerie method.
Name |
Type |
Description |
phantom_time_serie |
PhantomTimeSerie |
PhantomTimeSerie resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdatePhantomTimeSerieRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdatePhantomTimeSerieRequest.ResponseMask |
reduce message response size. |
UpdatePhantomTimeSerieRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
PhantomTimeSerie |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdatePhantomTimeSerieRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeletePhantomTimeSerieRequest Message
A request message of the DeletePhantomTimeSerie method.
Name |
Type |
Description |
name |
string (name of PhantomTimeSerie) |
Name of ntt.monitoring.v3.PhantomTimeSerie |
Project Resource
Project Resource
Name patterns:
This section covers the methods
and messages to interact
with Project resource.
Project Methods
Here is the list of Project resource methods:
GetProject Method
GetProject
rpc GetProject(GetProjectRequest) returns (Project)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/projects.get
The equivalent REST API is:
GET /v3/{name=projects/*}
BatchGetProjects Method
BatchGetProjects
rpc BatchGetProjects(BatchGetProjectsRequest) returns (BatchGetProjectsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/projects.batchGet
The equivalent REST API is:
GET /v3/projects:batchGet
ListProjects Method
ListProjects
rpc ListProjects(ListProjectsRequest) returns (ListProjectsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/projects.list
The equivalent REST API is:
WatchProject Method
WatchProject
rpc WatchProject(WatchProjectRequest) returns (WatchProjectResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/projects.watch
The equivalent REST API is:
POST /v3/{name=projects/*}:watch
WatchProjects Method
WatchProjects
rpc WatchProjects(WatchProjectsRequest) returns (WatchProjectsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/projects.watch
The equivalent REST API is:
CreateProject Method
CreateProject
rpc CreateProject(CreateProjectRequest) returns (Project)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/projects.create
The equivalent REST API is:
POST /v3/projects (BODY: project)
UpdateProject Method
UpdateProject
rpc UpdateProject(UpdateProjectRequest) returns (Project)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/projects.update
The equivalent REST API is:
PUT /v3/{project.name=projects/*} (BODY: project)
DeleteProject Method
DeleteProject
rpc DeleteProject(DeleteProjectRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/projects.delete
The equivalent REST API is:
DELETE /v3/{name=projects/*}
Project Messages
Here is the list of Project resource messages:
Project Message
Name |
Type |
Description |
name |
string (name of Project) |
Name of Project When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9-]{0,28}[a-z0-9] |
title |
string |
|
metadata |
Meta |
metadata |
multi_region_policy |
MultiRegionPolicy |
Multi region policy |
GetProjectRequest Message
A request message of the GetProject method.
Name |
Type |
Description |
name |
string (name of Project) |
Name of ntt.monitoring.v3.Project |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetProjectsRequest Message
A request message of the BatchGetProjects method.
Name |
Type |
Description |
names |
repeated string (name of Project) |
Names of Projects |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetProjectsResponse Message
A response message of the BatchGetProjects method.
Name |
Type |
Description |
projects |
repeated Project |
found Projects |
missing |
repeated string (name of Project) |
list of not found Projects |
ListProjectsRequest Message
A request message of the ListProjects method.
Name |
Type |
Description |
page_size |
int32 |
Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of Project) |
A token identifying a page of results the server should return. Typically, this is the value of ListProjectsResponse.next_page_token. |
order_by |
string (orderBy of Project) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of Project) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListProjectsResponse Message
A response message of the ListProjects method.
Name |
Type |
Description |
projects |
repeated Project |
The list of Projects |
prev_page_token |
string (cursor of Project) |
A token to retrieve previous page of results. Pass this value in the ListProjectsRequest.page_token. |
next_page_token |
string (cursor of Project) |
A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total Projects across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchProjectRequest Message
A request message of the WatchProject method.
Name |
Type |
Description |
name |
string (name of Project) |
Name of ntt.monitoring.v3.Project |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchProjectResponse Message
A response message of the WatchProject method.
WatchProjectsRequest Message
A request message of the WatchProjects method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
page_size |
int32 |
Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of Project) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of Project) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of Project) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Project that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Project that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchProjectsResponse Message
A response message of the WatchProjects method.
Name |
Type |
Description |
project_changes |
repeated ProjectChange |
Changes of Projects |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Projects will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchProjectsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Projects will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchProjectsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of Project) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of Project) |
New token to retrieve next page of results. |
CreateProjectRequest Message
A request message of the CreateProject method.
CreateProjectRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateProjectRequest Message
A request message of the UpdateProject method.
Name |
Type |
Description |
project |
Project |
Project resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateProjectRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateProjectRequest.ResponseMask |
reduce message response size. |
UpdateProjectRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
Project |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateProjectRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteProjectRequest Message
A request message of the DeleteProject method.
Name |
Type |
Description |
name |
string (name of Project) |
Name of ntt.monitoring.v3.Project |
RecoveryStoreShardingInfo Resource
RecoveryStoreShardingInfo Resource
Name patterns:
regions/{region}/recoveryStoreShardingInfos/{recovery_store_sharding_info}
This section covers the methods
and messages to interact
with RecoveryStoreShardingInfo resource.
RecoveryStoreShardingInfo Methods
Here is the list of RecoveryStoreShardingInfo resource methods:
GetRecoveryStoreShardingInfo Method
GetRecoveryStoreShardingInfo
rpc GetRecoveryStoreShardingInfo(GetRecoveryStoreShardingInfoRequest) returns (RecoveryStoreShardingInfo)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/recoveryStoreShardingInfos.get
The equivalent REST API is:
GET /v3/{name=regions/*/recoveryStoreShardingInfos/*}
BatchGetRecoveryStoreShardingInfos Method
BatchGetRecoveryStoreShardingInfos
rpc BatchGetRecoveryStoreShardingInfos(BatchGetRecoveryStoreShardingInfosRequest) returns (BatchGetRecoveryStoreShardingInfosResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/recoveryStoreShardingInfos.batchGet
The equivalent REST API is:
GET /v3/recoveryStoreShardingInfos:batchGet
ListRecoveryStoreShardingInfos Method
ListRecoveryStoreShardingInfos
rpc ListRecoveryStoreShardingInfos(ListRecoveryStoreShardingInfosRequest) returns (ListRecoveryStoreShardingInfosResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/recoveryStoreShardingInfos.list
The equivalent REST API is:
GET /v3/{parent=regions/*}/recoveryStoreShardingInfos
WatchRecoveryStoreShardingInfo Method
WatchRecoveryStoreShardingInfo
rpc WatchRecoveryStoreShardingInfo(WatchRecoveryStoreShardingInfoRequest) returns (WatchRecoveryStoreShardingInfoResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/recoveryStoreShardingInfos.watch
The equivalent REST API is:
POST /v3/{name=regions/*/recoveryStoreShardingInfos/*}:watch
WatchRecoveryStoreShardingInfos Method
WatchRecoveryStoreShardingInfos
rpc WatchRecoveryStoreShardingInfos(WatchRecoveryStoreShardingInfosRequest) returns (WatchRecoveryStoreShardingInfosResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/recoveryStoreShardingInfos.watch
The equivalent REST API is:
POST /v3/{parent=regions/*}/recoveryStoreShardingInfos:watch
CreateRecoveryStoreShardingInfo Method
CreateRecoveryStoreShardingInfo
rpc CreateRecoveryStoreShardingInfo(CreateRecoveryStoreShardingInfoRequest) returns (RecoveryStoreShardingInfo)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/recoveryStoreShardingInfos.create
The equivalent REST API is:
POST /v3/{parent=regions/*}/recoveryStoreShardingInfos (BODY: recovery_store_sharding_info)
UpdateRecoveryStoreShardingInfo Method
UpdateRecoveryStoreShardingInfo
rpc UpdateRecoveryStoreShardingInfo(UpdateRecoveryStoreShardingInfoRequest) returns (RecoveryStoreShardingInfo)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/recoveryStoreShardingInfos.update
The equivalent REST API is:
PUT /v3/{recovery_store_sharding_info.name=regions/*/recoveryStoreShardingInfos/*} (BODY: recovery_store_sharding_info)
DeleteRecoveryStoreShardingInfo Method
DeleteRecoveryStoreShardingInfo
rpc DeleteRecoveryStoreShardingInfo(DeleteRecoveryStoreShardingInfoRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/recoveryStoreShardingInfos.delete
The equivalent REST API is:
DELETE /v3/{name=regions/*/recoveryStoreShardingInfos/*}
RecoveryStoreShardingInfo Messages
Here is the list of RecoveryStoreShardingInfo resource messages:
RecoveryStoreShardingInfo Message
RecoveryStoreShardingInfo.ValidityPeriod Message
Validity period specifies for which period of time this sharding spec is
valid.
Name |
Type |
Description |
start_time |
.google.protobuf.Timestamp |
Start time of validity period. |
end_time |
.google.protobuf.Timestamp |
End time of validity period. |
RecoveryStoreShardingInfo.ShardingSpec Message
Sharding spec defines how time series points is divided across two
dimensions: key (shards_count) and time (ts_blob_period).
Name |
Type |
Description |
ts_blob_period |
.google.protobuf.Duration |
Defines period of time series points in a single blob. |
shards_count |
uint32s |
Number of shards (by key) in given shard period |
GetRecoveryStoreShardingInfoRequest Message
A request message of the GetRecoveryStoreShardingInfo method.
Name |
Type |
Description |
name |
string (name of RecoveryStoreShardingInfo) |
Name of ntt.monitoring.v3.RecoveryStoreShardingInfo |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetRecoveryStoreShardingInfosRequest Message
A request message of the BatchGetRecoveryStoreShardingInfos method.
Name |
Type |
Description |
names |
repeated string (name of RecoveryStoreShardingInfo) |
Names of RecoveryStoreShardingInfos |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetRecoveryStoreShardingInfosResponse Message
A response message of the BatchGetRecoveryStoreShardingInfos method.
ListRecoveryStoreShardingInfosRequest Message
A request message of the ListRecoveryStoreShardingInfos method.
Name |
Type |
Description |
parent |
string (parent name of RecoveryStoreShardingInfo) |
Parent name of ntt.monitoring.v3.RecoveryStoreShardingInfo |
page_size |
int32 |
Requested page size. Server may return fewer RecoveryStoreShardingInfos than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of RecoveryStoreShardingInfo) |
A token identifying a page of results the server should return. Typically, this is the value of ListRecoveryStoreShardingInfosResponse.next_page_token. |
order_by |
string (orderBy of RecoveryStoreShardingInfo) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of RecoveryStoreShardingInfo) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListRecoveryStoreShardingInfosResponse Message
A response message of the ListRecoveryStoreShardingInfos method.
Name |
Type |
Description |
recovery_store_sharding_infos |
repeated RecoveryStoreShardingInfo |
The list of RecoveryStoreShardingInfos |
prev_page_token |
string (cursor of RecoveryStoreShardingInfo) |
A token to retrieve previous page of results. Pass this value in the ListRecoveryStoreShardingInfosRequest.page_token. |
next_page_token |
string (cursor of RecoveryStoreShardingInfo) |
A token to retrieve next page of results. Pass this value in the ListRecoveryStoreShardingInfosRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total RecoveryStoreShardingInfos across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchRecoveryStoreShardingInfoRequest Message
A request message of the WatchRecoveryStoreShardingInfo method.
Name |
Type |
Description |
name |
string (name of RecoveryStoreShardingInfo) |
Name of ntt.monitoring.v3.RecoveryStoreShardingInfo |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchRecoveryStoreShardingInfoResponse Message
A response message of the WatchRecoveryStoreShardingInfo method.
WatchRecoveryStoreShardingInfosRequest Message
A request message of the WatchRecoveryStoreShardingInfos method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of RecoveryStoreShardingInfo) |
Parent name of ntt.monitoring.v3.RecoveryStoreShardingInfo |
page_size |
int32 |
Requested page size. Server may return fewer RecoveryStoreShardingInfos than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of RecoveryStoreShardingInfo) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of RecoveryStoreShardingInfo) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of RecoveryStoreShardingInfo) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to RecoveryStoreShardingInfo that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to RecoveryStoreShardingInfo that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchRecoveryStoreShardingInfosResponse Message
A response message of the WatchRecoveryStoreShardingInfos method.
Name |
Type |
Description |
recovery_store_sharding_info_changes |
repeated RecoveryStoreShardingInfoChange |
Changes of RecoveryStoreShardingInfos |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All RecoveryStoreShardingInfos will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchRecoveryStoreShardingInfosResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (RecoveryStoreShardingInfos will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchRecoveryStoreShardingInfosResponse.PageTokenChange Message
CreateRecoveryStoreShardingInfoRequest Message
A request message of the CreateRecoveryStoreShardingInfo method.
CreateRecoveryStoreShardingInfoRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateRecoveryStoreShardingInfoRequest Message
A request message of the UpdateRecoveryStoreShardingInfo method.
Name |
Type |
Description |
recovery_store_sharding_info |
RecoveryStoreShardingInfo |
RecoveryStoreShardingInfo resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateRecoveryStoreShardingInfoRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateRecoveryStoreShardingInfoRequest.ResponseMask |
reduce message response size. |
UpdateRecoveryStoreShardingInfoRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
RecoveryStoreShardingInfo |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateRecoveryStoreShardingInfoRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteRecoveryStoreShardingInfoRequest Message
A request message of the DeleteRecoveryStoreShardingInfo method.
TimeSerie Resource
A collection of data points that describes the time-varying values
of a metric. A time series is identified by a combination of a
fully-specified monitored resource and a fully-specified metric.
This type is used for both listing and creating time series.
Name patterns:
projects/{project}/timeSeries/{time_serie}
Parent resources:
This section covers the methods
and messages to interact
with TimeSerie resource.
TimeSerie Methods
Here is the list of TimeSerie resource methods:
ListTimeSeries Method
ListTimeSeries
rpc ListTimeSeries(ListTimeSeriesRequest) returns (ListTimeSeriesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeries.list
The equivalent REST API is:
GET /v3/{parent=projects/*}/timeSeries
CreateTimeSeries Method
CreateTimeSeries
rpc CreateTimeSeries(CreateTimeSeriesRequest) returns (CreateTimeSeriesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeries.create
The equivalent REST API is:
POST /v3/{parent=projects/*}/timeSeries (BODY: time_series)
TimeSerie Messages
Here is the list of TimeSerie resource messages:
TimeSerie Message
Name |
Type |
Description |
key |
bytes |
TimeSerie key identifies unique TimeSeries tuple: <project, region, metric.type, metric.labels, resource.type, resource.labels> Kind/ValueType are not present in key Key is not to be decoded outside of service, but treated as opaque string Specific key is valid and understood only in single region only. If time serie is created by merging from multiple regions, key must be ignore. |
project |
string |
Internal use - for bulk reporting of TimeSeries |
region |
string |
Region ID associated with time serie. |
metric |
Metric |
The associated metric. A fully-specified metric used to identify the time series. |
resource |
MonitoredResource |
The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data. |
metric_kind |
MetricDescriptor.MetricKind |
The metric kind of the time series. When listing time series, this metric kind might be different from the metric kind of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the metric kind of the associated metric. If the associated metric’s descriptor must be auto-created, then this field specifies the metric kind of the new descriptor and must be either GAUGE (the default) or CUMULATIVE . |
value_type |
MetricDescriptor.ValueType |
The value type of the time series. When listing time series, this value type might be different from the value type of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the type of the data in the points field. |
points |
repeated Point |
The data points of this time series. When listing time series, points are returned in reverse time order. When creating a time series, this field must contain exactly one point and the point’s type must be the same as the value type of the associated metric. If the associated metric’s descriptor must be auto-created, then the value type of the descriptor is determined by the point’s type, which must be BOOL , INT64 , DOUBLE , or DISTRIBUTION . |
ListTimeSeriesRequest Message
Request message for method [ListTimeSeries][ntt.monitoring.v3.ListTimeSeries]
Name |
Type |
Description |
parent |
string (name of Project) |
The project on which to execute the request. The format is “projects/{project_id_or_number}”. |
filter |
string (filter of TimeSerie) |
A monitoring filter that specifies which time series should be returned. The filter must specify a single metric type, and can additionally specify metric labels and other information. For example: metric.type = “compute.googleapis.com/instance/cpu/usage_time” AND metric.label.instance_name = “my-instance-name” |
interval |
TimeInterval |
The time interval for which results should be returned. Only time series that contain data points in the specified interval are included in the response. |
aggregation |
Aggregation |
By default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data. |
pagination |
Pagination |
Picks paginated time series according to pre-defined (in metric descriptor) view and function. Cannot be used with aggregation, because pagination view and function determines time series transformation and sorting. |
view |
TimeSeriesView |
Specifies which information is returned about the time series. |
field_mask |
.google.protobuf.FieldMask |
view list mask. Optimize network usage and limit returned header fields to a required subset. example fields in field mask: - “key”: for later caching, - “resource.labels.project_id”, “resource.labels.instance_name”, etc - specific labels only - “resource”, “metric”: all resource labels, reduced_labels and type NOTE: points are added implicitly |
points_cap |
int32 |
A positive number that is the maximum number of Points to return. If points_cap is empty or more than 100,000 results, the effective points_cap is 100,000 results. If view is set to HEADERS , this is the maximum number of TimeSeries returned. |
continuation_token |
string |
If this field is not empty then it must contain the continuation_token value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call. |
ListTimeSeriesResponse Message
Response message for method
[ListTimeSeries][ntt.monitoring.v3.ListTimeSeries]
Name |
Type |
Description |
time_series |
repeated TimeSerie |
One or more time series that match the filter included in the request. |
continuation_token |
string |
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as continuation_token in the next call to this method. |
total_point_counters |
repeated TimeSerie |
Special time series with total amount of records available for pagination by given time series key. Metric/Resource labels will contain “common” values shared by all ranked time series. ValueType will be always INT64 and metricKind GAUGE. In a sense, this time series is execution of ListTimeSeries with Aggregation = {groupByFields: [<viewPaginatedLabels>], REDUCER: REDUCE_COUNT} This field is only populated for paginated queries (pagination in ListTimeSeries is specified). |
ListTimeSeriesResponse.ErrorDetails Message
ErrorDetails is used when one of the queried regions fails to produce
results. It is used in execution_errors field (see subfield
ntt.rpc.Status.details).
Name |
Type |
Description |
region_id |
string |
region id which failed to give results. |
CreateTimeSeriesRequest Message
Request message for method
[CreateTimeSeries][ntt.monitoring.v3.CreateTimeSeries]
Name |
Type |
Description |
parent |
string (name of Project) |
The project on which to execute the request. The format is "projects/{project_id_or_number}" . |
time_series |
repeated TimeSerie |
The new data to be added to a list of time series. Adds at most one data point to each of several time series. The new data point must be more recent than any other point in its time series. Each TimeSeries value must fully specify a unique time series by supplying all label values for the metric and the monitored resource. |
CreateTimeSeriesResponse Message
Response message for method
[CreateTimeSeries][ntt.monitoring.v3.CreateTimeSeries]
Name |
Type |
Description |
time_serie_keys |
map<uint32s, bytes> |
Time Serie keys indexed by Create position - present only when given TimeSerie didn’t use Key field |
failed_time_series |
repeated CreateTimeSeriesError |
Time series that failed to be created |
Monitoring Service Shared Methods and Messages
Monitoring Service Shared Messages
Here is the list of Monitoring service shared messages:
Aggregation Message
Describes how to combine multiple time series to provide different views of
the data. Aggregation consists of an alignment step on individual time
series (alignment_period
and per_series_aligner
) followed by an optional
reduction step of the data across the aligned time series
(cross_series_reducer
and group_by_fields
). For more details, see
Aggregation.
Name |
Type |
Description |
alignment_period |
.google.protobuf.Duration |
The alignment period for per-[time series][ntt.monitoring.v3.TimeSeries] alignment. If present, alignmentPeriod must be at least 60 seconds. After per-time series alignment, each time series will contain data points only on the period boundaries. If perSeriesAligner is not specified or equals ALIGN_NONE , then this field is ignored. If perSeriesAligner is specified and does not equal ALIGN_NONE , then this field must be defined; otherwise an error is returned. |
per_series_aligner |
Aggregation.Aligner |
The approach to be used to align individual time series. Not all alignment functions may be applied to all time series, depending on the metric type and value type of the original time series. Alignment may change the metric type or the value type of the time series. Time series data must be aligned in order to perform cross-time series reduction. If crossSeriesReducer is specified, then perSeriesAligner must be specified and not equal ALIGN_NONE and alignmentPeriod must be specified; otherwise, an error is returned. |
cross_series_reducer |
Aggregation.Reducer |
The approach to be used to combine time series. Not all reducer functions may be applied to all time series, depending on the metric type and the value type of the original time series. Reduction may change the metric type of value type of the time series. Time series data must be aligned in order to perform cross-time series reduction. If crossSeriesReducer is specified, then perSeriesAligner must be specified and not equal ALIGN_NONE and alignmentPeriod must be specified; otherwise, an error is returned. |
group_by_fields |
repeated string |
The set of fields to preserve when crossSeriesReducer is specified. The groupByFields determine how the time series are partitioned into subsets prior to applying the aggregation function. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The crossSeriesReducer is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains resource.type . Fields not specified in groupByFields are aggregated away. If groupByFields is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If crossSeriesReducer is not defined, this field is ignored. |
AlertChange Message
AlertChange is used by Watch notifications Responses to describe change of
single Alert One of Added, Modified, Removed
Name |
Type |
Description |
added |
AlertChange.Added |
Added is returned when watched document is added, either created or enters Query view |
modified |
AlertChange.Modified |
Modified is returned when watched document is modified |
current |
AlertChange.Current |
Current is returned in stateless watch when document enters query view or is modified within. |
removed |
AlertChange.Removed |
Removed is returned when Alert is deleted or leaves Query view |
AlertChange.Added Message
Alert has been added to query view
Name |
Type |
Description |
alert |
Alert |
|
view_index |
int32 |
Integer describing index of added Alert in resulting query view. |
AlertChange.Current Message
Alert has been added or modified in a query view. Version used for
stateless watching
Name |
Type |
Description |
alert |
Alert |
|
AlertChange.Modified Message
Alert changed some of it’s fields - contains either full document or masked
change
Name |
Type |
Description |
name |
string (name of Alert) |
Name of modified Alert |
alert |
Alert |
New version of Alert or masked difference, depending on mask_changes instrumentation of issued [WatchAlertRequest] or [WatchAlertsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified Alert. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying Alert new index in resulting query view. |
AlertChange.Removed Message
Removed is returned when Alert is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of Alert) |
|
view_index |
int32 |
Integer specifying removed Alert index. Not populated in stateless watch type. |
AlertingConditionChange Message
AlertingConditionChange is used by Watch notifications Responses to describe
change of single AlertingCondition One of Added, Modified, Removed
AlertingConditionChange.Added Message
AlertingCondition has been added to query view
Name |
Type |
Description |
alerting_condition |
AlertingCondition |
|
view_index |
int32 |
Integer describing index of added AlertingCondition in resulting query view. |
AlertingConditionChange.Current Message
AlertingCondition has been added or modified in a query view. Version used
for stateless watching
AlertingConditionChange.Modified Message
AlertingCondition changed some of it’s fields - contains either full
document or masked change
Name |
Type |
Description |
name |
string (name of AlertingCondition) |
Name of modified AlertingCondition |
alerting_condition |
AlertingCondition |
New version of AlertingCondition or masked difference, depending on mask_changes instrumentation of issued [WatchAlertingConditionRequest] or [WatchAlertingConditionsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified AlertingCondition. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying AlertingCondition new index in resulting query view. |
AlertingConditionChange.Removed Message
Removed is returned when AlertingCondition is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of AlertingCondition) |
|
view_index |
int32 |
Integer specifying removed AlertingCondition index. Not populated in stateless watch type. |
AlertingPolicyChange Message
AlertingPolicyChange is used by Watch notifications Responses to describe
change of single AlertingPolicy One of Added, Modified, Removed
AlertingPolicyChange.Added Message
AlertingPolicy has been added to query view
Name |
Type |
Description |
alerting_policy |
AlertingPolicy |
|
view_index |
int32 |
Integer describing index of added AlertingPolicy in resulting query view. |
AlertingPolicyChange.Current Message
AlertingPolicy has been added or modified in a query view. Version used for
stateless watching
AlertingPolicyChange.Modified Message
AlertingPolicy changed some of it’s fields - contains either full document
or masked change
Name |
Type |
Description |
name |
string (name of AlertingPolicy) |
Name of modified AlertingPolicy |
alerting_policy |
AlertingPolicy |
New version of AlertingPolicy or masked difference, depending on mask_changes instrumentation of issued [WatchAlertingPolicyRequest] or [WatchAlertingPoliciesRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified AlertingPolicy. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying AlertingPolicy new index in resulting query view. |
AlertingPolicyChange.Removed Message
Removed is returned when AlertingPolicy is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of AlertingPolicy) |
|
view_index |
int32 |
Integer specifying removed AlertingPolicy index. Not populated in stateless watch type. |
BulkTimeSeries Message
Used for reporting rollups
Name |
Type |
Description |
time_series |
repeated TimeSerie |
|
phantom_flag |
bool |
|
CreateTimeSeriesError Message
Describes the result of a failed request to write data to a time series.
Name |
Type |
Description |
time_series |
TimeSerie |
The time series, including the Metric , MonitoredResource , and Point s (including timestamp and value) that resulted in the error. This field provides all of the context that would be needed to retry the operation. |
status |
Status |
The status of the requested write operation. |
Distribution Message
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.
Name |
Type |
Description |
count |
int64 |
The number of values in the population. Must be non-negative. |
mean |
double |
The arithmetic mean of the values in the population. If count is zero then this field must be zero. |
sum_of_squared_deviation |
double |
The sum of squared deviations from the mean of the values in the population. For values x_i this is: Sum[i=1..n]((x_i - mean)^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 |
Distribution.Range |
If specified, contains the range of the population values. The field must not be present if the count is zero. |
bucket_options |
Distribution.BucketOptions |
Defines the histogram bucket boundaries. |
bucket_counts |
repeated int64 |
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. |
Distribution.BucketOptions Message
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.
Distribution.BucketOptions.Dynamic Message
Dynamic buckets centroid based. TDigest implementation.
Name |
Type |
Description |
compression |
double |
TDigest compression rate |
means |
repeated double |
Centroid means. Must be the same length as bucket counts. Each mean, count represents a weighed centroid. |
Distribution.BucketOptions.Explicit Message
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.
Name |
Type |
Description |
bounds |
repeated double |
The values must be monotonically increasing. |
Distribution.BucketOptions.Exponential Message
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)).
Name |
Type |
Description |
num_finite_buckets |
int32 |
Must be greater than 0. |
growth_factor |
double |
Must be greater than 1. |
scale |
double |
Must be greater than 0. |
Distribution.BucketOptions.Linear Message
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)).
Name |
Type |
Description |
num_finite_buckets |
int32 |
Must be greater than 0. |
width |
double |
Must be greater than 0. |
offset |
double |
Lower bound of the first bucket. |
Distribution.Range Message
The range of the population values.
Name |
Type |
Description |
min |
double |
The minimum of the population values. |
max |
double |
The maximum of the population values. |
LabelDescriptor Message
A description of a label.
Name |
Type |
Description |
key |
string |
The label key. |
value_type |
LabelDescriptor.ValueType |
The type of data that can be assigned to the label. |
description |
string |
A human-readable description for the label. |
default_value |
string |
Default value for string label - this value is used in two cases: 1. to populate missing labels while creating TimeSeries 2. to populate missing remaining kvs while querying TimeSeries - usually applies to old data |
disabled |
bool |
disabled flag communicates that this label is ignored by the backend. It’s used for backward compatibility. |
LabelKeySet Message
LabelKeySet is used for defining PromotedLabelKeySets on Metric descriptors
Name |
Type |
Description |
label_keys |
repeated string |
|
write_only |
bool |
if set, index will not be considered for queries, but will be written to. useful for transition periods. |
Metric Message
A specific metric, identified by specifying values for all of the
labels of a [MetricDescriptor
][google.api.MetricDescriptor].
Name |
Type |
Description |
type |
string |
An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example, custom.googleapis.com/invoice/paid/amount . |
labels |
map<string, string> |
The set of label values that uniquely identify this metric. All labels listed in the MetricDescriptor must be assigned values. |
reduced_labels |
repeated string |
reduced labels in aggregations |
MetricDescriptorChange Message
MetricDescriptorChange is used by Watch notifications Responses to describe
change of single MetricDescriptor One of Added, Modified, Removed
MetricDescriptorChange.Added Message
MetricDescriptor has been added to query view
Name |
Type |
Description |
metric_descriptor |
MetricDescriptor |
|
view_index |
int32 |
Integer describing index of added MetricDescriptor in resulting query view. |
MetricDescriptorChange.Current Message
MetricDescriptor has been added or modified in a query view. Version used
for stateless watching
MetricDescriptorChange.Modified Message
MetricDescriptor changed some of it’s fields - contains either full
document or masked change
Name |
Type |
Description |
name |
string (name of MetricDescriptor) |
Name of modified MetricDescriptor |
metric_descriptor |
MetricDescriptor |
New version of MetricDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchMetricDescriptorRequest] or [WatchMetricDescriptorsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified MetricDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying MetricDescriptor new index in resulting query view. |
MetricDescriptorChange.Removed Message
Removed is returned when MetricDescriptor is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of MetricDescriptor) |
|
view_index |
int32 |
Integer specifying removed MetricDescriptor index. Not populated in stateless watch type. |
MetricSelector Message
Metric selects metric.type
and list of labels used to
build query, like:
metric.type IN ("type0", "type1", ...) AND
metric.labels.<key0> IN (label0_0, label0_1, ...) AND
metric.labels.<key1> IN (label1_0, label1_1, ...) AND ...
Name |
Type |
Description |
types |
repeated string |
|
labels |
map<string, Strings> |
label key, e.g. “project_id”, “target_id”, etc Note the missing “metric.labels.” prefix. |
MonitoredResource Message
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][google.api.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][google.api.MonitoredResourceDescriptor] for
"gce_instance"
has labels
"instance_id"
and "zone"
:
{ "type": "gce_instance",
"labels": { "instance_id": "12345678901234",
"zone": "us-central1-a" }}
Name |
Type |
Description |
type |
string |
Required. The monitored resource type. This field must match the type field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For example, the type of a Compute Engine VM instance is gce_instance . |
labels |
map<string, string> |
Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels "project_id" , "instance_id" , and "zone" . |
reduced_labels |
repeated string |
reduced labels in aggregations |
MonitoredResourceDescriptorChange Message
MonitoredResourceDescriptorChange is used by Watch notifications Responses to
describe change of single MonitoredResourceDescriptor One of Added, Modified,
Removed
MonitoredResourceDescriptorChange.Added Message
MonitoredResourceDescriptor has been added to query view
Name |
Type |
Description |
monitored_resource_descriptor |
MonitoredResourceDescriptor |
|
view_index |
int32 |
Integer describing index of added MonitoredResourceDescriptor in resulting query view. |
MonitoredResourceDescriptorChange.Current Message
MonitoredResourceDescriptor has been added or modified in a query view.
Version used for stateless watching
MonitoredResourceDescriptorChange.Modified Message
MonitoredResourceDescriptor changed some of it’s fields - contains either
full document or masked change
Name |
Type |
Description |
name |
string (name of MonitoredResourceDescriptor) |
Name of modified MonitoredResourceDescriptor |
monitored_resource_descriptor |
MonitoredResourceDescriptor |
New version of MonitoredResourceDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchMonitoredResourceDescriptorRequest] or [WatchMonitoredResourceDescriptorsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified MonitoredResourceDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying MonitoredResourceDescriptor new index in resulting query view. |
MonitoredResourceDescriptorChange.Removed Message
Removed is returned when MonitoredResourceDescriptor is deleted or leaves
Query view
Name |
Type |
Description |
name |
string (name of MonitoredResourceDescriptor) |
|
view_index |
int32 |
Integer specifying removed MonitoredResourceDescriptor index. Not populated in stateless watch type. |
MonitoredResourceSelector Message
MonitoredResourceSelector selects resource.type
and list of labels used to
build query, like:
resource.type IN ("type0", "type1", ...) AND
resource.labels.<key0> IN (label0_0, label0_1, ...) AND
resource.labels.<key1> IN (label1_0, label1_1, ...) AND ...
Note: Only one resource.type per query is currently allowed
Name |
Type |
Description |
types |
repeated string |
|
labels |
map<string, Strings> |
label key, e.g. “project_id”, “target_id”, etc Note the missing “resource.labels.” prefix. |
NotificationChange Message
NotificationChange is used by Watch notifications Responses to describe
change of single Notification One of Added, Modified, Removed
NotificationChange.Added Message
Notification has been added to query view
Name |
Type |
Description |
notification |
Notification |
|
view_index |
int32 |
Integer describing index of added Notification in resulting query view. |
NotificationChange.Current Message
Notification has been added or modified in a query view. Version used for
stateless watching
NotificationChange.Modified Message
Notification changed some of it’s fields - contains either full document or
masked change
Name |
Type |
Description |
name |
string (name of Notification) |
Name of modified Notification |
notification |
Notification |
New version of Notification or masked difference, depending on mask_changes instrumentation of issued [WatchNotificationRequest] or [WatchNotificationsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified Notification. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying Notification new index in resulting query view. |
NotificationChange.Removed Message
Removed is returned when Notification is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of Notification) |
|
view_index |
int32 |
Integer specifying removed Notification index. Not populated in stateless watch type. |
NotificationChannelChange Message
NotificationChannelChange is used by Watch notifications Responses to
describe change of single NotificationChannel One of Added, Modified, Removed
NotificationChannelChange.Added Message
NotificationChannel has been added to query view
Name |
Type |
Description |
notification_channel |
NotificationChannel |
|
view_index |
int32 |
Integer describing index of added NotificationChannel in resulting query view. |
NotificationChannelChange.Current Message
NotificationChannel has been added or modified in a query view. Version
used for stateless watching
NotificationChannelChange.Modified Message
NotificationChannel changed some of it’s fields - contains either full
document or masked change
Name |
Type |
Description |
name |
string (name of NotificationChannel) |
Name of modified NotificationChannel |
notification_channel |
NotificationChannel |
New version of NotificationChannel or masked difference, depending on mask_changes instrumentation of issued [WatchNotificationChannelRequest] or [WatchNotificationChannelsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified NotificationChannel. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying NotificationChannel new index in resulting query view. |
NotificationChannelChange.Removed Message
Removed is returned when NotificationChannel is deleted or leaves Query
view
Name |
Type |
Description |
name |
string (name of NotificationChannel) |
|
view_index |
int32 |
Integer specifying removed NotificationChannel index. Not populated in stateless watch type. |
Name |
Type |
Description |
view |
string |
|
function |
string |
|
alignment_period |
.google.protobuf.Duration |
|
limit |
int32 |
|
offset |
int32 |
|
PhantomTimeSerieChange Message
PhantomTimeSerieChange is used by Watch notifications Responses to describe
change of single PhantomTimeSerie One of Added, Modified, Removed
PhantomTimeSerieChange.Added Message
PhantomTimeSerie has been added to query view
Name |
Type |
Description |
phantom_time_serie |
PhantomTimeSerie |
|
view_index |
int32 |
Integer describing index of added PhantomTimeSerie in resulting query view. |
PhantomTimeSerieChange.Current Message
PhantomTimeSerie has been added or modified in a query view. Version used
for stateless watching
PhantomTimeSerieChange.Modified Message
PhantomTimeSerie changed some of it’s fields - contains either full
document or masked change
Name |
Type |
Description |
name |
string (name of PhantomTimeSerie) |
Name of modified PhantomTimeSerie |
phantom_time_serie |
PhantomTimeSerie |
New version of PhantomTimeSerie or masked difference, depending on mask_changes instrumentation of issued [WatchPhantomTimeSerieRequest] or [WatchPhantomTimeSeriesRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified PhantomTimeSerie. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying PhantomTimeSerie new index in resulting query view. |
PhantomTimeSerieChange.Removed Message
Removed is returned when PhantomTimeSerie is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of PhantomTimeSerie) |
|
view_index |
int32 |
Integer specifying removed PhantomTimeSerie index. Not populated in stateless watch type. |
Point Message
A single data point in a time series.
Name |
Type |
Description |
interval |
TimeInterval |
The time interval to which the data point applies. For GAUGE metrics, only the end time of the interval is used. For DELTA metrics, the start and end time should specify a non-zero interval, with subsequent points specifying contiguous and non-overlapping intervals. For CUMULATIVE metrics, the start and end time should specify a non-zero interval, with subsequent points specifying 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. |
value |
TypedValue |
The value of the data point. |
aggregation |
Aggregation |
Additional aggregation info Used internally for batching rollup points |
ProjectChange Message
ProjectChange is used by Watch notifications Responses to describe change of
single Project One of Added, Modified, Removed
Name |
Type |
Description |
added |
ProjectChange.Added |
Added is returned when watched document is added, either created or enters Query view |
modified |
ProjectChange.Modified |
Modified is returned when watched document is modified |
current |
ProjectChange.Current |
Current is returned in stateless watch when document enters query view or is modified within. |
removed |
ProjectChange.Removed |
Removed is returned when Project is deleted or leaves Query view |
ProjectChange.Added Message
Project has been added to query view
Name |
Type |
Description |
project |
Project |
|
view_index |
int32 |
Integer describing index of added Project in resulting query view. |
ProjectChange.Current Message
Project has been added or modified in a query view. Version used for
stateless watching
Name |
Type |
Description |
project |
Project |
|
ProjectChange.Modified Message
Project changed some of it’s fields - contains either full document or
masked change
Name |
Type |
Description |
name |
string (name of Project) |
Name of modified Project |
project |
Project |
New version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying Project new index in resulting query view. |
ProjectChange.Removed Message
Removed is returned when Project is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of Project) |
|
view_index |
int32 |
Integer specifying removed Project index. Not populated in stateless watch type. |
RecoveryStoreShardingInfoChange Message
RecoveryStoreShardingInfoChange is used by Watch notifications Responses to
describe change of single RecoveryStoreShardingInfo One of Added, Modified,
Removed
RecoveryStoreShardingInfoChange.Added Message
RecoveryStoreShardingInfo has been added to query view
Name |
Type |
Description |
recovery_store_sharding_info |
RecoveryStoreShardingInfo |
|
view_index |
int32 |
Integer describing index of added RecoveryStoreShardingInfo in resulting query view. |
RecoveryStoreShardingInfoChange.Current Message
RecoveryStoreShardingInfo has been added or modified in a query view.
Version used for stateless watching
RecoveryStoreShardingInfoChange.Modified Message
RecoveryStoreShardingInfo changed some of it’s fields - contains either
full document or masked change
Name |
Type |
Description |
name |
string (name of RecoveryStoreShardingInfo) |
Name of modified RecoveryStoreShardingInfo |
recovery_store_sharding_info |
RecoveryStoreShardingInfo |
New version of RecoveryStoreShardingInfo or masked difference, depending on mask_changes instrumentation of issued [WatchRecoveryStoreShardingInfoRequest] or [WatchRecoveryStoreShardingInfosRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified RecoveryStoreShardingInfo. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying RecoveryStoreShardingInfo new index in resulting query view. |
RecoveryStoreShardingInfoChange.Removed Message
Removed is returned when RecoveryStoreShardingInfo is deleted or leaves
Query view
Name |
Type |
Description |
name |
string (name of RecoveryStoreShardingInfo) |
|
view_index |
int32 |
Integer specifying removed RecoveryStoreShardingInfo index. Not populated in stateless watch type. |
Strings Message
Represents wrapped list of strings.
Name |
Type |
Description |
values |
repeated string |
|
TimeInterval Message
A time interval extending just after a start time through an end time.
If the start time is the same as the end time, then the interval
represents a single point in time.
Name |
Type |
Description |
end_time |
.google.protobuf.Timestamp |
Required. The end of the time interval. |
start_time |
.google.protobuf.Timestamp |
Optional. The beginning of the time interval. The default value for the start time is the end time. The start time must not be later than the end time. |
TimeRange Message
Time Range represents time between two points in time. Any of those can
be missing, which means it’s open-ended.
Name |
Type |
Description |
start_time |
.google.protobuf.Timestamp |
Optional. Start of time range |
end_time |
.google.protobuf.Timestamp |
Optional. End of time range |
TimeSeriesSelector Message
Name |
Type |
Description |
metric |
MetricSelector |
Metric Selector used to specify filtered Metric types and labels |
resource |
MonitoredResourceSelector |
Resource Selector used to specify filtered Monitored Resource types and labels |
TypedValue Message
A single strongly-typed value.
Name |
Type |
Description |
bool_value |
bool |
A Boolean value: true or false . |
int64_value |
int64 |
A 64-bit integer. Its range is approximately ±9.2x10<sup>18</sup>. |
double_value |
double |
A 64-bit double-precision floating-point number. Its magnitude is approximately ±10<sup>±300</sup> and it has 16 significant digits of precision. |
string_value |
string |
A variable-length string value. |
distribution_value |
Distribution |
A distribution value. |
Monitoring Service Shared Enumerations
Here is the list of Monitoring service shared enumerations:
Aggregation.Aligner Enumeration
The Aligner describes how to bring the data points in a single
time series into temporal alignment.
Name |
Description |
ALIGN_NONE |
No alignment. Raw data is returned. Not valid if cross-time series reduction is requested. The value type of the result is the same as the value type of the input. |
ALIGN_DELTA |
Align and convert to delta metric type. This alignment is valid for cumulative metrics and delta metrics. Aligning an existing delta metric to a delta metric requires that the alignment period be increased. The value type of the result is the same as the value type of the input. One can think of this aligner as a rate but without time units; that is, the output is conceptually (second_point - first_point). |
ALIGN_RATE |
Align and convert to a rate. This alignment is valid for cumulative metrics and delta metrics with numeric values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. One can think of this aligner as conceptually providing the slope of the line that passes through the value at the start and end of the window. In other words, this is conceptually ((y1 - y0)/(t1 - t0)), and the output unit is one that has a “/time” dimension. If, by rate, you are looking for percentage change, see the ALIGN_PERCENT_CHANGE aligner option. |
ALIGN_INTERPOLATE |
Align by interpolating between adjacent points around the period boundary. This alignment is valid for gauge metrics with numeric values. The value type of the result is the same as the value type of the input. |
ALIGN_NEXT_OLDER |
Align by shifting the oldest data point before the period boundary to the boundary. This alignment is valid for gauge metrics. The value type of the result is the same as the value type of the input. |
ALIGN_MIN |
Align time series via aggregation. The resulting data point in the alignment period is the minimum of all data points in the period. This alignment is valid for gauge and delta metrics with numeric values. The value type of the result is the same as the value type of the input. |
ALIGN_MAX |
Align time series via aggregation. The resulting data point in the alignment period is the maximum of all data points in the period. This alignment is valid for gauge and delta metrics with numeric values. The value type of the result is the same as the value type of the input. |
ALIGN_MEAN |
Align time series via aggregation. The resulting data point in the alignment period is the average or arithmetic mean of all data points in the period. This alignment is valid for gauge and delta metrics with numeric values. The value type of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
ALIGN_COUNT |
Align time series via aggregation. The resulting data point in the alignment period is the count of all data points in the period. This alignment is valid for gauge and delta metrics with numeric or Boolean values. The value type of the output is [INT64][google.api.MetricDescriptor.ValueType.INT64]. |
ALIGN_SUM |
Align time series via aggregation. The resulting data point in the alignment period is the sum of all data points in the period. This alignment is valid for gauge and delta metrics with numeric and distribution values. The value type of the output is the same as the value type of the input. |
ALIGN_STDDEV |
Align time series via aggregation. The resulting data point in the alignment period is the standard deviation of all data points in the period. This alignment is valid for gauge and delta metrics with numeric values. The value type of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
ALIGN_COUNT_TRUE |
Align time series via aggregation. The resulting data point in the alignment period is the count of True-valued data points in the period. This alignment is valid for gauge metrics with Boolean values. The value type of the output is [INT64][google.api.MetricDescriptor.ValueType.INT64]. |
ALIGN_COUNT_FALSE |
Align time series via aggregation. The resulting data point in the alignment period is the count of False-valued data points in the period. This alignment is valid for gauge metrics with Boolean values. The value type of the output is [INT64][google.api.MetricDescriptor.ValueType.INT64]. |
ALIGN_FRACTION_TRUE |
Align time series via aggregation. The resulting data point in the alignment period is the fraction of True-valued data points in the period. This alignment is valid for gauge metrics with Boolean values. The output value is in the range [0, 1] and has value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
ALIGN_PERCENTILE_99 |
Align time series via aggregation. The resulting data point in the alignment period is the 99th percentile of all data points in the period. This alignment is valid for gauge and delta metrics with distribution values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
ALIGN_PERCENTILE_95 |
Align time series via aggregation. The resulting data point in the alignment period is the 95th percentile of all data points in the period. This alignment is valid for gauge and delta metrics with distribution values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
ALIGN_PERCENTILE_50 |
Align time series via aggregation. The resulting data point in the alignment period is the 50th percentile of all data points in the period. This alignment is valid for gauge and delta metrics with distribution values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
ALIGN_PERCENTILE_05 |
Align time series via aggregation. The resulting data point in the alignment period is the 5th percentile of all data points in the period. This alignment is valid for gauge and delta metrics with distribution values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
ALIGN_PERCENT_CHANGE |
Align and convert to a percentage change. This alignment is valid for gauge and delta metrics with numeric values. This alignment conceptually computes the equivalent of “((current - previous)/previous)*100” where previous value is determined based on the alignmentPeriod. In the event that previous is 0 the calculated value is infinity with the exception that if both (current - previous) and previous are 0 the calculated value is 0. A 10 minute moving mean is computed at each point of the time window prior to the above calculation to smooth the metric and prevent false positives from very short lived spikes. Only applicable for data that is >= 0. Any values < 0 are treated as no data. While delta metrics are accepted by this alignment special care should be taken that the values for the metric will always be positive. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
ALIGN_SUMMARY |
Outputs Distribution without bucketing with stats like: Min, Max, Count, Mean, SumOfSquaredDeviations valid only for LONG, DOUBLE and DISTRIBUTION value types |
ALIGN_TDIGEST_SUMMARY |
TDigest Summary allows for calculation (and further aggregation) of percentiles |
Aggregation.Reducer Enumeration
A Reducer describes how to aggregate data points from multiple
time series into a single time series.
Name |
Description |
REDUCE_NONE |
No cross-time series reduction. The output of the aligner is returned. |
REDUCE_MEAN |
Reduce by computing the mean across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric or distribution values. The value type of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
REDUCE_MIN |
Reduce by computing the minimum across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric values. The value type of the output is the same as the value type of the input. |
REDUCE_MAX |
Reduce by computing the maximum across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric values. The value type of the output is the same as the value type of the input. |
REDUCE_SUM |
Reduce by computing the sum across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric and distribution values. The value type of the output is the same as the value type of the input. |
REDUCE_STDDEV |
Reduce by computing the standard deviation across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric or distribution values. The value type of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
REDUCE_COUNT |
Reduce by computing the count of data points across time series for each alignment period. This reducer is valid for delta and gauge metrics of numeric, Boolean, distribution, and string value type. The value type of the output is [INT64][google.api.MetricDescriptor.ValueType.INT64]. |
REDUCE_COUNT_TRUE |
Reduce by computing the count of True-valued data points across time series for each alignment period. This reducer is valid for delta and gauge metrics of Boolean value type. The value type of the output is [INT64][google.api.MetricDescriptor.ValueType.INT64]. |
REDUCE_COUNT_FALSE |
Reduce by computing the count of False-valued data points across time series for each alignment period. This reducer is valid for delta and gauge metrics of Boolean value type. The value type of the output is [INT64][google.api.MetricDescriptor.ValueType.INT64]. |
REDUCE_FRACTION_TRUE |
Reduce by computing the fraction of True-valued data points across time series for each alignment period. This reducer is valid for delta and gauge metrics of Boolean value type. The output value is in the range [0, 1] and has value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
REDUCE_PERCENTILE_99 |
Reduce by computing 99th percentile of data points across time series for each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE] |
REDUCE_PERCENTILE_95 |
Reduce by computing 95th percentile of data points across time series for each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE] |
REDUCE_PERCENTILE_50 |
Reduce by computing 50th percentile of data points across time series for each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE] |
REDUCE_PERCENTILE_05 |
Reduce by computing 5th percentile of data points across time series for each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE] |
REDUCE_SUMMARY |
Reduce with Distribution with stats like: Min, Max, Count, Mean, SumOfSquaredDeviations, histogram. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DISTRIBUTION][google.api.MetricDescriptor.ValueType.DISTRIBUTION] |
LabelDescriptor.ValueType Enumeration
Value types that can be used as label values.
Name |
Description |
STRING |
A variable-length string. This is the default. |
BOOL |
Boolean; true or false. |
INT64 |
A 64-bit signed integer. |
TimeSeriesView Enumeration
Controls which fields are returned by ListTimeSeries
.
Name |
Description |
FULL |
Returns the identity of the metric(s), the time series, and the time series data. |
HEADERS |
Returns the identity of the metric and the time series resource, but not the time series data. |
3 -
Understanding the monitoring.edgelq.com service APIv4, in proto package ntt.monitoring.v4.
Here is the list of resources supported in Monitoring service APIv4:
Alert Resource
Alert Resource
Name patterns:
projects/{project}/regions/{region}/alertingPolicies/{alerting_policy}/alertingConditions/{alerting_condition}/alerts/{alert}
Parent resources:
This section covers the methods
and messages to interact
with Alert resource.
Alert Methods
Here is the list of Alert resource methods:
GetAlert Method
GetAlert
rpc GetAlert(GetAlertRequest) returns (Alert)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.get
The equivalent REST API is:
GET /v4/{name=projects/*/regions/*/alertingPolicies/*/alertingConditions/*/alerts/*}
BatchGetAlerts Method
BatchGetAlerts
rpc BatchGetAlerts(BatchGetAlertsRequest) returns (BatchGetAlertsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.batchGet
The equivalent REST API is:
ListAlerts Method
ListAlerts
rpc ListAlerts(ListAlertsRequest) returns (ListAlertsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.list
The equivalent REST API is:
GET /v4/{parent=projects/*/regions/*/alertingPolicies/*/alertingConditions/*}/alerts
WatchAlert Method
WatchAlert
rpc WatchAlert(WatchAlertRequest) returns (WatchAlertResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.watch
The equivalent REST API is:
POST /v4/{name=projects/*/regions/*/alertingPolicies/*/alertingConditions/*/alerts/*}:watch
WatchAlerts Method
WatchAlerts
rpc WatchAlerts(WatchAlertsRequest) returns (WatchAlertsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.watch
The equivalent REST API is:
POST /v4/{parent=projects/*/regions/*/alertingPolicies/*/alertingConditions/*}/alerts:watch
UpdateAlert Method
UpdateAlert
rpc UpdateAlert(UpdateAlertRequest) returns (Alert)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.update
The equivalent REST API is:
PUT /v4/{alert.name=projects/*/regions/*/alertingPolicies/*/alertingConditions/*/alerts/*} (BODY: alert)
DeleteAlert Method
DeleteAlert
rpc DeleteAlert(DeleteAlertRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.delete
The equivalent REST API is:
DELETE /v4/{name=projects/*/regions/*/alertingPolicies/*/alertingConditions/*/alerts/*}
BulkCreateAlerts Method
BulkCreateAlerts
rpc BulkCreateAlerts(BulkCreateAlertsRequest) returns (BulkCreateAlertsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.bulkCreateAlerts
The equivalent REST API is:
POST /v4/{parent=projects/*/regions/*/alertingPolicies/*/alertingConditions/*}/alerts:bulkCreateAlerts
BulkUpdateAlerts Method
BulkUpdateAlerts
rpc BulkUpdateAlerts(BulkUpdateAlertsRequest) returns (BulkUpdateAlertsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alerts.bulkUpdateAlerts
The equivalent REST API is:
POST /v4/{parent=projects/*/regions/*/alertingPolicies/*/alertingConditions/*}/alerts:bulkUpdateAlerts
Alert Messages
Here is the list of Alert resource messages:
Alert Message
Name |
Type |
Description |
name |
string (name of Alert) |
Name of Alert When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.:-]{1,128} |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
display_name |
string |
|
info |
Alert.Info |
|
state |
Alert.State |
State of alert |
Alert.Info Message
Name |
Type |
Description |
time_serie |
Alert.Info.TimeSerie |
TimeSerie labels that violated condition. If Alert is for AlertingCondition using combine threshold, metric.type will be equal to primary metric indicated. |
observed_values |
Alert.Info.ObservedValues |
observed time series values during alert creation |
Alert.State Message
Name |
Type |
Description |
is_firing |
bool |
|
is_acknowledged |
bool |
|
is_silenced |
bool |
|
lifetime |
TimeRange |
describes in terms of time series when alert began and ended (resolved). uses Time Series derived timestamps, rather than real-time. use meta.create_time to get creation date. |
needs_notification |
bool |
This alert needs to be notified |
notification_created |
bool |
Notification resource is generated for this alert |
lifecycle_completed |
bool |
Alert has ended and any needed notifications are processed |
Alert.Info.TimeSerie Message
Name |
Type |
Description |
key |
bytes |
|
metric |
Metric |
|
monitored_resource |
MonitoredResource |
|
data |
repeated string |
Internal data for filtering… |
bin_data |
repeated bytes |
|
Alert.Info.ObservedValues Message
Name |
Type |
Description |
example_value |
double |
oneof |
per_metric |
map<string, double> |
|
GetAlertRequest Message
A request message of the GetAlert method.
Name |
Type |
Description |
name |
string (name of Alert) |
Name of ntt.monitoring.v4.Alert |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetAlertsRequest Message
A request message of the BatchGetAlerts method.
Name |
Type |
Description |
names |
repeated string (name of Alert) |
Names of Alerts |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetAlertsResponse Message
A response message of the BatchGetAlerts method.
Name |
Type |
Description |
alerts |
repeated Alert |
found Alerts |
missing |
repeated string (name of Alert) |
list of not found Alerts |
ListAlertsRequest Message
A request message of the ListAlerts method.
Name |
Type |
Description |
parent |
string (parent name of Alert) |
Parent name of ntt.monitoring.v4.Alert |
page_size |
int32 |
Requested page size. Server may return fewer Alerts than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of Alert) |
A token identifying a page of results the server should return. Typically, this is the value of ListAlertsResponse.next_page_token. |
order_by |
string (orderBy of Alert) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of Alert) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListAlertsResponse Message
A response message of the ListAlerts method.
Name |
Type |
Description |
alerts |
repeated Alert |
The list of Alerts |
prev_page_token |
string (cursor of Alert) |
A token to retrieve previous page of results. Pass this value in the ListAlertsRequest.page_token. |
next_page_token |
string (cursor of Alert) |
A token to retrieve next page of results. Pass this value in the ListAlertsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total Alerts across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchAlertRequest Message
A request message of the WatchAlert method.
Name |
Type |
Description |
name |
string (name of Alert) |
Name of ntt.monitoring.v4.Alert |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchAlertResponse Message
A response message of the WatchAlert method.
WatchAlertsRequest Message
A request message of the WatchAlerts method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of Alert) |
Parent name of ntt.monitoring.v4.Alert |
page_size |
int32 |
Requested page size. Server may return fewer Alerts than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of Alert) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of Alert) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of Alert) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Alert that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Alert that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchAlertsResponse Message
A response message of the WatchAlerts method.
Name |
Type |
Description |
alert_changes |
repeated AlertChange |
Changes of Alerts |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Alerts will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchAlertsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Alerts will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchAlertsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of Alert) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of Alert) |
New token to retrieve next page of results. |
UpdateAlertRequest Message
A request message of the UpdateAlert method.
Name |
Type |
Description |
alert |
Alert |
Alert resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateAlertRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
response_mask |
UpdateAlertRequest.ResponseMask |
Optional masking applied to response object to reduce message response size. |
UpdateAlertRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
Alert |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateAlertRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteAlertRequest Message
A request message of the DeleteAlert method.
Name |
Type |
Description |
name |
string (name of Alert) |
Name of ntt.monitoring.v4.Alert |
BulkCreateAlertsRequest Message
A request message of the BulkCreateAlerts method.
Name |
Type |
Description |
parent |
string (parent name of Alert) |
Parent name of ntt.monitoring.v4.Alert |
alerts |
repeated Alert |
|
BulkCreateAlertsResponse Message
A response message of the BulkCreateAlerts method.
Name |
Type |
Description |
none |
none |
none |
BulkUpdateAlertsRequest Message
A request message of the BulkUpdateAlerts method.
Name |
Type |
Description |
parent |
string (parent name of Alert) |
Parent name of ntt.monitoring.v4.Alert |
update_mask |
.google.protobuf.FieldMask |
|
alerts |
repeated Alert |
|
BulkUpdateAlertsResponse Message
A response message of the BulkUpdateAlerts method.
Name |
Type |
Description |
none |
none |
none |
AlertingCondition Resource
AlertingCondition Resource
Name patterns:
projects/{project}/regions/{region}/alertingPolicies/{alerting_policy}/alertingConditions/{alerting_condition}
Parent resources:
This section covers the methods
and messages to interact
with AlertingCondition resource.
AlertingCondition Methods
Here is the list of AlertingCondition resource methods:
GetAlertingCondition Method
GetAlertingCondition
rpc GetAlertingCondition(GetAlertingConditionRequest) returns (AlertingCondition)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.get
The equivalent REST API is:
GET /v4/{name=projects/*/regions/*/alertingPolicies/*/alertingConditions/*}
BatchGetAlertingConditions Method
BatchGetAlertingConditions
rpc BatchGetAlertingConditions(BatchGetAlertingConditionsRequest) returns (BatchGetAlertingConditionsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.batchGet
The equivalent REST API is:
GET /v4/alertingConditions:batchGet
ListAlertingConditions Method
ListAlertingConditions
rpc ListAlertingConditions(ListAlertingConditionsRequest) returns (ListAlertingConditionsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.list
The equivalent REST API is:
GET /v4/{parent=projects/*/regions/*/alertingPolicies/*}/alertingConditions
WatchAlertingCondition Method
WatchAlertingCondition
rpc WatchAlertingCondition(WatchAlertingConditionRequest) returns (WatchAlertingConditionResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.watch
The equivalent REST API is:
POST /v4/{name=projects/*/regions/*/alertingPolicies/*/alertingConditions/*}:watch
WatchAlertingConditions Method
WatchAlertingConditions
rpc WatchAlertingConditions(WatchAlertingConditionsRequest) returns (WatchAlertingConditionsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.watch
The equivalent REST API is:
POST /v4/{parent=projects/*/regions/*/alertingPolicies/*}/alertingConditions:watch
CreateAlertingCondition Method
CreateAlertingCondition
rpc CreateAlertingCondition(CreateAlertingConditionRequest) returns (AlertingCondition)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.create
The equivalent REST API is:
POST /v4/{parent=projects/*/regions/*/alertingPolicies/*}/alertingConditions (BODY: alerting_condition)
UpdateAlertingCondition Method
UpdateAlertingCondition
rpc UpdateAlertingCondition(UpdateAlertingConditionRequest) returns (AlertingCondition)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.update
The equivalent REST API is:
PUT /v4/{alerting_condition.name=projects/*/regions/*/alertingPolicies/*/alertingConditions/*} (BODY: alerting_condition)
DeleteAlertingCondition Method
DeleteAlertingCondition
rpc DeleteAlertingCondition(DeleteAlertingConditionRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.delete
The equivalent REST API is:
DELETE /v4/{name=projects/*/regions/*/alertingPolicies/*/alertingConditions/*}
SearchAlertingConditions Method
SearchAlertingConditions
rpc SearchAlertingConditions(SearchAlertingConditionsRequest) returns (SearchAlertingConditionsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingConditions.search
The equivalent REST API is:
GET /v4/{parent=projects/*/regions/*/alertingPolicies/*}/alertingConditions:search
AlertingCondition Messages
Here is the list of AlertingCondition resource messages:
AlertingCondition Message
Name |
Type |
Description |
name |
string (name of AlertingCondition) |
Name of AlertingCondition When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9] |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
display_name |
string |
Display Name |
description |
string |
Long description |
spec |
AlertingCondition.Spec |
|
state |
AlertingCondition.State |
|
AlertingCondition.Spec Message
AlertingCondition.State Message
Name |
Type |
Description |
firing_alerts_count |
int64 |
|
AlertingCondition.Spec.TimeSeries Message
Name |
Type |
Description |
query |
AlertingCondition.Spec.TimeSeries.Query |
Time Series Query |
threshold |
AlertingCondition.Spec.TimeSeries.Threshold |
Either specify single threshold or combine threshold, which allows to pair each metric value to their specific thresholds, e.g. distinguish mean (loss, latency, jitter) in single query. If combine threshold is used, alert will be triggered only when all thresholds are violated. Example use case: * Trigger alert when CPU utilization > … and uptime > … (so we dont alert during startup unnecessarily). Time series sharing same fields except metric.type are merged (originally determined by aggregation.groupByFields). |
combine_threshold |
AlertingCondition.Spec.TimeSeries.CombineThreshold |
|
duration |
.google.protobuf.Duration |
Duration describes length of time needed for the condition to trigger a new alert of resolve an existing one |
AlertingCondition.Spec.Trigger Message
AlertingCondition.Spec.TimeSeries.Query Message
Name |
Type |
Description |
filter |
string (filter of TimeSerie) |
Filter used for time-series. |
selector |
TimeSeriesSelector |
Generated, filter-able selector, extracted from filter value. It will contain all extracted conditions for ‘==’ and ‘IN’ operators. It will exclude conditions for operators ‘!=’ and ‘NOT IN’. This allows filtering AlertingConditions by filter conditions. |
aggregation |
Aggregation |
Time Series aggregation. In case of combine threshold, it is used by “main” metric.type, and additional metric types if overrides are not specified. |
per_metric_aggregations |
map<string, Aggregation> |
If metric.type uses CombineThreshold and multiple metrics, it can provide extra per metric aggregation override. This cannot be specified for “main” metric.type. But be aware, AP and GroupByFields must be exactly same as in “aggregation” field. |
AlertingCondition.Spec.TimeSeries.Threshold Message
Name |
Type |
Description |
compare |
AlertingCondition.Spec.TimeSeries.Threshold.Compare |
Compare function specifies if observed value must be GreaterThan (GT) or LesserThan (LT) threshold value in order to trigger an alert. Example: for metric latency {compare: GT, value: 150} will trigger if actual latency is above 150ms. |
value |
double |
threshold value |
AlertingCondition.Spec.TimeSeries.CombineThreshold Message
Name |
Type |
Description |
per_metric |
map<string, AlertingCondition.Spec.TimeSeries.Threshold> |
Per Metric threshold. If multiple metrics are selected each metric may specify a different threshold |
main_metric_type |
string |
Primary metric.type for this condition. Although Alerts generated across multiple metric.type are possible, Alert instance has single “info.time_serie.metric.type” field path value. |
per_metric_type_kv |
map<string, bytes> |
Internal per metric identifiers in binary key |
GetAlertingConditionRequest Message
A request message of the GetAlertingCondition method.
Name |
Type |
Description |
name |
string (name of AlertingCondition) |
Name of ntt.monitoring.v4.AlertingCondition |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetAlertingConditionsRequest Message
A request message of the BatchGetAlertingConditions method.
Name |
Type |
Description |
names |
repeated string (name of AlertingCondition) |
Names of AlertingConditions |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetAlertingConditionsResponse Message
A response message of the BatchGetAlertingConditions method.
Name |
Type |
Description |
alerting_conditions |
repeated AlertingCondition |
found AlertingConditions |
missing |
repeated string (name of AlertingCondition) |
list of not found AlertingConditions |
ListAlertingConditionsRequest Message
A request message of the ListAlertingConditions method.
Name |
Type |
Description |
parent |
string (parent name of AlertingCondition) |
Parent name of ntt.monitoring.v4.AlertingCondition |
page_size |
int32 |
Requested page size. Server may return fewer AlertingConditions than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of AlertingCondition) |
A token identifying a page of results the server should return. Typically, this is the value of ListAlertingConditionsResponse.next_page_token. |
order_by |
string (orderBy of AlertingCondition) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of AlertingCondition) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListAlertingConditionsResponse Message
A response message of the ListAlertingConditions method.
Name |
Type |
Description |
alerting_conditions |
repeated AlertingCondition |
The list of AlertingConditions |
prev_page_token |
string (cursor of AlertingCondition) |
A token to retrieve previous page of results. Pass this value in the ListAlertingConditionsRequest.page_token. |
next_page_token |
string (cursor of AlertingCondition) |
A token to retrieve next page of results. Pass this value in the ListAlertingConditionsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total AlertingConditions across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchAlertingConditionRequest Message
A request message of the WatchAlertingCondition method.
Name |
Type |
Description |
name |
string (name of AlertingCondition) |
Name of ntt.monitoring.v4.AlertingCondition |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchAlertingConditionResponse Message
A response message of the WatchAlertingCondition method.
WatchAlertingConditionsRequest Message
A request message of the WatchAlertingConditions method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of AlertingCondition) |
Parent name of ntt.monitoring.v4.AlertingCondition |
page_size |
int32 |
Requested page size. Server may return fewer AlertingConditions than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of AlertingCondition) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of AlertingCondition) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of AlertingCondition) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to AlertingCondition that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to AlertingCondition that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchAlertingConditionsResponse Message
A response message of the WatchAlertingConditions method.
Name |
Type |
Description |
alerting_condition_changes |
repeated AlertingConditionChange |
Changes of AlertingConditions |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All AlertingConditions will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchAlertingConditionsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (AlertingConditions will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchAlertingConditionsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of AlertingCondition) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of AlertingCondition) |
New token to retrieve next page of results. |
CreateAlertingConditionRequest Message
A request message of the CreateAlertingCondition method.
CreateAlertingConditionRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateAlertingConditionRequest Message
A request message of the UpdateAlertingCondition method.
Name |
Type |
Description |
alerting_condition |
AlertingCondition |
AlertingCondition resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateAlertingConditionRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateAlertingConditionRequest.ResponseMask |
reduce message response size. |
UpdateAlertingConditionRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
AlertingCondition |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateAlertingConditionRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteAlertingConditionRequest Message
A request message of the DeleteAlertingCondition method.
Name |
Type |
Description |
name |
string (name of AlertingCondition) |
Name of ntt.monitoring.v4.AlertingCondition |
SearchAlertingConditionsRequest Message
A request message of the SearchAlertingConditions method.
Name |
Type |
Description |
parent |
string (parent name of AlertingCondition) |
Parent name of ntt.monitoring.v4.AlertingCondition |
page_size |
int32 |
Requested page size. Server may return fewer AlertingConditions than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of AlertingCondition) |
A token identifying a page of results the server should return. Typically, this is the value of SearchAlertingConditionsResponse.next_page_token. |
order_by |
string (orderBy of AlertingCondition) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of AlertingCondition) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
phrase |
string |
Optional search phrase used to further filter results. |
SearchAlertingConditionsResponse Message
A response message of the SearchAlertingConditions method.
Name |
Type |
Description |
alerting_conditions |
repeated AlertingCondition |
The list of AlertingConditions |
prev_page_token |
string (cursor of AlertingCondition) |
A token to retrieve previous page of results. Pass this value in the SearchAlertingConditionsRequest.page_token. |
next_page_token |
string (cursor of AlertingCondition) |
A token to retrieve next page of results. Pass this value in the SearchAlertingConditionsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page (0 if no page tokens were given). Page index can be computed from offset and limit provided in a request |
total_results_count |
int32 |
Number of total AlertingConditions across all pages. |
AlertingCondition Enumerations
Here is the list of AlertingCondition resource enumerations:
AlertingCondition.Spec.TimeSeries.Threshold.Compare Enumeration
Name |
Description |
COMPARE_UNSPECIFIED |
|
GT |
|
LT |
|
AlertingCondition.Spec.Trigger.Type Enumeration
Name |
Description |
EACH |
Triggers on each unique TimeSeries label set violation |
AlertingPolicy Resource
AlertingPolicy Resource
Name patterns:
projects/{project}/regions/{region}/alertingPolicies/{alerting_policy}
Parent resources:
This section covers the methods
and messages to interact
with AlertingPolicy resource.
AlertingPolicy Methods
Here is the list of AlertingPolicy resource methods:
GetAlertingPolicy Method
GetAlertingPolicy
rpc GetAlertingPolicy(GetAlertingPolicyRequest) returns (AlertingPolicy)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.get
The equivalent REST API is:
GET /v4/{name=projects/*/regions/*/alertingPolicies/*}
BatchGetAlertingPolicies Method
BatchGetAlertingPolicies
rpc BatchGetAlertingPolicies(BatchGetAlertingPoliciesRequest) returns (BatchGetAlertingPoliciesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.batchGet
The equivalent REST API is:
GET /v4/alertingPolicies:batchGet
ListAlertingPolicies Method
ListAlertingPolicies
rpc ListAlertingPolicies(ListAlertingPoliciesRequest) returns (ListAlertingPoliciesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.list
The equivalent REST API is:
GET /v4/{parent=projects/*/regions/*}/alertingPolicies
WatchAlertingPolicy Method
WatchAlertingPolicy
rpc WatchAlertingPolicy(WatchAlertingPolicyRequest) returns (WatchAlertingPolicyResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.watch
The equivalent REST API is:
POST /v4/{name=projects/*/regions/*/alertingPolicies/*}:watch
WatchAlertingPolicies Method
WatchAlertingPolicies
rpc WatchAlertingPolicies(WatchAlertingPoliciesRequest) returns (WatchAlertingPoliciesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.watch
The equivalent REST API is:
POST /v4/{parent=projects/*/regions/*}/alertingPolicies:watch
CreateAlertingPolicy Method
CreateAlertingPolicy
rpc CreateAlertingPolicy(CreateAlertingPolicyRequest) returns (AlertingPolicy)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.create
The equivalent REST API is:
POST /v4/{parent=projects/*/regions/*}/alertingPolicies (BODY: alerting_policy)
UpdateAlertingPolicy Method
UpdateAlertingPolicy
rpc UpdateAlertingPolicy(UpdateAlertingPolicyRequest) returns (AlertingPolicy)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.update
The equivalent REST API is:
PUT /v4/{alerting_policy.name=projects/*/regions/*/alertingPolicies/*} (BODY: alerting_policy)
DeleteAlertingPolicy Method
DeleteAlertingPolicy
rpc DeleteAlertingPolicy(DeleteAlertingPolicyRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.delete
The equivalent REST API is:
DELETE /v4/{name=projects/*/regions/*/alertingPolicies/*}
SearchAlertingPolicies Method
SearchAlertingPolicies
rpc SearchAlertingPolicies(SearchAlertingPoliciesRequest) returns (SearchAlertingPoliciesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/alertingPolicies.search
The equivalent REST API is:
GET /v4/{parent=projects/*/regions/*}/alertingPolicies:search
AlertingPolicy Messages
Here is the list of AlertingPolicy resource messages:
AlertingPolicy Message
Name |
Type |
Description |
name |
string (name of AlertingPolicy) |
Name of AlertingPolicy When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9] |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
display_name |
string |
display name |
description |
string |
Long description |
documentation |
AlertingPolicy.Documentation |
|
spec |
AlertingPolicy.Spec |
Spec |
state |
AlertingPolicy.State |
|
AlertingPolicy.Documentation Message
Documentation
Name |
Type |
Description |
content |
string |
Documentation content |
mime_type |
string |
documentation mime type. Only "text/markdown" is supported. |
AlertingPolicy.Spec Message
Name |
Type |
Description |
enabled |
bool |
Whether policy is enabled and will evaluate any conditions Note: If any existing fired alerts are present, they will not be resolved automatically TODO: consider if they should? |
condition_combiner |
AlertingPolicy.Spec.ConditionsCombiner |
Condition Combiner when deciding if ANY (OR) or ALL (AND) conditions for given subset of resource labels must fire in order to trigger an alert TODO: Add support to AND |
notification |
AlertingPolicy.Spec.Notification |
Notification specification |
AlertingPolicy.State Message
Name |
Type |
Description |
active_alerts_count |
int64 |
Number of ongoing alerts (incident has not ended) |
AlertingPolicy.Spec.Notification Message
Notification specification for a given Policy
Name |
Type |
Description |
enabled |
bool |
Enabled flag determines whether any notifications will be sent |
channels |
repeated string (reference to NotificationChannel) |
|
GetAlertingPolicyRequest Message
A request message of the GetAlertingPolicy method.
Name |
Type |
Description |
name |
string (name of AlertingPolicy) |
Name of ntt.monitoring.v4.AlertingPolicy |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetAlertingPoliciesRequest Message
A request message of the BatchGetAlertingPolicies method.
Name |
Type |
Description |
names |
repeated string (name of AlertingPolicy) |
Names of AlertingPolicies |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetAlertingPoliciesResponse Message
A response message of the BatchGetAlertingPolicies method.
Name |
Type |
Description |
alerting_policies |
repeated AlertingPolicy |
found AlertingPolicies |
missing |
repeated string (name of AlertingPolicy) |
list of not found AlertingPolicies |
ListAlertingPoliciesRequest Message
A request message of the ListAlertingPolicies method.
Name |
Type |
Description |
parent |
string (parent name of AlertingPolicy) |
Parent name of ntt.monitoring.v4.AlertingPolicy |
page_size |
int32 |
Requested page size. Server may return fewer AlertingPolicies than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of AlertingPolicy) |
A token identifying a page of results the server should return. Typically, this is the value of ListAlertingPoliciesResponse.next_page_token. |
order_by |
string (orderBy of AlertingPolicy) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of AlertingPolicy) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListAlertingPoliciesResponse Message
A response message of the ListAlertingPolicies method.
Name |
Type |
Description |
alerting_policies |
repeated AlertingPolicy |
The list of AlertingPolicies |
prev_page_token |
string (cursor of AlertingPolicy) |
A token to retrieve previous page of results. Pass this value in the ListAlertingPoliciesRequest.page_token. |
next_page_token |
string (cursor of AlertingPolicy) |
A token to retrieve next page of results. Pass this value in the ListAlertingPoliciesRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total AlertingPolicies across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchAlertingPolicyRequest Message
A request message of the WatchAlertingPolicy method.
Name |
Type |
Description |
name |
string (name of AlertingPolicy) |
Name of ntt.monitoring.v4.AlertingPolicy |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchAlertingPolicyResponse Message
A response message of the WatchAlertingPolicy method.
WatchAlertingPoliciesRequest Message
A request message of the WatchAlertingPolicies method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of AlertingPolicy) |
Parent name of ntt.monitoring.v4.AlertingPolicy |
page_size |
int32 |
Requested page size. Server may return fewer AlertingPolicies than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of AlertingPolicy) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of AlertingPolicy) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of AlertingPolicy) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to AlertingPolicy that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to AlertingPolicy that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchAlertingPoliciesResponse Message
A response message of the WatchAlertingPolicies method.
Name |
Type |
Description |
alerting_policy_changes |
repeated AlertingPolicyChange |
Changes of AlertingPolicies |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All AlertingPolicies will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchAlertingPoliciesResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (AlertingPolicies will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchAlertingPoliciesResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of AlertingPolicy) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of AlertingPolicy) |
New token to retrieve next page of results. |
CreateAlertingPolicyRequest Message
A request message of the CreateAlertingPolicy method.
CreateAlertingPolicyRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateAlertingPolicyRequest Message
A request message of the UpdateAlertingPolicy method.
Name |
Type |
Description |
alerting_policy |
AlertingPolicy |
AlertingPolicy resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateAlertingPolicyRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateAlertingPolicyRequest.ResponseMask |
reduce message response size. |
UpdateAlertingPolicyRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
AlertingPolicy |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateAlertingPolicyRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteAlertingPolicyRequest Message
A request message of the DeleteAlertingPolicy method.
Name |
Type |
Description |
name |
string (name of AlertingPolicy) |
Name of ntt.monitoring.v4.AlertingPolicy |
SearchAlertingPoliciesRequest Message
A request message of the SearchAlertingPolicies method.
Name |
Type |
Description |
parent |
string (parent name of AlertingPolicy) |
Parent name of ntt.monitoring.v4.AlertingPolicy |
page_size |
int32 |
Requested page size. Server may return fewer AlertingPolicies than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of AlertingPolicy) |
A token identifying a page of results the server should return. Typically, this is the value of SearchAlertingPoliciesResponse.next_page_token. |
order_by |
string (orderBy of AlertingPolicy) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of AlertingPolicy) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
phrase |
string |
Optional search phrase used to further filter results. |
SearchAlertingPoliciesResponse Message
A response message of the SearchAlertingPolicies method.
Name |
Type |
Description |
alerting_policies |
repeated AlertingPolicy |
The list of AlertingPolicies |
prev_page_token |
string (cursor of AlertingPolicy) |
A token to retrieve previous page of results. Pass this value in the SearchAlertingPoliciesRequest.page_token. |
next_page_token |
string (cursor of AlertingPolicy) |
A token to retrieve next page of results. Pass this value in the SearchAlertingPoliciesRequest.page_token. |
current_offset |
int32 |
Current offset from the first page (0 if no page tokens were given). Page index can be computed from offset and limit provided in a request |
total_results_count |
int32 |
Number of total AlertingPolicies across all pages. |
AlertingPolicy Enumerations
Here is the list of AlertingPolicy resource enumerations:
AlertingPolicy.Spec.ConditionsCombiner Enumeration
Bucket Resource
Bucket Resource restricts create/list time series requests to
the specified metric/resource types.
Name patterns:
projects/{project}/regions/{region}/buckets/{bucket}
Parent resources:
This section covers the methods
and messages to interact
with Bucket resource.
Bucket Methods
Here is the list of Bucket resource methods:
GetBucket Method
GetBucket
rpc GetBucket(GetBucketRequest) returns (Bucket)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/buckets.get
The equivalent REST API is:
GET /v4/{name=projects/*/regions/*/buckets/*}
BatchGetBuckets Method
BatchGetBuckets
rpc BatchGetBuckets(BatchGetBucketsRequest) returns (BatchGetBucketsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/buckets.batchGet
The equivalent REST API is:
ListBuckets Method
ListBuckets
rpc ListBuckets(ListBucketsRequest) returns (ListBucketsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/buckets.list
The equivalent REST API is:
GET /v4/{parent=projects/*/regions/*}/buckets
WatchBucket Method
WatchBucket
rpc WatchBucket(WatchBucketRequest) returns (WatchBucketResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/buckets.watch
The equivalent REST API is:
POST /v4/{name=projects/*/regions/*/buckets/*}:watch
WatchBuckets Method
WatchBuckets
rpc WatchBuckets(WatchBucketsRequest) returns (WatchBucketsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/buckets.watch
The equivalent REST API is:
POST /v4/{parent=projects/*/regions/*}/buckets:watch
CreateBucket Method
CreateBucket
rpc CreateBucket(CreateBucketRequest) returns (Bucket)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/buckets.create
The equivalent REST API is:
POST /v4/{parent=projects/*/regions/*}/buckets (BODY: bucket)
UpdateBucket Method
UpdateBucket
rpc UpdateBucket(UpdateBucketRequest) returns (Bucket)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/buckets.update
The equivalent REST API is:
PUT /v4/{bucket.name=projects/*/regions/*/buckets/*} (BODY: bucket)
DeleteBucket Method
DeleteBucket
rpc DeleteBucket(DeleteBucketRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/buckets.delete
The equivalent REST API is:
DELETE /v4/{name=projects/*/regions/*/buckets/*}
Bucket Messages
Here is the list of Bucket resource messages:
Bucket Message
Name |
Type |
Description |
name |
string (name of Bucket) |
Name of Bucket When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [\w./-]{2,128} |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
metrics |
repeated Bucket.RequiredTypedLabels |
Allowed metric combinations (OR). If empty, all metric types are allowed. |
resources |
repeated Bucket.RequiredTypedLabels |
Allowed resource combinations (OR).If empty, all resource types are allowed. |
required_alt_kvs |
repeated Bucket.ResolvedKeysWithValues |
All combinations of key-values (in integer forms) - one of them must be passed by every TimeSerie object for given bucket. Its computed by server side and for internal use. |
Bucket.ResolvedValues Message
ResolvedValues contains binary representation of types and labels and
possible values. Due to limitations in some db backends (looking at
firestore), we use int64 instead of uint64.
Name |
Type |
Description |
key |
int64 |
|
values |
repeated int64 |
|
Bucket.ResolvedKeysWithValues Message
ResolvedKeysWithValues binds multiple keys with possible values.
Bucket.RequiredTypedLabels Message
RequiredTypedLabels describes required label values for specified
metric and resource types. All time series in Create operation
must contain at least one allowed type and then labels must match
all the labels. For list queries, filter must contain at least one
type and all labels must be present in condition containing all
or subset of allowed label values.
Bucket.RequiredTypedLabels.Strings Message
Name |
Type |
Description |
strings |
repeated string |
|
GetBucketRequest Message
A request message of the GetBucket method.
Name |
Type |
Description |
name |
string (name of Bucket) |
Name of ntt.monitoring.v4.Bucket |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetBucketsRequest Message
A request message of the BatchGetBuckets method.
Name |
Type |
Description |
names |
repeated string (name of Bucket) |
Names of Buckets |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetBucketsResponse Message
A response message of the BatchGetBuckets method.
Name |
Type |
Description |
buckets |
repeated Bucket |
found Buckets |
missing |
repeated string (name of Bucket) |
list of not found Buckets |
ListBucketsRequest Message
A request message of the ListBuckets method.
Name |
Type |
Description |
parent |
string (parent name of Bucket) |
Parent name of ntt.monitoring.v4.Bucket |
page_size |
int32 |
Requested page size. Server may return fewer Buckets than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of Bucket) |
A token identifying a page of results the server should return. Typically, this is the value of ListBucketsResponse.next_page_token. |
order_by |
string (orderBy of Bucket) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of Bucket) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListBucketsResponse Message
A response message of the ListBuckets method.
Name |
Type |
Description |
buckets |
repeated Bucket |
The list of Buckets |
prev_page_token |
string (cursor of Bucket) |
A token to retrieve previous page of results. Pass this value in the ListBucketsRequest.page_token. |
next_page_token |
string (cursor of Bucket) |
A token to retrieve next page of results. Pass this value in the ListBucketsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total Buckets across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchBucketRequest Message
A request message of the WatchBucket method.
Name |
Type |
Description |
name |
string (name of Bucket) |
Name of ntt.monitoring.v4.Bucket |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchBucketResponse Message
A response message of the WatchBucket method.
WatchBucketsRequest Message
A request message of the WatchBuckets method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of Bucket) |
Parent name of ntt.monitoring.v4.Bucket |
page_size |
int32 |
Requested page size. Server may return fewer Buckets than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of Bucket) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of Bucket) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of Bucket) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Bucket that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Bucket that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchBucketsResponse Message
A response message of the WatchBuckets method.
Name |
Type |
Description |
bucket_changes |
repeated BucketChange |
Changes of Buckets |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Buckets will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchBucketsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Buckets will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchBucketsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of Bucket) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of Bucket) |
New token to retrieve next page of results. |
CreateBucketRequest Message
A request message of the CreateBucket method.
Name |
Type |
Description |
parent |
string (parent name of Bucket) |
Parent name of ntt.monitoring.v4.Bucket |
bucket |
Bucket |
Bucket resource body |
response_mask |
CreateBucketRequest.ResponseMask |
Optional masking applied to response object to reduce message response size. |
CreateBucketRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateBucketRequest Message
A request message of the UpdateBucket method.
Name |
Type |
Description |
bucket |
Bucket |
Bucket resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateBucketRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateBucketRequest.ResponseMask |
reduce message response size. |
UpdateBucketRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
Bucket |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateBucketRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteBucketRequest Message
A request message of the DeleteBucket method.
Name |
Type |
Description |
name |
string (name of Bucket) |
Name of ntt.monitoring.v4.Bucket |
MetricDescriptor Resource
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.
Name patterns:
projects/{project}/metricDescriptors/{metric_descriptor}
Parent resources:
This section covers the methods
and messages to interact
with MetricDescriptor resource.
MetricDescriptor Methods
Here is the list of MetricDescriptor resource methods:
BatchGetMetricDescriptors Method
BatchGetMetricDescriptors
rpc BatchGetMetricDescriptors(BatchGetMetricDescriptorsRequest) returns (BatchGetMetricDescriptorsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/metricDescriptors.batchGet
The equivalent REST API is:
GET /v4/metricDescriptors:batchGet
WatchMetricDescriptor Method
WatchMetricDescriptor
rpc WatchMetricDescriptor(WatchMetricDescriptorRequest) returns (WatchMetricDescriptorResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/metricDescriptors.watch
The equivalent REST API is:
POST /v4/{name=projects/*/metricDescriptors/*}:watch
WatchMetricDescriptors Method
WatchMetricDescriptors
rpc WatchMetricDescriptors(WatchMetricDescriptorsRequest) returns (WatchMetricDescriptorsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/metricDescriptors.watch
The equivalent REST API is:
POST /v4/{parent=projects/*}/metricDescriptors:watch
GetMetricDescriptor Method
GetMetricDescriptor
rpc GetMetricDescriptor(GetMetricDescriptorRequest) returns (MetricDescriptor)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/metricDescriptors.get
The equivalent REST API is:
GET /v4/{name=projects/*/metricDescriptors/*}
CreateMetricDescriptor Method
CreateMetricDescriptor
rpc CreateMetricDescriptor(CreateMetricDescriptorRequest) returns (MetricDescriptor)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/metricDescriptors.create
The equivalent REST API is:
POST /v4/{parent=projects/*}/metricDescriptors (BODY: metric_descriptor)
UpdateMetricDescriptor Method
UpdateMetricDescriptor
rpc UpdateMetricDescriptor(UpdateMetricDescriptorRequest) returns (MetricDescriptor)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/metricDescriptors.update
The equivalent REST API is:
PUT /v4/{metric_descriptor.name=projects/*/metricDescriptors/*} (BODY: metric_descriptor)
DeleteMetricDescriptor Method
DeleteMetricDescriptor
rpc DeleteMetricDescriptor(DeleteMetricDescriptorRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/metricDescriptors.delete
The equivalent REST API is:
DELETE /v4/{name=projects/*/metricDescriptors/*}
ListMetricDescriptors Method
ListMetricDescriptors
rpc ListMetricDescriptors(ListMetricDescriptorsRequest) returns (ListMetricDescriptorsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/metricDescriptors.list
The equivalent REST API is:
GET /v4/{parent=projects/*}/metricDescriptors
MetricDescriptor Messages
Here is the list of MetricDescriptor resource messages:
MetricDescriptor Message
Name |
Type |
Description |
name |
string (name of MetricDescriptor) |
Name of MetricDescriptor When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [\w./-]{4,128} |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
type |
string |
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” |
resource_types |
repeated string |
associated resource_types (also used to infer defaults) examples, devices.edgelq.com/Device, watchdog.edgelq.com/Agent. DEPRECATED, use “indices”. |
labels |
repeated LabelDescriptor |
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. |
metric_kind |
MetricDescriptor.MetricKind |
Whether the metric records instantaneous values, changes to a value, etc. Some combinations of metric_kind and value_type might not be supported. |
value_type |
MetricDescriptor.ValueType |
Whether the measurement is an integer, a floating-point number, etc. Some combinations of metric_kind and value_type might not be supported. |
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 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 |
description |
string |
A detailed description of the metric, which can be used in documentation. |
display_name |
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”. This field is optional but it is recommended to be set for any metrics associated with user-visible concepts, such as Quota. |
metric_descriptor_metadata |
MetricDescriptor.MetricDescriptorMetadata |
Optional. Metadata which can be used to guide usage of the metric. |
distribution_bucket_options |
Distribution.BucketOptions |
Distribution bucketing options - define only when ValueType is Distribution. Used for validating input. |
promoted_label_key_sets |
repeated LabelKeySet |
Promoted Label Key Sets allow defining multiple indexing rules for underlying backend enabling query optimizations. Metric promoted label sets are combined with MonitoredResource promoted label sets and result in PromotedKeySet. DEPRECATED, use “indices” instead. |
index_spec |
MetricDescriptor.IndexSpec |
DEPRECATED: use “indices”. This field must not be used if client migrated to ResourceBindings. Whenever index_spec is set, it will override resource_descriptor_bindings. This is for migration purpose, future indices must be managed by ResourceBindings. |
indices |
MetricDescriptor.Indices |
Defines indexing rules for underlying backend enabling query optimizations. It’s important consideration for balancing time series query performance and storage cost. Number of non-disabled indices per resource type is 64. Indices are generated from index families. Final index is a combination of metric & resource promoted label set, and pre-aggregation spec (if any). For example, index family with 2 promoted sets for resource, 3 promoted sets for metric, 2 pre-aggregations would create 12 indices. If no pre-aggregations were defined, it would be 6 indices. Metric and resource label sets must never be empty: At least one empty label set must be present. |
storage_config |
MetricDescriptor.StorageConfig |
Storage settings |
binary_indices |
MetricDescriptor.BinaryIndices |
Generated indices data in binary format, for internal use only. They are compiled when MetricDescriptor is saved and used by monitoring server, db-controller or controller when necessary. One MetricDescriptor instance will have different value of this field in each region! |
Additional annotations that can be used to guide the usage of a metric.
Name |
Type |
Description |
launch_stage |
LaunchStage |
The launch stage of the metric definition. |
MetricDescriptor.IndexSpec Message
DEPRECATED, use Indices
MetricDescriptor.Indices Message
ResourceBindings binds MetricDescriptor with selected
MonitoredResourceDescriptors and provides indices for TimeSeries storage.
MetricDescriptor.StorageConfig Message
Backend storage config
Name |
Type |
Description |
store_raw_points |
bool |
whether to store raw points |
max_ap |
.google.protobuf.Duration |
Maximum AlignmentPeriod produced. If max_ap is 0, then it is treated as no maximum. Monitoring will be producing time series for all alignment periods. If max_ap is 1 minute, it means only the smallest alignment period is produced. |
MetricDescriptor.BinaryIndices Message
MetricDescriptor.IndexSpec.Index Message
Name |
Type |
Description |
promoted_labels |
repeated string |
each label is of format: {metric,resource}.labels.\<label-key\> . since resource and metric labels are mixed. Full path is required. |
MetricDescriptor.IndexSpec.PerMonitoredResource Message
MetricDescriptor.Indices.LabelsGroup Message
LabelsGroup represents set of labels in resource and metric.
It forms part of the index generators (non and pre aggregated).
Name |
Type |
Description |
name |
string |
Identifier of the group, used as part of index name and during update validations. |
metric_keys |
repeated string |
List of metric keys in the group. |
resource_keys |
repeated string |
List of resource keys in the group. |
closing_status |
MetricDescriptor.Indices.CloseStatus |
Closing status should be set when indices used by this group is no longer desirable. |
PaginationView is used by PaginationIndices. It indicates which labels
in metric/resource descriptor are kept for filter purpose, and which
are “ranked” by.
Name |
Type |
Description |
name |
string |
Identifier of the group, used as part of index name and during update validations. |
filterable_metric_keys |
repeated string |
List of metric keys that can optionally be used in filter. |
filterable_resource_keys |
repeated string |
List of resource keys that can optionally be used in filter. |
paginated_metric_keys |
repeated string |
List of metric keys that will be part of “paginated” key (for ranking purpose). Provided labels cannot be used for filtering. |
paginated_resource_keys |
repeated string |
List of resource keys that will be part of “paginated” key (for ranking purpose). Provided labels cannot be used for filtering. |
closing_status |
MetricDescriptor.Indices.CloseStatus |
Closing status should be set when indices used by this group is no longer desirable. |
MetricDescriptor.Indices.AggregationsGroup Message
AggregationsGroup groups aggregations required for pre-aggregated
indices.
Name |
Type |
Description |
name |
string |
Name of the group (identifier). Used for validating updates. |
per_series_aligners |
repeated Aggregation.Aligner |
List of potential values for perSeriesAligner parameter. It must be specified. |
cross_series_reducers |
repeated Aggregation.Reducer |
List of potential values for crossSeriesReducer parameter. It can be left empty if we want to support large amount of values. |
closing_status |
MetricDescriptor.Indices.CloseStatus |
Closing status, if this group is no longer desired. |
storage_aligners |
repeated Aggregation.Aligner |
This field is automatically computed and cannot be set by users. It displays list of aligners used by underlying storage. May not exactly match to requested aligners. TODO: Support output_only annotation for sub-array items |
MetricDescriptor.Indices.SortingFunction Message
SortingFunction is a function used for paginable indices.
MetricDescriptor.Indices.PreAggregatedIndices Message
PreAggregatedIndices is a generator of pre-aggregated indices.
One pre-aggregated index is generated per combination of
resource type, partition label set, filter/group label set,
and unique storage aligner (computed from supported aggregations).
Name |
Type |
Description |
name |
string |
Name of the group |
resource_types |
repeated string |
All resource types in the group |
partition_label_sets |
repeated MetricDescriptor.Indices.LabelsGroup |
All partition label sets. Each is generating index per mentioned resource type, filter/group label set and aligner. Index, to be used, requires specifying all labels mentioned in partition. |
filter_and_group_label_sets |
repeated MetricDescriptor.Indices.LabelsGroup |
All label sets containing labels that can be used in filter/groupBy fields (other than partition). Index, to be used, must not contain any label in filter/groupBy not present in the filter/group labels set. |
supported_aggregations |
repeated MetricDescriptor.Indices.AggregationsGroup |
List of all aggregations required by users. |
MetricDescriptor.Indices.NonAggregatedIndices Message
NonAggregatedIndices is a generator of non-aggregated indices.
One non-aggregated index is generated per combination of
resource type by partition label set.
Name |
Type |
Description |
name |
string |
Name of the whole group. |
resource_types |
repeated string |
Resource types in this group. |
partition_label_sets |
repeated MetricDescriptor.Indices.LabelsGroup |
All partition label sets. Each is generating index per mentioned resource type. Index, to be used, requires specifying all labels mentioned in partition. |
PaginationIndices are special pre-aggregated indices.
To access this index, it is necessary to include in the filter
some partition label set. Paginable labels MUST not be used in filter,
and have no effect in groupBy (always included).
Name |
Type |
Description |
name |
string |
Name of the whole group. |
resource_types |
repeated string |
Resource types in this group. |
partition_label_sets |
repeated MetricDescriptor.Indices.LabelsGroup |
All partition label sets. Each is generating index per mentioned resource type. Index, to be used, requires specifying all labels mentioned in partition. Each partition set is matched with each view when generating final views. |
views |
repeated MetricDescriptor.Indices.PaginationView |
All views describing label sets. |
functions |
repeated MetricDescriptor.Indices.SortingFunction |
List of functions applied to every partition/views in the group. |
MetricDescriptor.Indices.IndexGroups Message
Grouped indices
MetricDescriptor.BinaryIndices.PreAggregatedIndex Message
Name |
Type |
Description |
key_data |
bytes |
|
writing_aligners |
repeated bytes |
|
closed_aligners |
repeated bytes |
|
MetricDescriptor.BinaryIndices.PaginatingIndex Message
Name |
Type |
Description |
key_data |
bytes |
|
writing_functions |
repeated bytes |
|
closed_functions |
repeated bytes |
|
MetricDescriptor.BinaryIndices.ByResourceType Message
Name |
Type |
Description |
resource_type |
string |
resource.type in string version, but integer is also encoded in every other item for convenience. |
aggs_encoder |
repeated bytes |
List of aggregation encoders, used by streaming job when computing pre-aggregated values. Last item contains most recent version of aggregation. Previous entries will be closed after some time and removed. |
pre_aggregated_indices |
repeated MetricDescriptor.BinaryIndices.PreAggregatedIndex |
List of pre-aggregated indices with per-storage-aligner information. These type of indices are more complex due to presence of aligners with their own liveness status. |
paginating_indices |
repeated MetricDescriptor.BinaryIndices.PaginatingIndex |
|
non_aggregated_indices |
repeated bytes |
Non aggregated indices. Bytes contain identifier with all promoted keys and name part positions. |
name_parts |
repeated string |
index name parts |
BatchGetMetricDescriptorsRequest Message
A request message of the BatchGetMetricDescriptors method.
Name |
Type |
Description |
names |
repeated string (name of MetricDescriptor) |
Names of MetricDescriptors |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetMetricDescriptorsResponse Message
A response message of the BatchGetMetricDescriptors method.
Name |
Type |
Description |
metric_descriptors |
repeated MetricDescriptor |
found MetricDescriptors |
missing |
repeated string (name of MetricDescriptor) |
list of not found MetricDescriptors |
WatchMetricDescriptorRequest Message
A request message of the WatchMetricDescriptor method.
Name |
Type |
Description |
name |
string (name of MetricDescriptor) |
Name of ntt.monitoring.v4.MetricDescriptor |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchMetricDescriptorResponse Message
A response message of the WatchMetricDescriptor method.
WatchMetricDescriptorsRequest Message
A request message of the WatchMetricDescriptors method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of MetricDescriptor) |
Parent name of ntt.monitoring.v4.MetricDescriptor |
page_size |
int32 |
Requested page size. Server may return fewer MetricDescriptors than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of MetricDescriptor) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of MetricDescriptor) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of MetricDescriptor) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to MetricDescriptor that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to MetricDescriptor that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchMetricDescriptorsResponse Message
A response message of the WatchMetricDescriptors method.
Name |
Type |
Description |
metric_descriptor_changes |
repeated MetricDescriptorChange |
Changes of MetricDescriptors |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All MetricDescriptors will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchMetricDescriptorsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (MetricDescriptors will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchMetricDescriptorsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of MetricDescriptor) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of MetricDescriptor) |
New token to retrieve next page of results. |
GetMetricDescriptorRequest Message
Request message for method
[GetMetricDescriptor][ntt.monitoring.v4.GetMetricDescriptor]
Name |
Type |
Description |
name |
string (name of MetricDescriptor) |
Name of ntt.monitoring.v4.MetricDescriptor |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
CreateMetricDescriptorRequest Message
Request message for method
[CreateMetricDescriptor][ntt.monitoring.v4.CreateMetricDescriptor]
CreateMetricDescriptorRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateMetricDescriptorRequest Message
Request message for method
[UpdateMetricDescriptor][ntt.monitoring.v4.UpdateMetricDescriptor]
Name |
Type |
Description |
metric_descriptor |
MetricDescriptor |
MetricDescriptor resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateMetricDescriptorRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateMetricDescriptorRequest.ResponseMask |
|
UpdateMetricDescriptorRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
MetricDescriptor |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateMetricDescriptorRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteMetricDescriptorRequest Message
Request message for method
[DeleteMetricDescriptor][ntt.monitoring.v4.DeleteMetricDescriptor]
Name |
Type |
Description |
name |
string (name of MetricDescriptor) |
Name of ntt.monitoring.v4.MetricDescriptor |
ListMetricDescriptorsRequest Message
Request message for method
[ListMetricDescriptors][ntt.monitoring.v4.ListMetricDescriptors]
Name |
Type |
Description |
parent |
string (parent name of MetricDescriptor) |
Parent name of ntt.monitoring.v4.MetricDescriptor |
page_size |
int32 |
Requested page size. Server may return fewer MetricDescriptors than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of MetricDescriptor) |
A token identifying a page of results the server should return. Typically, this is the value of [ListMetricDescriptorsResponse.next_page_token][ntt.monitoring.v4.ListMetricDescriptorsResponse.next_page_token] |
order_by |
string (orderBy of MetricDescriptor) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of MetricDescriptor) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListMetricDescriptorsResponse Message
Request message for method
[ListMetricDescriptors][ntt.monitoring.v4.ListMetricDescriptors]
Name |
Type |
Description |
metric_descriptors |
repeated MetricDescriptor |
The list of MetricDescriptors |
prev_page_token |
string (cursor of MetricDescriptor) |
A token to retrieve previous page of results. Pass this value in the [ListMetricDescriptorsRequest.page_token][ntt.monitoring.v4.ListMetricDescriptorsRequest.page_token] |
next_page_token |
string (cursor of MetricDescriptor) |
A token to retrieve next page of results. Pass this value in the [ListMetricDescriptorsRequest.page_token][ntt.monitoring.v4.ListMetricDescriptorsRequest.page_token] |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total MetricDescriptors across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
MetricDescriptor Enumerations
Here is the list of MetricDescriptor resource enumerations:
MetricDescriptor.MetricKind Enumeration
The kind of measurement. It describes how the data is reported.
Name |
Description |
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. |
MetricDescriptor.ValueType Enumeration
The value type of a metric.
Name |
Description |
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. |
DISTRIBUTION |
The value is a [Distribution ][google.api.Distribution]. |
MetricDescriptor.Indices.CloseStatus Enumeration
CloseStatus indicates if index group part is closed.
When part of the index closes, all indices it is part of are closed.
Older data is still available for reading until group is completely
removed.
Name |
Description |
UNDEFINED |
Index is active for read and write |
SUSPENDED |
index is closed for reading from time when it was suspended. Data prior to suspension is available for reads. Writes are executed normally. SUSPENDED status can be lifted and index will behave like nothing ever happened. Reading will be possible for any time range from creation time. |
CLOSED |
Index is no longer writing, but data prior to the closed status is available for reads. This helps to maintain older indices still available for reading, even if newer better indices were created. |
MetricDescriptor.Indices.SortingFunction.Direction Enumeration
Name |
Description |
UNDEFINED |
|
ASCENDING |
|
DESCENDING |
|
MonitoredResourceDescriptor Resource
An object that describes the schema of a
[MonitoredResource][google.api.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.
Name patterns:
services/{service}/monitoredResourceDescriptors/{monitored_resource_descriptor}
Parent resources:
This section covers the methods
and messages to interact
with MonitoredResourceDescriptor resource.
MonitoredResourceDescriptor Methods
Here is the list of MonitoredResourceDescriptor resource methods:
BatchGetMonitoredResourceDescriptors Method
BatchGetMonitoredResourceDescriptors
rpc BatchGetMonitoredResourceDescriptors(BatchGetMonitoredResourceDescriptorsRequest) returns (BatchGetMonitoredResourceDescriptorsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/monitoredResourceDescriptors.batchGet
The equivalent REST API is:
GET /v4/monitoredResourceDescriptors:batchGet
WatchMonitoredResourceDescriptor Method
WatchMonitoredResourceDescriptor
rpc WatchMonitoredResourceDescriptor(WatchMonitoredResourceDescriptorRequest) returns (WatchMonitoredResourceDescriptorResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/monitoredResourceDescriptors.watch
The equivalent REST API is:
POST /v4/{name=services/*/monitoredResourceDescriptors/*}:watch
WatchMonitoredResourceDescriptors Method
WatchMonitoredResourceDescriptors
rpc WatchMonitoredResourceDescriptors(WatchMonitoredResourceDescriptorsRequest) returns (WatchMonitoredResourceDescriptorsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/monitoredResourceDescriptors.watch
The equivalent REST API is:
POST /v4/{parent=services/*}/monitoredResourceDescriptors:watch
CreateMonitoredResourceDescriptor Method
CreateMonitoredResourceDescriptor
rpc CreateMonitoredResourceDescriptor(CreateMonitoredResourceDescriptorRequest) returns (MonitoredResourceDescriptor)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/monitoredResourceDescriptors.create
The equivalent REST API is:
POST /v4/{parent=services/*}/monitoredResourceDescriptors (BODY: monitored_resource_descriptor)
UpdateMonitoredResourceDescriptor Method
UpdateMonitoredResourceDescriptor
rpc UpdateMonitoredResourceDescriptor(UpdateMonitoredResourceDescriptorRequest) returns (MonitoredResourceDescriptor)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/monitoredResourceDescriptors.update
The equivalent REST API is:
PUT /v4/{monitored_resource_descriptor.name=services/*/monitoredResourceDescriptors/*} (BODY: monitored_resource_descriptor)
DeleteMonitoredResourceDescriptor Method
DeleteMonitoredResourceDescriptor
rpc DeleteMonitoredResourceDescriptor(DeleteMonitoredResourceDescriptorRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/monitoredResourceDescriptors.delete
The equivalent REST API is:
DELETE /v4/{name=services/*/monitoredResourceDescriptors/*}
GetMonitoredResourceDescriptor Method
GetMonitoredResourceDescriptor
rpc GetMonitoredResourceDescriptor(GetMonitoredResourceDescriptorRequest) returns (MonitoredResourceDescriptor)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/monitoredResourceDescriptors.get
The equivalent REST API is:
GET /v4/{name=services/*/monitoredResourceDescriptors/*}
ListMonitoredResourceDescriptors Method
ListMonitoredResourceDescriptors
rpc ListMonitoredResourceDescriptors(ListMonitoredResourceDescriptorsRequest) returns (ListMonitoredResourceDescriptorsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/monitoredResourceDescriptors.list
The equivalent REST API is:
GET /v4/{parent=services/*}/monitoredResourceDescriptors
MonitoredResourceDescriptor Messages
Here is the list of MonitoredResourceDescriptor resource messages:
MonitoredResourceDescriptor Message
Name |
Type |
Description |
name |
string (name of MonitoredResourceDescriptor) |
Name of MonitoredResourceDescriptor When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [\w./-]{2,128} |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
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. |
display_name |
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 |
repeated LabelDescriptor |
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" . |
promoted_label_key_sets |
repeated LabelKeySet |
Promoted Label Key Sets allow defining multiple indexing rules for underlying backend enabling query optimizations. Metric promoted label sets are combined with MonitoredResource promoted label sets and result in PromotedKeySet. If they are not specified, it will be necessary to specify indices in MetricDescriptor. Otherwise they serve as default value if MetricDescriptor does not describe them. |
BatchGetMonitoredResourceDescriptorsRequest Message
A request message of the BatchGetMonitoredResourceDescriptors method.
Name |
Type |
Description |
names |
repeated string (name of MonitoredResourceDescriptor) |
Names of MonitoredResourceDescriptors |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetMonitoredResourceDescriptorsResponse Message
A response message of the BatchGetMonitoredResourceDescriptors method.
WatchMonitoredResourceDescriptorRequest Message
A request message of the WatchMonitoredResourceDescriptor method.
Name |
Type |
Description |
name |
string (name of MonitoredResourceDescriptor) |
Name of ntt.monitoring.v4.MonitoredResourceDescriptor |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchMonitoredResourceDescriptorResponse Message
A response message of the WatchMonitoredResourceDescriptor method.
WatchMonitoredResourceDescriptorsRequest Message
A request message of the WatchMonitoredResourceDescriptors method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of MonitoredResourceDescriptor) |
Parent name of ntt.monitoring.v4.MonitoredResourceDescriptor |
page_size |
int32 |
Requested page size. Server may return fewer MonitoredResourceDescriptors than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of MonitoredResourceDescriptor) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of MonitoredResourceDescriptor) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of MonitoredResourceDescriptor) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to MonitoredResourceDescriptor that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to MonitoredResourceDescriptor that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchMonitoredResourceDescriptorsResponse Message
A response message of the WatchMonitoredResourceDescriptors method.
Name |
Type |
Description |
monitored_resource_descriptor_changes |
repeated MonitoredResourceDescriptorChange |
Changes of MonitoredResourceDescriptors |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All MonitoredResourceDescriptors will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchMonitoredResourceDescriptorsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (MonitoredResourceDescriptors will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchMonitoredResourceDescriptorsResponse.PageTokenChange Message
CreateMonitoredResourceDescriptorRequest Message
A request message of the CreateMonitoredResourceDescriptor method.
CreateMonitoredResourceDescriptorRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateMonitoredResourceDescriptorRequest Message
A request message of the UpdateMonitoredResourceDescriptor method.
Name |
Type |
Description |
monitored_resource_descriptor |
MonitoredResourceDescriptor |
MonitoredResourceDescriptor resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateMonitoredResourceDescriptorRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateMonitoredResourceDescriptorRequest.ResponseMask |
reduce message response size. |
UpdateMonitoredResourceDescriptorRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
MonitoredResourceDescriptor |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateMonitoredResourceDescriptorRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteMonitoredResourceDescriptorRequest Message
A request message of the DeleteMonitoredResourceDescriptor method.
GetMonitoredResourceDescriptorRequest Message
Request message for method
[GetMonitoredResourceDescriptor][ntt.monitoring.v4.GetMonitoredResourceDescriptor]
Name |
Type |
Description |
name |
string (name of MonitoredResourceDescriptor) |
Name of ntt.monitoring.v4.MonitoredResourceDescriptor |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
ListMonitoredResourceDescriptorsRequest Message
Request message for method
[ListMonitoredResourceDescriptors][ntt.monitoring.v4.ListMonitoredResourceDescriptors]
Name |
Type |
Description |
parent |
string (parent name of MonitoredResourceDescriptor) |
Parent name of ntt.monitoring.v4.MonitoredResourceDescriptor |
page_size |
int32 |
Requested page size. Server may return fewer MonitoredResourceDescriptors than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of MonitoredResourceDescriptor) |
A token identifying a page of results the server should return. Typically, this is the value of [ListMonitoredResourceDescriptorsResponse.next_page_token][ntt.monitoring.v4.ListMonitoredResourceDescriptorsResponse.next_page_token] |
order_by |
string (orderBy of MonitoredResourceDescriptor) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of MonitoredResourceDescriptor) |
An optional filter describing the descriptors to be returned. The filter can reference the descriptor’s type and labels. For example, the following filter returns only Google Compute Engine descriptors that have an id label: resource.type = starts_with(“gce_”) AND resource.label:id |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListMonitoredResourceDescriptorsResponse Message
Request message for method
[ListMonitoredResourceDescriptors][ntt.monitoring.v4.ListMonitoredResourceDescriptors]
Name |
Type |
Description |
monitored_resource_descriptors |
repeated MonitoredResourceDescriptor |
The list of MonitoredResourceDescriptors |
prev_page_token |
string (cursor of MonitoredResourceDescriptor) |
A token to retrieve previous page of results. Pass this value in the [ListMonitoredResourceDescriptorsRequest.page_token][ntt.monitoring.v4.ListMonitoredResourceDescriptorsRequest.page_token] |
next_page_token |
string (cursor of MonitoredResourceDescriptor) |
A token to retrieve next page of results. Pass this value in the [ListMonitoredResourceDescriptorsRequest.page_token][ntt.monitoring.v4.ListMonitoredResourceDescriptorsRequest.page_token] |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total MonitoredResourceDescriptors across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
Notification Resource
Notification Resource
Name patterns:
projects/{project}/regions/{region}/alertingPolicies/{alerting_policy}/notifications/{notification}
Parent resources:
This section covers the methods
and messages to interact
with Notification resource.
Notification Methods
Here is the list of Notification resource methods:
GetNotification Method
GetNotification
rpc GetNotification(GetNotificationRequest) returns (Notification)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notifications.get
The equivalent REST API is:
GET /v4/{name=projects/*/regions/*/alertingPolicies/*/notifications/*}
BatchGetNotifications Method
BatchGetNotifications
rpc BatchGetNotifications(BatchGetNotificationsRequest) returns (BatchGetNotificationsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notifications.batchGet
The equivalent REST API is:
GET /v4/notifications:batchGet
ListNotifications Method
ListNotifications
rpc ListNotifications(ListNotificationsRequest) returns (ListNotificationsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notifications.list
The equivalent REST API is:
GET /v4/{parent=projects/*/regions/*/alertingPolicies/*}/notifications
WatchNotification Method
WatchNotification
rpc WatchNotification(WatchNotificationRequest) returns (WatchNotificationResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notifications.watch
The equivalent REST API is:
POST /v4/{name=projects/*/regions/*/alertingPolicies/*/notifications/*}:watch
WatchNotifications Method
WatchNotifications
rpc WatchNotifications(WatchNotificationsRequest) returns (WatchNotificationsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notifications.watch
The equivalent REST API is:
POST /v4/{parent=projects/*/regions/*/alertingPolicies/*}/notifications:watch
CreateNotification Method
CreateNotification
rpc CreateNotification(CreateNotificationRequest) returns (Notification)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notifications.create
The equivalent REST API is:
POST /v4/{parent=projects/*/regions/*/alertingPolicies/*}/notifications (BODY: notification)
UpdateNotification Method
UpdateNotification
rpc UpdateNotification(UpdateNotificationRequest) returns (Notification)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notifications.update
The equivalent REST API is:
PUT /v4/{notification.name=projects/*/regions/*/alertingPolicies/*/notifications/*} (BODY: notification)
DeleteNotification Method
DeleteNotification
rpc DeleteNotification(DeleteNotificationRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notifications.delete
The equivalent REST API is:
DELETE /v4/{name=projects/*/regions/*/alertingPolicies/*/notifications/*}
Notification Messages
Here is the list of Notification resource messages:
Notification Message
Name |
Type |
Description |
name |
string (name of Notification) |
Name of Notification When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.:-]{1,128} |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
alerts |
repeated string (name of Alert) |
References to alerts that are part of this notification TODO: Obsolete and to be retired, in favor of alert_sets |
alert_sets |
repeated Notification.AlertsSet |
Alerts by notification |
state |
Notification.State |
|
Notification.AlertsSet Message
Name |
Type |
Description |
condition |
string (name of AlertingCondition) |
Condition holding alerts |
ids |
repeated string |
List of alert IDs. |
Notification.State Message
Name |
Type |
Description |
is_resolved |
bool |
|
notification_state |
repeated Notification.State.NotificationState |
Notification state |
incident_notify_attempts_done |
bool |
Internal state to keep track of whether any notification sends needs to be retried for new incident |
resolution_notify_attempts_done |
bool |
Internal state to keep track of whether any notification sends needs to be retried for resolution |
alerts_lifetime |
TimeRange |
Time range for which alerts for the policy are clubbed together |
resolution_notification_state |
repeated Notification.State.NotificationState |
|
lifecycle_completed |
bool |
Alert has ended and any needed notifications are processed |
Notification.State.NotificationState Message
Notification.State.NotificationState.ProviderData Message
Provider specific data
Notification.State.NotificationState.ProviderData.Slack Message
Slack
Name |
Type |
Description |
ts |
string |
|
Pager Duty
Name |
Type |
Description |
incident_key |
string |
|
Notification.State.NotificationState.ProviderData.WebHook Message
Notification.State.NotificationState.ProviderData.WebHook.FailedChunks Message
Name |
Type |
Description |
alert_offset |
int64 |
|
error |
string |
|
GetNotificationRequest Message
A request message of the GetNotification method.
Name |
Type |
Description |
name |
string (name of Notification) |
Name of ntt.monitoring.v4.Notification |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetNotificationsRequest Message
A request message of the BatchGetNotifications method.
Name |
Type |
Description |
names |
repeated string (name of Notification) |
Names of Notifications |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetNotificationsResponse Message
A response message of the BatchGetNotifications method.
Name |
Type |
Description |
notifications |
repeated Notification |
found Notifications |
missing |
repeated string (name of Notification) |
list of not found Notifications |
ListNotificationsRequest Message
A request message of the ListNotifications method.
Name |
Type |
Description |
parent |
string (parent name of Notification) |
Parent name of ntt.monitoring.v4.Notification |
page_size |
int32 |
Requested page size. Server may return fewer Notifications than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of Notification) |
A token identifying a page of results the server should return. Typically, this is the value of ListNotificationsResponse.next_page_token. |
order_by |
string (orderBy of Notification) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of Notification) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListNotificationsResponse Message
A response message of the ListNotifications method.
Name |
Type |
Description |
notifications |
repeated Notification |
The list of Notifications |
prev_page_token |
string (cursor of Notification) |
A token to retrieve previous page of results. Pass this value in the ListNotificationsRequest.page_token. |
next_page_token |
string (cursor of Notification) |
A token to retrieve next page of results. Pass this value in the ListNotificationsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total Notifications across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchNotificationRequest Message
A request message of the WatchNotification method.
Name |
Type |
Description |
name |
string (name of Notification) |
Name of ntt.monitoring.v4.Notification |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchNotificationResponse Message
A response message of the WatchNotification method.
WatchNotificationsRequest Message
A request message of the WatchNotifications method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of Notification) |
Parent name of ntt.monitoring.v4.Notification |
page_size |
int32 |
Requested page size. Server may return fewer Notifications than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of Notification) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of Notification) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of Notification) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Notification that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Notification that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchNotificationsResponse Message
A response message of the WatchNotifications method.
Name |
Type |
Description |
notification_changes |
repeated NotificationChange |
Changes of Notifications |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Notifications will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchNotificationsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Notifications will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchNotificationsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of Notification) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of Notification) |
New token to retrieve next page of results. |
CreateNotificationRequest Message
A request message of the CreateNotification method.
CreateNotificationRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateNotificationRequest Message
A request message of the UpdateNotification method.
Name |
Type |
Description |
notification |
Notification |
Notification resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateNotificationRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateNotificationRequest.ResponseMask |
reduce message response size. |
UpdateNotificationRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
Notification |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateNotificationRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteNotificationRequest Message
A request message of the DeleteNotification method.
Name |
Type |
Description |
name |
string (name of Notification) |
Name of ntt.monitoring.v4.Notification |
Notification Enumerations
Here is the list of Notification resource enumerations:
Notification.State.NotificationState.Status Enumeration
Name |
Description |
UNKNOWN |
|
PENDING |
|
FAILED |
|
SUPPRESSED |
|
SENT |
|
DELIVERED |
Status types that can be used by webhook integrated providers, like PagerDuty. |
ACKNOWLEDGED |
|
UNACKNOWLEDGED |
|
NotificationChannel Resource
NotificationChannel Resource
Name patterns:
projects/{project}/notificationChannels/{notification_channel}
Parent resources:
This section covers the methods
and messages to interact
with NotificationChannel resource.
NotificationChannel Methods
Here is the list of NotificationChannel resource methods:
GetNotificationChannel Method
GetNotificationChannel
rpc GetNotificationChannel(GetNotificationChannelRequest) returns (NotificationChannel)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.get
The equivalent REST API is:
GET /v4/{name=projects/*/notificationChannels/*}
BatchGetNotificationChannels Method
BatchGetNotificationChannels
rpc BatchGetNotificationChannels(BatchGetNotificationChannelsRequest) returns (BatchGetNotificationChannelsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.batchGet
The equivalent REST API is:
GET /v4/notificationChannels:batchGet
ListNotificationChannels Method
ListNotificationChannels
rpc ListNotificationChannels(ListNotificationChannelsRequest) returns (ListNotificationChannelsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.list
The equivalent REST API is:
GET /v4/{parent=projects/*}/notificationChannels
WatchNotificationChannel Method
WatchNotificationChannel
rpc WatchNotificationChannel(WatchNotificationChannelRequest) returns (WatchNotificationChannelResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.watch
The equivalent REST API is:
POST /v4/{name=projects/*/notificationChannels/*}:watch
WatchNotificationChannels Method
WatchNotificationChannels
rpc WatchNotificationChannels(WatchNotificationChannelsRequest) returns (WatchNotificationChannelsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.watch
The equivalent REST API is:
POST /v4/{parent=projects/*}/notificationChannels:watch
CreateNotificationChannel Method
CreateNotificationChannel
rpc CreateNotificationChannel(CreateNotificationChannelRequest) returns (NotificationChannel)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.create
The equivalent REST API is:
POST /v4/{parent=projects/*}/notificationChannels (BODY: notification_channel)
UpdateNotificationChannel Method
UpdateNotificationChannel
rpc UpdateNotificationChannel(UpdateNotificationChannelRequest) returns (NotificationChannel)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.update
The equivalent REST API is:
PUT /v4/{notification_channel.name=projects/*/notificationChannels/*} (BODY: notification_channel)
DeleteNotificationChannel Method
DeleteNotificationChannel
rpc DeleteNotificationChannel(DeleteNotificationChannelRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.delete
The equivalent REST API is:
DELETE /v4/{name=projects/*/notificationChannels/*}
TestNotificationChannel Method
TestNotificationChannel
rpc TestNotificationChannel(TestNotificationChannelRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/notificationChannels.test
The equivalent REST API is:
POST /v4/{name=projects/*/notificationChannels/*}:test
NotificationChannel Messages
Here is the list of NotificationChannel resource messages:
NotificationChannel Message
Name |
Type |
Description |
name |
string (name of NotificationChannel) |
Name of NotificationChannel When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9] |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
display_name |
string |
Display Name |
spec |
NotificationChannel.Spec |
Specification |
state |
NotificationChannel.State |
State |
description |
string |
description |
NotificationChannel.Spec Message
Spec of NotificationChannel
NotificationChannel.State Message
State of NotificationChannel
NotificationChannel.Spec.Email Message
Email Spec
Name |
Type |
Description |
addresses |
repeated string |
Email Addresses |
NotificationChannel.Spec.Slack Message
Slack Spec
Name |
Type |
Description |
incoming_webhook |
string |
Slack Incoming Webhook URL |
PagerDuty Spec
Name |
Type |
Description |
service_key |
string |
PagerDuty Service Key |
NotificationChannel.Spec.Webhook Message
Webhook Spec
Name |
Type |
Description |
url |
string |
Webhook URL |
headers |
repeated NotificationChannel.Spec.Webhook.Header |
Headers |
notification_mask |
.google.protobuf.FieldMask |
Notification mask contains list of fields to include in the message. Notification consists of following fields: * “project” -> See monitoring.edgelq.com/Project protobuf spec for subfields * “organization” -> See iam.edgelq.com/Project protobuf spec for subfields * “alertingPolicy” -> See monitoring.edgelq.com/AlertingPolicy protobuf spec for subfields * “notification” -> See monitoring.edgelq.com/Notification protobuf spec for subfields * “events” -> Array of events, each item has subfields: * “alertingCondition” -> See monitoring.edgelq.com/AlertingCondition protobuf spec for subfields * “metricDescriptor” -> See monitoring.edgelq.com/MetricDescriptor protobuf spec for subfields * “monitoredResourceDescriptor” -> See monitoring.edgelq.com/MonitoredResourceDescriptor protobuf spec for subfields * “alerts” -> Array of monitoring.edgelq.com/Alert instances, see protobuf spec for subfields. If notification_mask is not specified, following default is applied: * “project.name” * “project.title” * “organization.name” * “organization.title” * “events.alertingCondition.name” * “events.alertingCondition.displayName” * “events.alertingCondition.spec” * “events.metricDescriptor.name” * “events.metricDescriptor.displayName” * “events.metricDescriptor.type” * “events.metricDescriptor.labels” * “events.metricDescriptor.metricKind” * “events.metricDescriptor.valueType” * “events.metricDescriptor.unit” * “events.alerts.name” * “events.alerts.displayName” * “events.alerts.info.timeSerie.key” * “events.alerts.info.timeSerie.metric” * “events.alerts.info.timeSerie.monitoredResource” * “events.alerts.info.observedValues” * “events.alerts.state” |
max_message_size_mb |
double |
default is 0 means all the alerts in a notification are sent in single request. Breaking into multiple messages may be significantly slower than sending a single message. For example, to use 250KB chunks, set 0.25 MB |
Header
Name |
Type |
Description |
key |
string |
|
value |
string |
|
NotificationChannel.State.Error Message
Error of NotificationChannel
Name |
Type |
Description |
time |
.google.protobuf.Timestamp |
|
message |
string |
|
GetNotificationChannelRequest Message
A request message of the GetNotificationChannel method.
Name |
Type |
Description |
name |
string (name of NotificationChannel) |
Name of ntt.monitoring.v4.NotificationChannel |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetNotificationChannelsRequest Message
A request message of the BatchGetNotificationChannels method.
Name |
Type |
Description |
names |
repeated string (name of NotificationChannel) |
Names of NotificationChannels |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetNotificationChannelsResponse Message
A response message of the BatchGetNotificationChannels method.
Name |
Type |
Description |
notification_channels |
repeated NotificationChannel |
found NotificationChannels |
missing |
repeated string (name of NotificationChannel) |
list of not found NotificationChannels |
ListNotificationChannelsRequest Message
A request message of the ListNotificationChannels method.
Name |
Type |
Description |
parent |
string (parent name of NotificationChannel) |
Parent name of ntt.monitoring.v4.NotificationChannel |
page_size |
int32 |
Requested page size. Server may return fewer NotificationChannels than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of NotificationChannel) |
A token identifying a page of results the server should return. Typically, this is the value of ListNotificationChannelsResponse.next_page_token. |
order_by |
string (orderBy of NotificationChannel) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of NotificationChannel) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListNotificationChannelsResponse Message
A response message of the ListNotificationChannels method.
Name |
Type |
Description |
notification_channels |
repeated NotificationChannel |
The list of NotificationChannels |
prev_page_token |
string (cursor of NotificationChannel) |
A token to retrieve previous page of results. Pass this value in the ListNotificationChannelsRequest.page_token. |
next_page_token |
string (cursor of NotificationChannel) |
A token to retrieve next page of results. Pass this value in the ListNotificationChannelsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total NotificationChannels across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchNotificationChannelRequest Message
A request message of the WatchNotificationChannel method.
Name |
Type |
Description |
name |
string (name of NotificationChannel) |
Name of ntt.monitoring.v4.NotificationChannel |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchNotificationChannelResponse Message
A response message of the WatchNotificationChannel method.
WatchNotificationChannelsRequest Message
A request message of the WatchNotificationChannels method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of NotificationChannel) |
Parent name of ntt.monitoring.v4.NotificationChannel |
page_size |
int32 |
Requested page size. Server may return fewer NotificationChannels than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of NotificationChannel) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of NotificationChannel) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of NotificationChannel) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to NotificationChannel that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to NotificationChannel that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchNotificationChannelsResponse Message
A response message of the WatchNotificationChannels method.
Name |
Type |
Description |
notification_channel_changes |
repeated NotificationChannelChange |
Changes of NotificationChannels |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All NotificationChannels will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchNotificationChannelsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (NotificationChannels will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchNotificationChannelsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of NotificationChannel) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of NotificationChannel) |
New token to retrieve next page of results. |
CreateNotificationChannelRequest Message
A request message of the CreateNotificationChannel method.
CreateNotificationChannelRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateNotificationChannelRequest Message
A request message of the UpdateNotificationChannel method.
Name |
Type |
Description |
notification_channel |
NotificationChannel |
NotificationChannel resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateNotificationChannelRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateNotificationChannelRequest.ResponseMask |
reduce message response size. |
UpdateNotificationChannelRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
NotificationChannel |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateNotificationChannelRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteNotificationChannelRequest Message
A request message of the DeleteNotificationChannel method.
Name |
Type |
Description |
name |
string (name of NotificationChannel) |
Name of ntt.monitoring.v4.NotificationChannel |
TestNotificationChannelRequest Message
Request message for method
[TestNotificationChannel][ntt.monitoring.v4.TestNotificationChannel]
Name |
Type |
Description |
name |
string (name of NotificationChannel) |
Name of ntt.monitoring.v4.NotificationChannel |
NotificationChannel Enumerations
Here is the list of NotificationChannel resource enumerations:
NotificationChannel.Spec.Type Enumeration
Type of NotificationChannel
Name |
Description |
TYPE_UNSPECIFIED |
Type is unknown |
EMAIL |
Email NotificationChannel |
SLACK |
Slack NotificationChannel |
WEBHOOK |
Webhook NotificationChannel |
NotificationChannel.State.Status Enumeration
State of NotificationChannel
Name |
Description |
STATE_UNSPECIFIED |
State is unknown |
ACTIVE |
NotificationChannel is active |
DISABLED |
NotificationChannel is disabled |
ERROR |
Error of NotificationChannel |
PhantomTimeSerie Resource
PhantomTimeSerie Resource
Name patterns:
projects/{project}/regions/{region}/phantomTimeSeries/{phantom_time_serie}
Parent resources:
This section covers the methods
and messages to interact
with PhantomTimeSerie resource.
PhantomTimeSerie Methods
Here is the list of PhantomTimeSerie resource methods:
GetPhantomTimeSerie Method
GetPhantomTimeSerie
rpc GetPhantomTimeSerie(GetPhantomTimeSerieRequest) returns (PhantomTimeSerie)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/phantomTimeSeries.get
The equivalent REST API is:
GET /v4/{name=projects/*/regions/*/phantomTimeSeries/*}
BatchGetPhantomTimeSeries Method
BatchGetPhantomTimeSeries
rpc BatchGetPhantomTimeSeries(BatchGetPhantomTimeSeriesRequest) returns (BatchGetPhantomTimeSeriesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/phantomTimeSeries.batchGet
The equivalent REST API is:
GET /v4/phantomTimeSeries:batchGet
ListPhantomTimeSeries Method
ListPhantomTimeSeries
rpc ListPhantomTimeSeries(ListPhantomTimeSeriesRequest) returns (ListPhantomTimeSeriesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/phantomTimeSeries.list
The equivalent REST API is:
GET /v4/{parent=projects/*/regions/*}/phantomTimeSeries
WatchPhantomTimeSerie Method
WatchPhantomTimeSerie
rpc WatchPhantomTimeSerie(WatchPhantomTimeSerieRequest) returns (WatchPhantomTimeSerieResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/phantomTimeSeries.watch
The equivalent REST API is:
POST /v4/{name=projects/*/regions/*/phantomTimeSeries/*}:watch
WatchPhantomTimeSeries Method
WatchPhantomTimeSeries
rpc WatchPhantomTimeSeries(WatchPhantomTimeSeriesRequest) returns (WatchPhantomTimeSeriesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/phantomTimeSeries.watch
The equivalent REST API is:
POST /v4/{parent=projects/*/regions/*}/phantomTimeSeries:watch
CreatePhantomTimeSerie Method
CreatePhantomTimeSerie
rpc CreatePhantomTimeSerie(CreatePhantomTimeSerieRequest) returns (PhantomTimeSerie)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/phantomTimeSeries.create
The equivalent REST API is:
POST /v4/{parent=projects/*/regions/*}/phantomTimeSeries (BODY: phantom_time_serie)
UpdatePhantomTimeSerie Method
UpdatePhantomTimeSerie
rpc UpdatePhantomTimeSerie(UpdatePhantomTimeSerieRequest) returns (PhantomTimeSerie)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/phantomTimeSeries.update
The equivalent REST API is:
PUT /v4/{phantom_time_serie.name=projects/*/regions/*/phantomTimeSeries/*} (BODY: phantom_time_serie)
DeletePhantomTimeSerie Method
DeletePhantomTimeSerie
rpc DeletePhantomTimeSerie(DeletePhantomTimeSerieRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/phantomTimeSeries.delete
The equivalent REST API is:
DELETE /v4/{name=projects/*/regions/*/phantomTimeSeries/*}
PhantomTimeSerie Messages
Here is the list of PhantomTimeSerie resource messages:
PhantomTimeSerie Message
Name |
Type |
Description |
name |
string (name of PhantomTimeSerie) |
Name of PhantomTimeSerie When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [\w+/=]{1,256} |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
key |
bytes |
TimeSerie key identifies unique TimeSeries tuple: <project, metric.type, metric.labels, resource.type, resource.labels> Kind/ValueType are not present in key Key is not to be decoded outside of service, but treated as opaque string |
project |
string |
Internal use - for bulk reporting of TimeSeries |
metric |
Metric |
The associated metric. A fully-specified metric used to identify the time series. This field cannot be updated, can be only set during creation. |
resource |
MonitoredResource |
The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data. This field cannot be updated, can be only set during creation. |
metric_kind |
MetricDescriptor.MetricKind |
The metric kind of the time series. When listing time series, this metric kind might be different from the metric kind of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the metric kind of the associated metric. If the associated metric’s descriptor must be auto-created, then this field specifies the metric kind of the new descriptor and must be either GAUGE (the default) or CUMULATIVE . |
value_type |
MetricDescriptor.ValueType |
The value type of the time series. When listing time series, this value type might be different from the value type of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the type of the data in the points field. |
value |
TypedValue |
Phantom value |
GetPhantomTimeSerieRequest Message
A request message of the GetPhantomTimeSerie method.
Name |
Type |
Description |
name |
string (name of PhantomTimeSerie) |
Name of ntt.monitoring.v4.PhantomTimeSerie |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetPhantomTimeSeriesRequest Message
A request message of the BatchGetPhantomTimeSeries method.
Name |
Type |
Description |
names |
repeated string (name of PhantomTimeSerie) |
Names of PhantomTimeSeries |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetPhantomTimeSeriesResponse Message
A response message of the BatchGetPhantomTimeSeries method.
Name |
Type |
Description |
phantom_time_series |
repeated PhantomTimeSerie |
found PhantomTimeSeries |
missing |
repeated string (name of PhantomTimeSerie) |
list of not found PhantomTimeSeries |
ListPhantomTimeSeriesRequest Message
A request message of the ListPhantomTimeSeries method.
Name |
Type |
Description |
parent |
string (parent name of PhantomTimeSerie) |
Parent name of ntt.monitoring.v4.PhantomTimeSerie |
page_size |
int32 |
Requested page size. Server may return fewer PhantomTimeSeries than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of PhantomTimeSerie) |
A token identifying a page of results the server should return. Typically, this is the value of ListPhantomTimeSeriesResponse.next_page_token. |
order_by |
string (orderBy of PhantomTimeSerie) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of PhantomTimeSerie) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListPhantomTimeSeriesResponse Message
A response message of the ListPhantomTimeSeries method.
Name |
Type |
Description |
phantom_time_series |
repeated PhantomTimeSerie |
The list of PhantomTimeSeries |
prev_page_token |
string (cursor of PhantomTimeSerie) |
A token to retrieve previous page of results. Pass this value in the ListPhantomTimeSeriesRequest.page_token. |
next_page_token |
string (cursor of PhantomTimeSerie) |
A token to retrieve next page of results. Pass this value in the ListPhantomTimeSeriesRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total PhantomTimeSeries across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchPhantomTimeSerieRequest Message
A request message of the WatchPhantomTimeSerie method.
Name |
Type |
Description |
name |
string (name of PhantomTimeSerie) |
Name of ntt.monitoring.v4.PhantomTimeSerie |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchPhantomTimeSerieResponse Message
A response message of the WatchPhantomTimeSerie method.
WatchPhantomTimeSeriesRequest Message
A request message of the WatchPhantomTimeSeries method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of PhantomTimeSerie) |
Parent name of ntt.monitoring.v4.PhantomTimeSerie |
page_size |
int32 |
Requested page size. Server may return fewer PhantomTimeSeries than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of PhantomTimeSerie) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of PhantomTimeSerie) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of PhantomTimeSerie) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to PhantomTimeSerie that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to PhantomTimeSerie that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchPhantomTimeSeriesResponse Message
A response message of the WatchPhantomTimeSeries method.
Name |
Type |
Description |
phantom_time_serie_changes |
repeated PhantomTimeSerieChange |
Changes of PhantomTimeSeries |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All PhantomTimeSeries will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchPhantomTimeSeriesResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (PhantomTimeSeries will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchPhantomTimeSeriesResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of PhantomTimeSerie) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of PhantomTimeSerie) |
New token to retrieve next page of results. |
CreatePhantomTimeSerieRequest Message
A request message of the CreatePhantomTimeSerie method.
CreatePhantomTimeSerieRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdatePhantomTimeSerieRequest Message
A request message of the UpdatePhantomTimeSerie method.
Name |
Type |
Description |
phantom_time_serie |
PhantomTimeSerie |
PhantomTimeSerie resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdatePhantomTimeSerieRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdatePhantomTimeSerieRequest.ResponseMask |
reduce message response size. |
UpdatePhantomTimeSerieRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
PhantomTimeSerie |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdatePhantomTimeSerieRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeletePhantomTimeSerieRequest Message
A request message of the DeletePhantomTimeSerie method.
Name |
Type |
Description |
name |
string (name of PhantomTimeSerie) |
Name of ntt.monitoring.v4.PhantomTimeSerie |
Project Resource
Project Resource
Name patterns:
This section covers the methods
and messages to interact
with Project resource.
Project Methods
Here is the list of Project resource methods:
GetProject Method
GetProject
rpc GetProject(GetProjectRequest) returns (Project)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/projects.get
The equivalent REST API is:
GET /v4/{name=projects/*}
BatchGetProjects Method
BatchGetProjects
rpc BatchGetProjects(BatchGetProjectsRequest) returns (BatchGetProjectsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/projects.batchGet
The equivalent REST API is:
GET /v4/projects:batchGet
ListProjects Method
ListProjects
rpc ListProjects(ListProjectsRequest) returns (ListProjectsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/projects.list
The equivalent REST API is:
WatchProject Method
WatchProject
rpc WatchProject(WatchProjectRequest) returns (WatchProjectResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/projects.watch
The equivalent REST API is:
POST /v4/{name=projects/*}:watch
WatchProjects Method
WatchProjects
rpc WatchProjects(WatchProjectsRequest) returns (WatchProjectsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/projects.watch
The equivalent REST API is:
CreateProject Method
CreateProject
rpc CreateProject(CreateProjectRequest) returns (Project)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/projects.create
The equivalent REST API is:
POST /v4/projects (BODY: project)
UpdateProject Method
UpdateProject
rpc UpdateProject(UpdateProjectRequest) returns (Project)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/projects.update
The equivalent REST API is:
PUT /v4/{project.name=projects/*} (BODY: project)
DeleteProject Method
DeleteProject
rpc DeleteProject(DeleteProjectRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/projects.delete
The equivalent REST API is:
DELETE /v4/{name=projects/*}
Project Messages
Here is the list of Project resource messages:
Project Message
Name |
Type |
Description |
name |
string (name of Project) |
Name of Project When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9] |
title |
string |
|
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
multi_region_policy |
MultiRegionPolicy |
Multi region policy |
GetProjectRequest Message
A request message of the GetProject method.
Name |
Type |
Description |
name |
string (name of Project) |
Name of ntt.monitoring.v4.Project |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetProjectsRequest Message
A request message of the BatchGetProjects method.
Name |
Type |
Description |
names |
repeated string (name of Project) |
Names of Projects |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetProjectsResponse Message
A response message of the BatchGetProjects method.
Name |
Type |
Description |
projects |
repeated Project |
found Projects |
missing |
repeated string (name of Project) |
list of not found Projects |
ListProjectsRequest Message
A request message of the ListProjects method.
Name |
Type |
Description |
page_size |
int32 |
Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of Project) |
A token identifying a page of results the server should return. Typically, this is the value of ListProjectsResponse.next_page_token. |
order_by |
string (orderBy of Project) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of Project) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListProjectsResponse Message
A response message of the ListProjects method.
Name |
Type |
Description |
projects |
repeated Project |
The list of Projects |
prev_page_token |
string (cursor of Project) |
A token to retrieve previous page of results. Pass this value in the ListProjectsRequest.page_token. |
next_page_token |
string (cursor of Project) |
A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total Projects across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchProjectRequest Message
A request message of the WatchProject method.
Name |
Type |
Description |
name |
string (name of Project) |
Name of ntt.monitoring.v4.Project |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchProjectResponse Message
A response message of the WatchProject method.
WatchProjectsRequest Message
A request message of the WatchProjects method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
page_size |
int32 |
Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of Project) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of Project) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of Project) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to Project that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to Project that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchProjectsResponse Message
A response message of the WatchProjects method.
Name |
Type |
Description |
project_changes |
repeated ProjectChange |
Changes of Projects |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All Projects will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchProjectsResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (Projects will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchProjectsResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of Project) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of Project) |
New token to retrieve next page of results. |
CreateProjectRequest Message
A request message of the CreateProject method.
CreateProjectRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateProjectRequest Message
A request message of the UpdateProject method.
Name |
Type |
Description |
project |
Project |
Project resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateProjectRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateProjectRequest.ResponseMask |
reduce message response size. |
UpdateProjectRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
Project |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateProjectRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteProjectRequest Message
A request message of the DeleteProject method.
Name |
Type |
Description |
name |
string (name of Project) |
Name of ntt.monitoring.v4.Project |
RecoveryStoreShardingInfo Resource
RecoveryStoreShardingInfo Resource
Name patterns:
regions/{region}/recoveryStoreShardingInfos/{recovery_store_sharding_info}
This section covers the methods
and messages to interact
with RecoveryStoreShardingInfo resource.
RecoveryStoreShardingInfo Methods
Here is the list of RecoveryStoreShardingInfo resource methods:
GetRecoveryStoreShardingInfo Method
GetRecoveryStoreShardingInfo
rpc GetRecoveryStoreShardingInfo(GetRecoveryStoreShardingInfoRequest) returns (RecoveryStoreShardingInfo)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/recoveryStoreShardingInfos.get
The equivalent REST API is:
GET /v4/{name=regions/*/recoveryStoreShardingInfos/*}
BatchGetRecoveryStoreShardingInfos Method
BatchGetRecoveryStoreShardingInfos
rpc BatchGetRecoveryStoreShardingInfos(BatchGetRecoveryStoreShardingInfosRequest) returns (BatchGetRecoveryStoreShardingInfosResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/recoveryStoreShardingInfos.batchGet
The equivalent REST API is:
GET /v4/recoveryStoreShardingInfos:batchGet
ListRecoveryStoreShardingInfos Method
ListRecoveryStoreShardingInfos
rpc ListRecoveryStoreShardingInfos(ListRecoveryStoreShardingInfosRequest) returns (ListRecoveryStoreShardingInfosResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/recoveryStoreShardingInfos.list
The equivalent REST API is:
GET /v4/{parent=regions/*}/recoveryStoreShardingInfos
WatchRecoveryStoreShardingInfo Method
WatchRecoveryStoreShardingInfo
rpc WatchRecoveryStoreShardingInfo(WatchRecoveryStoreShardingInfoRequest) returns (WatchRecoveryStoreShardingInfoResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/recoveryStoreShardingInfos.watch
The equivalent REST API is:
POST /v4/{name=regions/*/recoveryStoreShardingInfos/*}:watch
WatchRecoveryStoreShardingInfos Method
WatchRecoveryStoreShardingInfos
rpc WatchRecoveryStoreShardingInfos(WatchRecoveryStoreShardingInfosRequest) returns (WatchRecoveryStoreShardingInfosResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/recoveryStoreShardingInfos.watch
The equivalent REST API is:
POST /v4/{parent=regions/*}/recoveryStoreShardingInfos:watch
CreateRecoveryStoreShardingInfo Method
CreateRecoveryStoreShardingInfo
rpc CreateRecoveryStoreShardingInfo(CreateRecoveryStoreShardingInfoRequest) returns (RecoveryStoreShardingInfo)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/recoveryStoreShardingInfos.create
The equivalent REST API is:
POST /v4/{parent=regions/*}/recoveryStoreShardingInfos (BODY: recovery_store_sharding_info)
UpdateRecoveryStoreShardingInfo Method
UpdateRecoveryStoreShardingInfo
rpc UpdateRecoveryStoreShardingInfo(UpdateRecoveryStoreShardingInfoRequest) returns (RecoveryStoreShardingInfo)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/recoveryStoreShardingInfos.update
The equivalent REST API is:
PUT /v4/{recovery_store_sharding_info.name=regions/*/recoveryStoreShardingInfos/*} (BODY: recovery_store_sharding_info)
DeleteRecoveryStoreShardingInfo Method
DeleteRecoveryStoreShardingInfo
rpc DeleteRecoveryStoreShardingInfo(DeleteRecoveryStoreShardingInfoRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/recoveryStoreShardingInfos.delete
The equivalent REST API is:
DELETE /v4/{name=regions/*/recoveryStoreShardingInfos/*}
RecoveryStoreShardingInfo Messages
Here is the list of RecoveryStoreShardingInfo resource messages:
RecoveryStoreShardingInfo Message
Name |
Type |
Description |
name |
string (name of RecoveryStoreShardingInfo) |
Name of RecoveryStoreShardingInfo When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-zA-Z0-9_.-]{1,128} |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
validity_period |
RecoveryStoreShardingInfo.ValidityPeriod |
Period during which this sharding spec is valid. |
spec |
RecoveryStoreShardingInfo.ShardingSpec |
Sharding spec for given validity period. |
RecoveryStoreShardingInfo.ValidityPeriod Message
Validity period specifies for which period of time this sharding spec is
valid.
Name |
Type |
Description |
start_time |
.google.protobuf.Timestamp |
Start time of validity period. |
end_time |
.google.protobuf.Timestamp |
End time of validity period. |
RecoveryStoreShardingInfo.ShardingSpec Message
Sharding spec defines how time series points is divided across two
dimensions: key (shards_count) and time (ts_blob_period).
Name |
Type |
Description |
ts_blob_period |
.google.protobuf.Duration |
Defines period of time series points in a single blob. |
shards_count |
uint32s |
Number of shards (by key) in given shard period |
GetRecoveryStoreShardingInfoRequest Message
A request message of the GetRecoveryStoreShardingInfo method.
Name |
Type |
Description |
name |
string (name of RecoveryStoreShardingInfo) |
Name of ntt.monitoring.v4.RecoveryStoreShardingInfo |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetRecoveryStoreShardingInfosRequest Message
A request message of the BatchGetRecoveryStoreShardingInfos method.
Name |
Type |
Description |
names |
repeated string (name of RecoveryStoreShardingInfo) |
Names of RecoveryStoreShardingInfos |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetRecoveryStoreShardingInfosResponse Message
A response message of the BatchGetRecoveryStoreShardingInfos method.
ListRecoveryStoreShardingInfosRequest Message
A request message of the ListRecoveryStoreShardingInfos method.
Name |
Type |
Description |
parent |
string (parent name of RecoveryStoreShardingInfo) |
Parent name of ntt.monitoring.v4.RecoveryStoreShardingInfo |
page_size |
int32 |
Requested page size. Server may return fewer RecoveryStoreShardingInfos than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of RecoveryStoreShardingInfo) |
A token identifying a page of results the server should return. Typically, this is the value of ListRecoveryStoreShardingInfosResponse.next_page_token. |
order_by |
string (orderBy of RecoveryStoreShardingInfo) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of RecoveryStoreShardingInfo) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListRecoveryStoreShardingInfosResponse Message
A response message of the ListRecoveryStoreShardingInfos method.
Name |
Type |
Description |
recovery_store_sharding_infos |
repeated RecoveryStoreShardingInfo |
The list of RecoveryStoreShardingInfos |
prev_page_token |
string (cursor of RecoveryStoreShardingInfo) |
A token to retrieve previous page of results. Pass this value in the ListRecoveryStoreShardingInfosRequest.page_token. |
next_page_token |
string (cursor of RecoveryStoreShardingInfo) |
A token to retrieve next page of results. Pass this value in the ListRecoveryStoreShardingInfosRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total RecoveryStoreShardingInfos across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchRecoveryStoreShardingInfoRequest Message
A request message of the WatchRecoveryStoreShardingInfo method.
Name |
Type |
Description |
name |
string (name of RecoveryStoreShardingInfo) |
Name of ntt.monitoring.v4.RecoveryStoreShardingInfo |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchRecoveryStoreShardingInfoResponse Message
A response message of the WatchRecoveryStoreShardingInfo method.
WatchRecoveryStoreShardingInfosRequest Message
A request message of the WatchRecoveryStoreShardingInfos method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of RecoveryStoreShardingInfo) |
Parent name of ntt.monitoring.v4.RecoveryStoreShardingInfo |
page_size |
int32 |
Requested page size. Server may return fewer RecoveryStoreShardingInfos than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of RecoveryStoreShardingInfo) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of RecoveryStoreShardingInfo) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of RecoveryStoreShardingInfo) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to RecoveryStoreShardingInfo that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to RecoveryStoreShardingInfo that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchRecoveryStoreShardingInfosResponse Message
A response message of the WatchRecoveryStoreShardingInfos method.
Name |
Type |
Description |
recovery_store_sharding_info_changes |
repeated RecoveryStoreShardingInfoChange |
Changes of RecoveryStoreShardingInfos |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All RecoveryStoreShardingInfos will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchRecoveryStoreShardingInfosResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (RecoveryStoreShardingInfos will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchRecoveryStoreShardingInfosResponse.PageTokenChange Message
CreateRecoveryStoreShardingInfoRequest Message
A request message of the CreateRecoveryStoreShardingInfo method.
CreateRecoveryStoreShardingInfoRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateRecoveryStoreShardingInfoRequest Message
A request message of the UpdateRecoveryStoreShardingInfo method.
Name |
Type |
Description |
recovery_store_sharding_info |
RecoveryStoreShardingInfo |
RecoveryStoreShardingInfo resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateRecoveryStoreShardingInfoRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateRecoveryStoreShardingInfoRequest.ResponseMask |
reduce message response size. |
UpdateRecoveryStoreShardingInfoRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
RecoveryStoreShardingInfo |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateRecoveryStoreShardingInfoRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteRecoveryStoreShardingInfoRequest Message
A request message of the DeleteRecoveryStoreShardingInfo method.
TimeSerie Resource
TimeSerie Resource
Name patterns:
projects/{project}/timeSeries/{time_serie}
projects/{project}/regions/{region}/buckets/{bucket}/timeSeries/{time_serie}
Parent resources:
This section covers the methods
and messages to interact
with TimeSerie resource.
TimeSerie Methods
Here is the list of TimeSerie resource methods:
ListTimeSeries Method
ListTimeSeries
rpc ListTimeSeries(ListTimeSeriesRequest) returns (ListTimeSeriesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeries.list
The equivalent REST API is:
GET /v4/{parent=projects/*}/timeSeries
GET /v4/{parent=projects/*/regions/*/buckets/*}/timeSeries
QueryProjectTimeSeriesStats Method
QueryProjectTimeSeriesStats
rpc QueryProjectTimeSeriesStats(QueryProjectTimeSeriesStatsRequest) returns (QueryProjectTimeSeriesStatsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeries.queryProjectStats
The equivalent REST API is:
GET /v4/{project=projects/*}/timeSeries
QueryServiceTimeSeriesStats Method
QueryServiceTimeSeriesStats
rpc QueryServiceTimeSeriesStats(QueryServiceTimeSeriesStatsRequest) returns (QueryServiceTimeSeriesStatsResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeries.queryServiceStats
The equivalent REST API is:
GET /v4/{service=services/*}/timeSeries
CreateTimeSeries Method
CreateTimeSeries
rpc CreateTimeSeries(CreateTimeSeriesRequest) returns (CreateTimeSeriesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeries.create
The equivalent REST API is:
POST /v4/{parent=projects/*}/timeSeries (BODY: time_series)
POST /v4/{parent=projects/*/regions/*/buckets/*}/timeSeries
WatchTimeSeries Method
WatchTimeSeries
rpc WatchTimeSeries(WatchTimeSeriesRequest) returns (WatchTimeSeriesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeries.watch
The equivalent REST API is:
TimeSerie Messages
Here is the list of TimeSerie resource messages:
TimeSerie Message
Name |
Type |
Description |
key |
bytes |
TimeSerie key identifies unique TimeSeries tuple: <project, region, metric.type, metric.labels, resource.type, resource.labels, unit> Kind/ValueType are not present in key Key is not to be decoded outside of service, but treated as opaque string Specific key is valid and understood only in single region only. If time serie is created by merging from multiple regions, key must be ignore. |
project |
string |
Internal use - for bulk reporting of TimeSeries |
region |
string |
Region ID associated with time serie. |
unit |
string |
Unit taken from MetricDescriptor (metric.type field). It does not need to be populated during creation (it is derived). It may be modified by certain queries (COUNT will switch unit to “1”, ALIGN_RATE will append “/s”. |
metric |
Metric |
The associated metric. A fully-specified metric used to identify the time series. |
resource |
MonitoredResource |
The associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data. |
metric_kind |
MetricDescriptor.MetricKind |
The metric kind of the time series. When listing time series, this metric kind might be different from the metric kind of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the metric kind of the associated metric. If the associated metric’s descriptor must be auto-created, then this field specifies the metric kind of the new descriptor and must be either GAUGE (the default) or CUMULATIVE . |
value_type |
MetricDescriptor.ValueType |
The value type of the time series. When listing time series, this value type might be different from the value type of the associated metric if this time series is an alignment or reduction of other time series. When creating a time series, this field is optional. If present, it must be the same as the type of the data in the points field. |
points |
repeated Point |
The data points of this time series. When listing time series, points are returned in reverse time order. When creating a time series, this field must contain exactly one point and the point’s type must be the same as the value type of the associated metric. If the associated metric’s descriptor must be auto-created, then the value type of the descriptor is determined by the point’s type, which must be BOOL , INT64 , DOUBLE , or DISTRIBUTION . |
ListTimeSeriesRequest Message
Request message for method [ListTimeSeries][ntt.monitoring.v4.ListTimeSeries]
Name |
Type |
Description |
parent |
string |
The project on which to execute the request. The format is “projects/{project_id}”, or “projects/{project_id}/regions/{region_id}/buckets/{bucket_id}” |
filter |
string (filter of TimeSerie) |
A monitoring filter that specifies which time series should be returned. The filter must specify a single metric type, and can additionally specify metric labels and other information. For example: metric.type = “compute.googleapis.com/instance/cpu/usage_time” AND metric.label.instance_name = “my-instance-name” |
interval |
TimeInterval |
The time interval for which results should be returned. Only time series that contain data points in the specified interval are included in the response. |
aggregation |
Aggregation |
Instructs how to transform individual time series (aligner) and combine them together (reducer, group by fields). Cannot be used with pagination, as pagination exactly defines aggregation. Query will be rejected if it touches too many time series. |
pagination |
Pagination |
Picks paginated time series according to pre-defined (in metric descriptor) view and function. Cannot be used with aggregation, because pagination view and function determines time series transformation and sorting. |
view |
TimeSeriesView |
Specifies which information is returned about the time series. |
field_mask |
.google.protobuf.FieldMask |
view list mask. Optimize network usage and limit returned header fields to a required subset. example fields in field mask: - “key”: for later caching, - “resource.labels.project_id”, “resource.labels.instance_name”, etc - specific labels only - “resource”, “metric”: all resource labels, reduced_labels and type NOTE: points are added implicitly |
points_cap |
int32 |
A positive number that is the maximum number of Points to return. If points_cap is empty or more than 100,000 results, the effective points_cap is 100,000 results. If view is set to HEADERS , this is the maximum number of TimeSeries returned. |
continuation_token |
string |
If this field is not empty then it must contain the continuation_token value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call. |
ListTimeSeriesResponse Message
Response message for method
[ListTimeSeries][ntt.monitoring.v4.ListTimeSeries]
Name |
Type |
Description |
time_series |
repeated TimeSerie |
One or more time series that match the filter included in the request. |
execution_errors |
repeated Status |
Query execution errors that may have caused the time series data returned to be incomplete. |
continuation_token |
string |
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as continuation_token in the next call to this method. |
total_point_counters |
repeated TimeSerie |
Special time series with total amount of records available for pagination by given time series key. Metric/Resource labels will contain “common” values shared by all ranked time series. ValueType will be always INT64 and metricKind GAUGE. In a sense, this time series is execution of ListTimeSeries with Aggregation = {groupByFields: [<viewPaginatedLabels>], REDUCER: REDUCE_COUNT} This field is only populated for paginated queries (pagination in ListTimeSeries is specified). |
ListTimeSeriesResponse.ErrorDetails Message
ErrorDetails is used when one of the queried regions fails to produce
results. It is used in execution_errors field (see subfield
ntt.rpc.Status.details).
Name |
Type |
Description |
region_id |
string |
region id which failed to give results. |
QueryProjectTimeSeriesStatsRequest Message
Response message for method
[QueryProjectTimeSeriesStats][ntt.monitoring.v4.QueryProjectTimeSeriesStats]
Name |
Type |
Description |
project |
string (name of Project) |
|
service |
string |
Service domain for which we request stats, for example “devices.edgelq.com” |
region_id |
string |
Region ID from which to get metrics |
ap |
.google.protobuf.Duration |
Aggregation alignment period |
interval |
TimeInterval |
The time interval for which results should be returned. |
page_size |
int32 |
A positive number that is the maximum number of results to return. If page_size is empty or more than 100,000 results, the effective page_size is 100,000 results. |
page_token |
string |
If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call. |
query |
StatsQuery |
|
QueryProjectTimeSeriesStatsResponse Message
Response message for method
[QueryProjectTimeSeriesStats][ntt.monitoring.v4.QueryProjectTimeSeriesStats]
Name |
Type |
Description |
time_series |
repeated TimeSerie |
One or more time series that match the request. |
next_page_token |
string |
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method. |
execution_errors |
repeated Status |
Query execution errors that may have caused the time series data returned to be incomplete. |
QueryProjectTimeSeriesStatsResponse.ErrorDetails Message
ErrorDetails is used when one of the queried regions fails to produce
results. It is used in execution_errors field (see subfield
ntt.rpc.Status.details).
Name |
Type |
Description |
region_id |
string |
region id which failed to give results. |
QueryServiceTimeSeriesStatsRequest Message
Response message for method
[QueryServiceTimeSeriesStats][ntt.monitoring.v4.QueryServiceTimeSeriesStats]
Name |
Type |
Description |
service |
string (name of Service) |
|
region_id |
string |
Region ID from which stats should e obtained |
ap |
.google.protobuf.Duration |
|
interval |
TimeInterval |
The time interval for which results should be returned. |
page_size |
int32 |
A positive number that is the maximum number of results to return. If page_size is empty or more than 100,000 results, the effective page_size is 100,000 results. |
page_token |
string |
If this field is not empty then it must contain the nextPageToken value returned by a previous call to this method. Using this field causes the method to return additional results from the previous method call. |
user_project_ids |
repeated string |
Optional list of user projects for which we want to get stats. If provided, statistics will be grouped by them. |
query |
StatsQuery |
|
QueryServiceTimeSeriesStatsResponse Message
Response message for method
[QueryServiceTimeSeriesStats][ntt.monitoring.v4.QueryServiceTimeSeriesStats]
Name |
Type |
Description |
time_series |
repeated TimeSerie |
One or more time series that match the request. |
next_page_token |
string |
If there are more results than have been returned, then this field is set to a non-empty value. To see the additional results, use that value as pageToken in the next call to this method. |
execution_errors |
repeated Status |
Query execution errors that may have caused the time series data returned to be incomplete. |
QueryServiceTimeSeriesStatsResponse.ErrorDetails Message
ErrorDetails is used when one of the queried regions fails to produce
results. It is used in execution_errors field (see subfield
ntt.rpc.Status.details).
Name |
Type |
Description |
region_id |
string |
region id which failed to give results. |
CreateTimeSeriesRequest Message
Request message for method
[CreateTimeSeries][ntt.monitoring.v4.CreateTimeSeries]
Name |
Type |
Description |
parent |
string |
The project on which to execute the request. The format is “projects/{project_id}”, or “projects/{project_id}/regions/{region_id}/buckets/{bucket_id}” |
time_series |
repeated TimeSerie |
The new data to be added to a list of time series. Adds at most one data point to each of several time series. The new data point must be more recent than any other point in its time series. Each TimeSeries value must fully specify a unique time series by supplying all label values for the metric and the monitored resource. |
CreateTimeSeriesResponse Message
Response message for method
[CreateTimeSeries][ntt.monitoring.v4.CreateTimeSeries]
Name |
Type |
Description |
time_serie_keys |
map<uint32s, bytes> |
Time Serie keys indexed by Create position - present only when given TimeSerie didn’t use Key field |
failed_time_series |
repeated CreateTimeSeriesError |
Time series that failed to be created |
WatchTimeSeriesRequest Message
Name |
Type |
Description |
parent |
string |
The project on which to execute the request. The format is “projects/{project_id}”, or “projects/{project_id}/regions/{region_id}/buckets/{bucket_id}” |
filter |
string (filter of TimeSerie) |
A monitoring filter that specifies which time series should be returned. The filter must specify a single metric type, and can additionally specify metric labels and other information. For example: metric.type = “compute.googleapis.com/instance/cpu/usage_time” AND metric.label.instance_name = “my-instance-name” |
aggregation |
Aggregation |
Instructs how to transform individual time series (aligner) and combine them together (reducer, group by fields). |
snapshot_interval_to_fetch |
.google.protobuf.Duration |
Amount of past data to fetch when new time series key appears (not present in current session). For example: If client lost previous watch session for 15 minutes, they can set this field value to 15 minutes duration + 1 extra AlignmentPeriod value just in case. Initial time series in response will contain extra past data. Once specific TimeSeries key was already observed, further values will be coming only from realtime watch. This field has lower priority than starting_time! |
starting_time |
.google.protobuf.Timestamp |
For every new unique time series key monitoring will try to fetch past data from given starting time. This is useful for recovery purposes, if client has lost previous watch session. Once snapshot is retrieved for given key, further data will contain live updates. This field takes priority over snapshot_interval_to_fetch. |
WatchTimeSeriesResponse Message
Name |
Type |
Description |
time_series |
repeated TimeSerie |
|
TimeSeriesCollectionRule Resource
TimeSeriesCollectionRule Resource is a persistent WatchTimeSeries
session registered on the server side. It collects time series according
to the specified filter/aggregation, and within a project where rule is.
Sink resource can be from different project.
Name patterns:
projects/{project}/timeSeriesCollectionRules/{time_series_collection_rule}
Parent resources:
This section covers the methods
and messages to interact
with TimeSeriesCollectionRule resource.
TimeSeriesCollectionRule Methods
Here is the list of TimeSeriesCollectionRule resource methods:
GetTimeSeriesCollectionRule Method
GetTimeSeriesCollectionRule
rpc GetTimeSeriesCollectionRule(GetTimeSeriesCollectionRuleRequest) returns (TimeSeriesCollectionRule)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeriesCollectionRules.get
The equivalent REST API is:
GET /v4/{name=projects/*/timeSeriesCollectionRules/*}
BatchGetTimeSeriesCollectionRules Method
BatchGetTimeSeriesCollectionRules
rpc BatchGetTimeSeriesCollectionRules(BatchGetTimeSeriesCollectionRulesRequest) returns (BatchGetTimeSeriesCollectionRulesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeriesCollectionRules.batchGet
The equivalent REST API is:
GET /v4/timeSeriesCollectionRules:batchGet
ListTimeSeriesCollectionRules Method
ListTimeSeriesCollectionRules
rpc ListTimeSeriesCollectionRules(ListTimeSeriesCollectionRulesRequest) returns (ListTimeSeriesCollectionRulesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeriesCollectionRules.list
The equivalent REST API is:
GET /v4/{parent=projects/*}/timeSeriesCollectionRules
WatchTimeSeriesCollectionRule Method
WatchTimeSeriesCollectionRule
rpc WatchTimeSeriesCollectionRule(WatchTimeSeriesCollectionRuleRequest) returns (WatchTimeSeriesCollectionRuleResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeriesCollectionRules.watch
The equivalent REST API is:
POST /v4/{name=projects/*/timeSeriesCollectionRules/*}:watch
WatchTimeSeriesCollectionRules Method
WatchTimeSeriesCollectionRules
rpc WatchTimeSeriesCollectionRules(WatchTimeSeriesCollectionRulesRequest) returns (WatchTimeSeriesCollectionRulesResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeriesCollectionRules.watch
The equivalent REST API is:
POST /v4/{parent=projects/*}/timeSeriesCollectionRules:watch
CreateTimeSeriesCollectionRule Method
CreateTimeSeriesCollectionRule
rpc CreateTimeSeriesCollectionRule(CreateTimeSeriesCollectionRuleRequest) returns (TimeSeriesCollectionRule)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeriesCollectionRules.create
The equivalent REST API is:
POST /v4/{parent=projects/*}/timeSeriesCollectionRules (BODY: time_series_collection_rule)
UpdateTimeSeriesCollectionRule Method
UpdateTimeSeriesCollectionRule
rpc UpdateTimeSeriesCollectionRule(UpdateTimeSeriesCollectionRuleRequest) returns (TimeSeriesCollectionRule)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeriesCollectionRules.update
The equivalent REST API is:
PUT /v4/{time_series_collection_rule.name=projects/*/timeSeriesCollectionRules/*} (BODY: time_series_collection_rule)
DeleteTimeSeriesCollectionRule Method
DeleteTimeSeriesCollectionRule
rpc DeleteTimeSeriesCollectionRule(DeleteTimeSeriesCollectionRuleRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeriesCollectionRules.delete
The equivalent REST API is:
DELETE /v4/{name=projects/*/timeSeriesCollectionRules/*}
TimeSeriesCollectionRule Messages
Here is the list of TimeSeriesCollectionRule resource messages:
TimeSeriesCollectionRule Message
Name |
Type |
Description |
name |
string (name of TimeSeriesCollectionRule) |
Name of TimeSeriesCollectionRule When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9] |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
display_name |
string |
Optional display name |
filter |
string (filter of TimeSerie) |
Time series filter to apply. |
aggregation |
Aggregation |
Instructs how to transform individual time series (aligner) and combine them together (reducer, group by fields). |
rule_ids |
repeated string |
Allocated persistent rule IDs for underlying watch. |
sink |
string (reference to TimeSeriesForwarderSink) |
Optional sink where data is automatically forwarder. It can be nil, if intention for this collection rule is to aid in pulling via time series watch feature (TODO: Not implemented, rule without sink has no effect). |
GetTimeSeriesCollectionRuleRequest Message
A request message of the GetTimeSeriesCollectionRule method.
Name |
Type |
Description |
name |
string (name of TimeSeriesCollectionRule) |
Name of ntt.monitoring.v4.TimeSeriesCollectionRule |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetTimeSeriesCollectionRulesRequest Message
A request message of the BatchGetTimeSeriesCollectionRules method.
Name |
Type |
Description |
names |
repeated string (name of TimeSeriesCollectionRule) |
Names of TimeSeriesCollectionRules |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetTimeSeriesCollectionRulesResponse Message
A response message of the BatchGetTimeSeriesCollectionRules method.
ListTimeSeriesCollectionRulesRequest Message
A request message of the ListTimeSeriesCollectionRules method.
Name |
Type |
Description |
parent |
string (parent name of TimeSeriesCollectionRule) |
Parent name of ntt.monitoring.v4.TimeSeriesCollectionRule |
page_size |
int32 |
Requested page size. Server may return fewer TimeSeriesCollectionRules than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of TimeSeriesCollectionRule) |
A token identifying a page of results the server should return. Typically, this is the value of ListTimeSeriesCollectionRulesResponse.next_page_token. |
order_by |
string (orderBy of TimeSeriesCollectionRule) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of TimeSeriesCollectionRule) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListTimeSeriesCollectionRulesResponse Message
A response message of the ListTimeSeriesCollectionRules method.
Name |
Type |
Description |
time_series_collection_rules |
repeated TimeSeriesCollectionRule |
The list of TimeSeriesCollectionRules |
prev_page_token |
string (cursor of TimeSeriesCollectionRule) |
A token to retrieve previous page of results. Pass this value in the ListTimeSeriesCollectionRulesRequest.page_token. |
next_page_token |
string (cursor of TimeSeriesCollectionRule) |
A token to retrieve next page of results. Pass this value in the ListTimeSeriesCollectionRulesRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total TimeSeriesCollectionRules across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchTimeSeriesCollectionRuleRequest Message
A request message of the WatchTimeSeriesCollectionRule method.
Name |
Type |
Description |
name |
string (name of TimeSeriesCollectionRule) |
Name of ntt.monitoring.v4.TimeSeriesCollectionRule |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchTimeSeriesCollectionRuleResponse Message
A response message of the WatchTimeSeriesCollectionRule method.
WatchTimeSeriesCollectionRulesRequest Message
A request message of the WatchTimeSeriesCollectionRules method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of TimeSeriesCollectionRule) |
Parent name of ntt.monitoring.v4.TimeSeriesCollectionRule |
page_size |
int32 |
Requested page size. Server may return fewer TimeSeriesCollectionRules than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of TimeSeriesCollectionRule) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of TimeSeriesCollectionRule) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of TimeSeriesCollectionRule) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to TimeSeriesCollectionRule that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to TimeSeriesCollectionRule that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchTimeSeriesCollectionRulesResponse Message
A response message of the WatchTimeSeriesCollectionRules method.
Name |
Type |
Description |
time_series_collection_rule_changes |
repeated TimeSeriesCollectionRuleChange |
Changes of TimeSeriesCollectionRules |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All TimeSeriesCollectionRules will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchTimeSeriesCollectionRulesResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (TimeSeriesCollectionRules will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchTimeSeriesCollectionRulesResponse.PageTokenChange Message
CreateTimeSeriesCollectionRuleRequest Message
A request message of the CreateTimeSeriesCollectionRule method.
CreateTimeSeriesCollectionRuleRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateTimeSeriesCollectionRuleRequest Message
A request message of the UpdateTimeSeriesCollectionRule method.
Name |
Type |
Description |
time_series_collection_rule |
TimeSeriesCollectionRule |
TimeSeriesCollectionRule resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateTimeSeriesCollectionRuleRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateTimeSeriesCollectionRuleRequest.ResponseMask |
reduce message response size. |
UpdateTimeSeriesCollectionRuleRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
TimeSeriesCollectionRule |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateTimeSeriesCollectionRuleRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteTimeSeriesCollectionRuleRequest Message
A request message of the DeleteTimeSeriesCollectionRule method.
TimeSeriesForwarderSink Resource
TimeSeriesForwarderSink Resource describes destination of TimeSeries data.
Sink can be connected to TimeSeriesCollectionRule.
TimeSeriesForwarderSink does not need to be in the same project as collection
rule. Each item published on the sink will be a protobuf message of
ntt.monitoring.v4.BulkTimeSeries.
Name patterns:
projects/{project}/timeSeriesForwarderSinks/{time_series_forwarder_sink}
Parent resources:
This section covers the methods
and messages to interact
with TimeSeriesForwarderSink resource.
TimeSeriesForwarderSink Methods
Here is the list of TimeSeriesForwarderSink resource methods:
GetTimeSeriesForwarderSink Method
GetTimeSeriesForwarderSink
rpc GetTimeSeriesForwarderSink(GetTimeSeriesForwarderSinkRequest) returns (TimeSeriesForwarderSink)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeriesForwarderSinks.get
The equivalent REST API is:
GET /v4/{name=projects/*/timeSeriesForwarderSinks/*}
BatchGetTimeSeriesForwarderSinks Method
BatchGetTimeSeriesForwarderSinks
rpc BatchGetTimeSeriesForwarderSinks(BatchGetTimeSeriesForwarderSinksRequest) returns (BatchGetTimeSeriesForwarderSinksResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeriesForwarderSinks.batchGet
The equivalent REST API is:
GET /v4/timeSeriesForwarderSinks:batchGet
ListTimeSeriesForwarderSinks Method
ListTimeSeriesForwarderSinks
rpc ListTimeSeriesForwarderSinks(ListTimeSeriesForwarderSinksRequest) returns (ListTimeSeriesForwarderSinksResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeriesForwarderSinks.list
The equivalent REST API is:
GET /v4/{parent=projects/*}/timeSeriesForwarderSinks
WatchTimeSeriesForwarderSink Method
WatchTimeSeriesForwarderSink
rpc WatchTimeSeriesForwarderSink(WatchTimeSeriesForwarderSinkRequest) returns (WatchTimeSeriesForwarderSinkResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeriesForwarderSinks.watch
The equivalent REST API is:
POST /v4/{name=projects/*/timeSeriesForwarderSinks/*}:watch
WatchTimeSeriesForwarderSinks Method
WatchTimeSeriesForwarderSinks
rpc WatchTimeSeriesForwarderSinks(WatchTimeSeriesForwarderSinksRequest) returns (WatchTimeSeriesForwarderSinksResponse)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeriesForwarderSinks.watch
The equivalent REST API is:
POST /v4/{parent=projects/*}/timeSeriesForwarderSinks:watch
CreateTimeSeriesForwarderSink Method
CreateTimeSeriesForwarderSink
rpc CreateTimeSeriesForwarderSink(CreateTimeSeriesForwarderSinkRequest) returns (TimeSeriesForwarderSink)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeriesForwarderSinks.create
The equivalent REST API is:
POST /v4/{parent=projects/*}/timeSeriesForwarderSinks (BODY: time_series_forwarder_sink)
UpdateTimeSeriesForwarderSink Method
UpdateTimeSeriesForwarderSink
rpc UpdateTimeSeriesForwarderSink(UpdateTimeSeriesForwarderSinkRequest) returns (TimeSeriesForwarderSink)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeriesForwarderSinks.update
The equivalent REST API is:
PUT /v4/{time_series_forwarder_sink.name=projects/*/timeSeriesForwarderSinks/*} (BODY: time_series_forwarder_sink)
DeleteTimeSeriesForwarderSink Method
DeleteTimeSeriesForwarderSink
rpc DeleteTimeSeriesForwarderSink(DeleteTimeSeriesForwarderSinkRequest) returns (Empty)
with the following messages:
Required Permissions:
- services/monitoring.edgelq.com/permissions/timeSeriesForwarderSinks.delete
The equivalent REST API is:
DELETE /v4/{name=projects/*/timeSeriesForwarderSinks/*}
TimeSeriesForwarderSink Messages
Here is the list of TimeSeriesForwarderSink resource messages:
TimeSeriesForwarderSink Message
Name |
Type |
Description |
name |
string (name of TimeSeriesForwarderSink) |
Name of TimeSeriesForwarderSink When creating a new instance, this field is optional and if not provided, it will be generated automatically. Last ID segment must conform to the following regex: [a-z][a-z0-9\-]{0,28}[a-z0-9] |
metadata |
Meta |
Metadata is an object with information like create, update and delete time (for async deleted resources), has user labels/annotations, sharding information, multi-region syncing information and may have non-schema owners (useful for taking ownership of resources belonging to lower level services by higher ones). |
display_name |
string |
Optional display name |
spec |
TimeSeriesForwarderSink.Spec |
Current spec |
status |
TimeSeriesForwarderSink.Status |
Current status |
TimeSeriesForwarderSink.Spec Message
Sink specification, instructing where data must go.
It must specify one valid sink spec inside.
TimeSeriesForwarderSink.Status Message
Status describes status of TimeSeriesForwarderSink.
Name |
Type |
Description |
error |
string |
If there is some persisting error on the sink, it will be reported here. |
TimeSeriesForwarderSink.Spec.AzureEventHubSink Message
AzureEventHubSink describes sink for Azure Event Hub.
Name |
Type |
Description |
endpoint |
string (reference to Secret) |
Endpoint must contain secret value for authentication purposes, therefore it is packed as a Secret resource. Secret resource itself must contain following data field: { “data”: { “EndpointString”: “Endpoint=sb://<name>.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=<SECRET>;EntityPath=<topicName>” } } Replace <> elements with appropiate values. |
GetTimeSeriesForwarderSinkRequest Message
A request message of the GetTimeSeriesForwarderSink method.
Name |
Type |
Description |
name |
string (name of TimeSeriesForwarderSink) |
Name of ntt.monitoring.v4.TimeSeriesForwarderSink |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetTimeSeriesForwarderSinksRequest Message
A request message of the BatchGetTimeSeriesForwarderSinks method.
Name |
Type |
Description |
names |
repeated string (name of TimeSeriesForwarderSink) |
Names of TimeSeriesForwarderSinks |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
BatchGetTimeSeriesForwarderSinksResponse Message
A response message of the BatchGetTimeSeriesForwarderSinks method.
ListTimeSeriesForwarderSinksRequest Message
A request message of the ListTimeSeriesForwarderSinks method.
Name |
Type |
Description |
parent |
string (parent name of TimeSeriesForwarderSink) |
Parent name of ntt.monitoring.v4.TimeSeriesForwarderSink |
page_size |
int32 |
Requested page size. Server may return fewer TimeSeriesForwarderSinks than requested. If unspecified, server will pick an appropriate default. |
page_token |
string (cursor of TimeSeriesForwarderSink) |
A token identifying a page of results the server should return. Typically, this is the value of ListTimeSeriesForwarderSinksResponse.next_page_token. |
order_by |
string (orderBy of TimeSeriesForwarderSink) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination list of field path with order directive, either ‘asc’ or ‘desc’. If direction is not provided, ‘asc’ is assumed. e.g. “state.nested_field asc, state.something.else desc, theme” |
filter |
string (filter of TimeSeriesForwarderSink) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
include_paging_info |
bool |
Indicates if list response should contain total count and offset (fields current_offset and total_results_count). |
ListTimeSeriesForwarderSinksResponse Message
A response message of the ListTimeSeriesForwarderSinks method.
Name |
Type |
Description |
time_series_forwarder_sinks |
repeated TimeSeriesForwarderSink |
The list of TimeSeriesForwarderSinks |
prev_page_token |
string (cursor of TimeSeriesForwarderSink) |
A token to retrieve previous page of results. Pass this value in the ListTimeSeriesForwarderSinksRequest.page_token. |
next_page_token |
string (cursor of TimeSeriesForwarderSink) |
A token to retrieve next page of results. Pass this value in the ListTimeSeriesForwarderSinksRequest.page_token. |
current_offset |
int32 |
Current offset from the first page or 0 if no page tokens were given, paging info was not requested or there was an error while trying to get it). Page index can be computed from offset and limit provided in a request. |
total_results_count |
int32 |
Number of total TimeSeriesForwarderSinks across all pages or 0, if there are no items, paging info was not requested or there was an error while trying to get it. |
WatchTimeSeriesForwarderSinkRequest Message
A request message of the WatchTimeSeriesForwarderSink method.
Name |
Type |
Description |
name |
string (name of TimeSeriesForwarderSink) |
Name of ntt.monitoring.v4.TimeSeriesForwarderSink |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask |
WatchTimeSeriesForwarderSinkResponse Message
A response message of the WatchTimeSeriesForwarderSink method.
WatchTimeSeriesForwarderSinksRequest Message
A request message of the WatchTimeSeriesForwarderSinks method.
Name |
Type |
Description |
type |
WatchType |
Type of a watch. Identifies how server stream data to a client, which fields in a request are allowed and which fields in response are relevant. |
parent |
string (parent name of TimeSeriesForwarderSink) |
Parent name of ntt.monitoring.v4.TimeSeriesForwarderSink |
page_size |
int32 |
Requested page size. Server may return fewer TimeSeriesForwarderSinks than requested. If unspecified, server will pick an appropriate default. Can be populated only for stateful watch type. |
page_token |
string (cursor of TimeSeriesForwarderSink) |
A token identifying a page of results the server should return. Can be populated only for stateful watch type. |
order_by |
string (orderBy of TimeSeriesForwarderSink) |
Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type. |
resume_token |
string |
A token identifying watch resume point from previous session. Can be populated only for stateless watch type. |
starting_time |
.google.protobuf.Timestamp |
Point in the time from which we want to start getting updates. This field can be populated only for stateless watch type and if resume token is not known yet. If specified, initial snapshot will NOT be provided. It is assumed client can obtain it using separate means. Watch responses will contain resume tokens which should be used to resume broken connection. |
filter |
string (filter of TimeSeriesForwarderSink) |
Filter - filter results by field criteria. Simplified SQL-like syntax with following operators: <=, >=, =, !=, <, >, LIKE, CONTAINS (aliases CONTAIN, HAS, HAVE), IN, IS [NOT] NULL |
field_mask |
.google.protobuf.FieldMask |
A list of extra fields to be obtained for each response item on top of fields defined by request field view Changes to TimeSeriesForwarderSink that don’t affect any of masked fields won’t be sent back. |
view |
View |
View defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask Changes to TimeSeriesForwarderSink that don’t affect any of masked fields won’t be sent back. |
max_chunk_size |
int32 |
Maximum amount of changes in each response message. Query result response is divided on the server side into chunks with size of a specified amount to limit memory footprint of each message. Responses will hold information whether more elements will continue for the actual change. If unspecified, server will pick an appropriate default. |
WatchTimeSeriesForwarderSinksResponse Message
A response message of the WatchTimeSeriesForwarderSinks method.
Name |
Type |
Description |
time_series_forwarder_sink_changes |
repeated TimeSeriesForwarderSinkChange |
Changes of TimeSeriesForwarderSinks |
is_current |
bool |
If request specified max_chunk_size (or this limit was enforced if stateless watch has been chosen), then responses with “full changeset” will be divided into chunks. Client should keep receiving messages and, once is_current has value true, combine this recent message with all previous ones where is_current is false. If this is the first is_current in a whole watch stream, then it means that client should have, at this moment, contain snapshot of the current situation (or more accurately, snapshot of situation at the moment of request). All TimeSeriesForwarderSinks will be of type Added/Current (depending on watch_type specified in the request). Further responses will be incremental - however messages may still be chunked and is_current logic still applies. is_current is always true for stateful watch if max_chunk_size was left to 0. |
page_token_change |
WatchTimeSeriesForwarderSinksResponse.PageTokenChange |
When present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk). |
resume_token |
string |
Token that can be used if current connection drops and client needs to reconnect. Populated only for stateless watch type. Present only if is_current is true (last chunk). |
snapshot_size |
int64 |
Server may occasionally send information how many resources should client have in its state so far (response message without any changes, but with snapshot_size field specified). If client has different value than the one sent by the server, then it should be treated by a client as an error and should reconnect. If value is smaller then 0, then client should ignore this field as unpopulated. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will be never sent together with is_current, is_soft_reset and is_hard_reset flags. |
is_soft_reset |
bool |
In case of internal issue server may send response message with this flag. It indicates that client should drop all changes from recent responses where is_current is false only! If last message had is_current set to true, client should do nothing and process normally. Resume token received before is still valid. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_hard_reset or snapshot_size. |
is_hard_reset |
bool |
In case of internal issue server may send response message with this flag. After receiving, client should clear whole state (drop all changes received so far) as server will send new snapshot (TimeSeriesForwarderSinks will contains changes of type Current only). Any resume tokens should be discarded as well. This field should be checked only for stateless watch. In stateful those kind of errors are handled by the server side. Will never be sent along with is_current, is_soft_reset or snapshot_size. |
WatchTimeSeriesForwarderSinksResponse.PageTokenChange Message
Name |
Type |
Description |
prev_page_token |
string (cursor of TimeSeriesForwarderSink) |
New token to retrieve previous page of results. |
next_page_token |
string (cursor of TimeSeriesForwarderSink) |
New token to retrieve next page of results. |
CreateTimeSeriesForwarderSinkRequest Message
A request message of the CreateTimeSeriesForwarderSink method.
CreateTimeSeriesForwarderSinkRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. |
UpdateTimeSeriesForwarderSinkRequest Message
A request message of the UpdateTimeSeriesForwarderSink method.
Name |
Type |
Description |
time_series_forwarder_sink |
TimeSeriesForwarderSink |
TimeSeriesForwarderSink resource body |
update_mask |
.google.protobuf.FieldMask |
FieldMask applied to request - change will be applied only for fields in the mask |
cas |
UpdateTimeSeriesForwarderSinkRequest.CAS |
Conditional update applied to request if update should be executed only for specific resource state. If this field is populated, then server will fetch existing resource, compare with the one stored in the cas field (after applying field mask) and proceed with update only and only if they match. Otherwise RPC error Aborted will be returned. |
allow_missing |
bool |
If set to true, and the resource is not found, a new resource will be created. In this situation, ‘field_mask’ is ignored. https://google.aip.dev/134#create-or-update |
response_mask |
UpdateTimeSeriesForwarderSinkRequest.ResponseMask |
reduce message response size. |
UpdateTimeSeriesForwarderSinkRequest.CAS Message
CAS - Compare and Swap. This object is used if user wants to make update
conditional based upon previous resource version.
Name |
Type |
Description |
conditional_state |
TimeSeriesForwarderSink |
Conditional desired state of a resource before update. |
field_mask |
.google.protobuf.FieldMask |
Field paths from conditional state of resource server should check and compare. |
UpdateTimeSeriesForwarderSinkRequest.ResponseMask Message
ResponseMask allows client to reduce response message size.
Name |
Type |
Description |
skip_entire_response_body |
bool |
If this flag has value true, then response will contain just empty resource without any fields populated. Field body_mask is ignored if set. |
updated_fields_only |
bool |
Include all fields that were actually updated during processing. Note this may be larger than update mask if some fields were computed additionally. Name is added as well. |
body_mask |
.google.protobuf.FieldMask |
If this field is populated, then resource in response will contain only specific fields. If skip_entire_response_body is true, this field is ignored. |
DeleteTimeSeriesForwarderSinkRequest Message
A request message of the DeleteTimeSeriesForwarderSink method.
Name |
Type |
Description |
name |
string (name of TimeSeriesForwarderSink) |
Name of ntt.monitoring.v4.TimeSeriesForwarderSink |
TimeSeriesForwarderSink Enumerations
Here is the list of TimeSeriesForwarderSink resource enumerations:
TimeSeriesForwarderSink.Spec.Compression Enumeration
Name |
Description |
NO_COMPRESSION |
|
SNAPPY |
|
Monitoring Service Shared Methods and Messages
Monitoring Service Shared Messages
Here is the list of Monitoring service shared messages:
Aggregation Message
Describes how to combine multiple time series to provide different views of
the data. Aggregation consists of an alignment step on individual time
series (alignment_period
and per_series_aligner
) followed by an optional
reduction step of the data across the aligned time series
(cross_series_reducer
and group_by_fields
). For more details, see
Aggregation.
Name |
Type |
Description |
alignment_period |
.google.protobuf.Duration |
The alignment period for per-[time series][ntt.monitoring.v3.TimeSeries] alignment. If present, alignmentPeriod must be at least 60 seconds. After per-time series alignment, each time series will contain data points only on the period boundaries. If perSeriesAligner is not specified or equals ALIGN_NONE , then this field is ignored. If perSeriesAligner is specified and does not equal ALIGN_NONE , then this field must be defined; otherwise an error is returned. |
per_series_aligner |
Aggregation.Aligner |
The approach to be used to align individual time series. Not all alignment functions may be applied to all time series, depending on the metric type and value type of the original time series. Alignment may change the metric type or the value type of the time series. Time series data must be aligned in order to perform cross-time series reduction. If crossSeriesReducer is specified, then perSeriesAligner must be specified and not equal ALIGN_NONE and alignmentPeriod must be specified; otherwise, an error is returned. |
cross_series_reducer |
Aggregation.Reducer |
The approach to be used to combine time series. Not all reducer functions may be applied to all time series, depending on the metric type and the value type of the original time series. Reduction may change the metric type of value type of the time series. Time series data must be aligned in order to perform cross-time series reduction. If crossSeriesReducer is specified, then perSeriesAligner must be specified and not equal ALIGN_NONE and alignmentPeriod must be specified; otherwise, an error is returned. |
group_by_fields |
repeated string |
The set of fields to preserve when crossSeriesReducer is specified. The groupByFields determine how the time series are partitioned into subsets prior to applying the aggregation function. Each subset contains time series that have the same value for each of the grouping fields. Each individual time series is a member of exactly one subset. The crossSeriesReducer is applied to each subset of time series. It is not possible to reduce across different resource types, so this field implicitly contains resource.type . Fields not specified in groupByFields are aggregated away. If groupByFields is not specified and all the time series have the same resource type, then the time series are aggregated into a single output time series. If crossSeriesReducer is not defined, this field is ignored. |
AlertChange Message
AlertChange is used by Watch notifications Responses to describe change of
single Alert One of Added, Modified, Removed
Name |
Type |
Description |
added |
AlertChange.Added |
Added is returned when watched document is added, either created or enters Query view |
modified |
AlertChange.Modified |
Modified is returned when watched document is modified |
current |
AlertChange.Current |
Current is returned in stateless watch when document enters query view or is modified within. |
removed |
AlertChange.Removed |
Removed is returned when Alert is deleted or leaves Query view |
AlertChange.Added Message
Alert has been added to query view
Name |
Type |
Description |
alert |
Alert |
|
view_index |
int32 |
Integer describing index of added Alert in resulting query view. |
AlertChange.Current Message
Alert has been added or modified in a query view. Version used for
stateless watching
Name |
Type |
Description |
alert |
Alert |
|
AlertChange.Modified Message
Alert changed some of it’s fields - contains either full document or masked
change
Name |
Type |
Description |
name |
string (name of Alert) |
Name of modified Alert |
alert |
Alert |
New version of Alert or masked difference, depending on mask_changes instrumentation of issued [WatchAlertRequest] or [WatchAlertsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified Alert. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying Alert new index in resulting query view. |
AlertChange.Removed Message
Removed is returned when Alert is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of Alert) |
|
view_index |
int32 |
Integer specifying removed Alert index. Not populated in stateless watch type. |
AlertingConditionChange Message
AlertingConditionChange is used by Watch notifications Responses to describe
change of single AlertingCondition One of Added, Modified, Removed
AlertingConditionChange.Added Message
AlertingCondition has been added to query view
Name |
Type |
Description |
alerting_condition |
AlertingCondition |
|
view_index |
int32 |
Integer describing index of added AlertingCondition in resulting query view. |
AlertingConditionChange.Current Message
AlertingCondition has been added or modified in a query view. Version used
for stateless watching
AlertingConditionChange.Modified Message
AlertingCondition changed some of it’s fields - contains either full
document or masked change
Name |
Type |
Description |
name |
string (name of AlertingCondition) |
Name of modified AlertingCondition |
alerting_condition |
AlertingCondition |
New version of AlertingCondition or masked difference, depending on mask_changes instrumentation of issued [WatchAlertingConditionRequest] or [WatchAlertingConditionsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified AlertingCondition. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying AlertingCondition new index in resulting query view. |
AlertingConditionChange.Removed Message
Removed is returned when AlertingCondition is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of AlertingCondition) |
|
view_index |
int32 |
Integer specifying removed AlertingCondition index. Not populated in stateless watch type. |
AlertingPolicyChange Message
AlertingPolicyChange is used by Watch notifications Responses to describe
change of single AlertingPolicy One of Added, Modified, Removed
AlertingPolicyChange.Added Message
AlertingPolicy has been added to query view
Name |
Type |
Description |
alerting_policy |
AlertingPolicy |
|
view_index |
int32 |
Integer describing index of added AlertingPolicy in resulting query view. |
AlertingPolicyChange.Current Message
AlertingPolicy has been added or modified in a query view. Version used for
stateless watching
AlertingPolicyChange.Modified Message
AlertingPolicy changed some of it’s fields - contains either full document
or masked change
Name |
Type |
Description |
name |
string (name of AlertingPolicy) |
Name of modified AlertingPolicy |
alerting_policy |
AlertingPolicy |
New version of AlertingPolicy or masked difference, depending on mask_changes instrumentation of issued [WatchAlertingPolicyRequest] or [WatchAlertingPoliciesRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified AlertingPolicy. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying AlertingPolicy new index in resulting query view. |
AlertingPolicyChange.Removed Message
Removed is returned when AlertingPolicy is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of AlertingPolicy) |
|
view_index |
int32 |
Integer specifying removed AlertingPolicy index. Not populated in stateless watch type. |
BucketChange Message
BucketChange is used by Watch notifications Responses to describe change of
single Bucket One of Added, Modified, Removed
Name |
Type |
Description |
added |
BucketChange.Added |
Added is returned when watched document is added, either created or enters Query view |
modified |
BucketChange.Modified |
Modified is returned when watched document is modified |
current |
BucketChange.Current |
Current is returned in stateless watch when document enters query view or is modified within. |
removed |
BucketChange.Removed |
Removed is returned when Bucket is deleted or leaves Query view |
BucketChange.Added Message
Bucket has been added to query view
Name |
Type |
Description |
bucket |
Bucket |
|
view_index |
int32 |
Integer describing index of added Bucket in resulting query view. |
BucketChange.Current Message
Bucket has been added or modified in a query view. Version used for
stateless watching
Name |
Type |
Description |
bucket |
Bucket |
|
BucketChange.Modified Message
Bucket changed some of it’s fields - contains either full document or
masked change
Name |
Type |
Description |
name |
string (name of Bucket) |
Name of modified Bucket |
bucket |
Bucket |
New version of Bucket or masked difference, depending on mask_changes instrumentation of issued [WatchBucketRequest] or [WatchBucketsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified Bucket. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying Bucket new index in resulting query view. |
BucketChange.Removed Message
Removed is returned when Bucket is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of Bucket) |
|
view_index |
int32 |
Integer specifying removed Bucket index. Not populated in stateless watch type. |
BulkTimeSeries Message
Used for reporting rollups
Name |
Type |
Description |
time_series |
repeated TimeSerie |
|
phantom_flag |
bool |
|
CreateTimeSeriesError Message
Describes the result of a failed request to write data to a time series.
Name |
Type |
Description |
time_series |
TimeSerie |
The time series, including the Metric , MonitoredResource , and Point s (including timestamp and value) that resulted in the error. This field provides all of the context that would be needed to retry the operation. |
status |
Status |
The status of the requested write operation. |
Distribution Message
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.
Name |
Type |
Description |
count |
int64 |
The number of values in the population. Must be non-negative. |
mean |
double |
The arithmetic mean of the values in the population. If count is zero then this field must be zero. |
sum_of_squared_deviation |
double |
The sum of squared deviations from the mean of the values in the population. For values x_i this is: Sum[i=1..n]((x_i - mean)^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 |
Distribution.Range |
If specified, contains the range of the population values. The field must not be present if the count is zero. |
bucket_options |
Distribution.BucketOptions |
Defines the histogram bucket boundaries. |
bucket_counts |
repeated int64 |
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. |
Distribution.BucketOptions Message
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.
Distribution.BucketOptions.Dynamic Message
Dynamic buckets centroid based. TDigest implementation.
Name |
Type |
Description |
compression |
double |
TDigest compression rate |
means |
repeated double |
Centroid means. Must be the same length as bucket counts. Each mean, count represents a weighed centroid. |
Distribution.BucketOptions.Explicit Message
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.
Name |
Type |
Description |
bounds |
repeated double |
The values must be monotonically increasing. |
Distribution.BucketOptions.Exponential Message
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)).
Name |
Type |
Description |
num_finite_buckets |
int32 |
Must be greater than 0. |
growth_factor |
double |
Must be greater than 1. |
scale |
double |
Must be greater than 0. |
Distribution.BucketOptions.Linear Message
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)).
Name |
Type |
Description |
num_finite_buckets |
int32 |
Must be greater than 0. |
width |
double |
Must be greater than 0. |
offset |
double |
Lower bound of the first bucket. |
Distribution.Range Message
The range of the population values.
Name |
Type |
Description |
min |
double |
The minimum of the population values. |
max |
double |
The maximum of the population values. |
LabelDescriptor Message
A description of a label.
Name |
Type |
Description |
key |
string |
The label key. |
value_type |
LabelDescriptor.ValueType |
The type of data that can be assigned to the label. |
description |
string |
A human-readable description for the label. |
default_value |
string |
Default value for string label - this value is used in two cases: 1. to populate missing labels while creating TimeSeries 2. to populate missing remaining kvs while querying TimeSeries - usually applies to old data |
disabled |
bool |
disabled flag communicates that this label is ignored by the backend. It’s used for backward compatibility. |
LabelKeySet Message
LabelKeySet is used for defining PromotedLabelKeySets on Metric and Resource
descriptors
Name |
Type |
Description |
label_keys |
repeated string |
List of label keys. Cannot be modified once set. |
Metric Message
A specific metric, identified by specifying values for all of the
labels of a [MetricDescriptor
][google.api.MetricDescriptor].
Name |
Type |
Description |
type |
string |
An existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example, custom.googleapis.com/invoice/paid/amount . |
labels |
map<string, string> |
The set of label values that uniquely identify this metric. All labels listed in the MetricDescriptor must be assigned values. |
reduced_labels |
repeated string |
reduced labels in aggregations |
MetricDescriptorChange Message
MetricDescriptorChange is used by Watch notifications Responses to describe
change of single MetricDescriptor One of Added, Modified, Removed
MetricDescriptorChange.Added Message
MetricDescriptor has been added to query view
Name |
Type |
Description |
metric_descriptor |
MetricDescriptor |
|
view_index |
int32 |
Integer describing index of added MetricDescriptor in resulting query view. |
MetricDescriptorChange.Current Message
MetricDescriptor has been added or modified in a query view. Version used
for stateless watching
MetricDescriptorChange.Modified Message
MetricDescriptor changed some of it’s fields - contains either full
document or masked change
Name |
Type |
Description |
name |
string (name of MetricDescriptor) |
Name of modified MetricDescriptor |
metric_descriptor |
MetricDescriptor |
New version of MetricDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchMetricDescriptorRequest] or [WatchMetricDescriptorsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified MetricDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying MetricDescriptor new index in resulting query view. |
MetricDescriptorChange.Removed Message
Removed is returned when MetricDescriptor is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of MetricDescriptor) |
|
view_index |
int32 |
Integer specifying removed MetricDescriptor index. Not populated in stateless watch type. |
MetricSelector Message
Metric selects metric.type
and list of labels used to
build query, like:
metric.type IN ("type0", "type1", ...) AND
metric.labels.<key0> IN (label0_0, label0_1, ...) AND
metric.labels.<key1> IN (label1_0, label1_1, ...) AND ...
Name |
Type |
Description |
types |
repeated string |
|
labels |
map<string, Strings> |
label key, e.g. “project_id”, “target_id”, etc Note the missing “metric.labels.” prefix. |
MonitoredResource Message
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][google.api.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][google.api.MonitoredResourceDescriptor] for
"gce_instance"
has labels
"instance_id"
and "zone"
:
{ "type": "gce_instance",
"labels": { "instance_id": "12345678901234",
"zone": "us-central1-a" }}
Name |
Type |
Description |
type |
string |
Required. The monitored resource type. This field must match the type field of a [MonitoredResourceDescriptor][google.api.MonitoredResourceDescriptor] object. For example, the type of a Compute Engine VM instance is gce_instance . |
labels |
map<string, string> |
Required. Values for all of the labels listed in the associated monitored resource descriptor. For example, Compute Engine VM instances use the labels "project_id" , "instance_id" , and "zone" . |
reduced_labels |
repeated string |
reduced labels in aggregations |
MonitoredResourceDescriptorChange Message
MonitoredResourceDescriptorChange is used by Watch notifications Responses to
describe change of single MonitoredResourceDescriptor One of Added, Modified,
Removed
MonitoredResourceDescriptorChange.Added Message
MonitoredResourceDescriptor has been added to query view
Name |
Type |
Description |
monitored_resource_descriptor |
MonitoredResourceDescriptor |
|
view_index |
int32 |
Integer describing index of added MonitoredResourceDescriptor in resulting query view. |
MonitoredResourceDescriptorChange.Current Message
MonitoredResourceDescriptor has been added or modified in a query view.
Version used for stateless watching
MonitoredResourceDescriptorChange.Modified Message
MonitoredResourceDescriptor changed some of it’s fields - contains either
full document or masked change
Name |
Type |
Description |
name |
string (name of MonitoredResourceDescriptor) |
Name of modified MonitoredResourceDescriptor |
monitored_resource_descriptor |
MonitoredResourceDescriptor |
New version of MonitoredResourceDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchMonitoredResourceDescriptorRequest] or [WatchMonitoredResourceDescriptorsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified MonitoredResourceDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying MonitoredResourceDescriptor new index in resulting query view. |
MonitoredResourceDescriptorChange.Removed Message
Removed is returned when MonitoredResourceDescriptor is deleted or leaves
Query view
Name |
Type |
Description |
name |
string (name of MonitoredResourceDescriptor) |
|
view_index |
int32 |
Integer specifying removed MonitoredResourceDescriptor index. Not populated in stateless watch type. |
MonitoredResourceSelector Message
MonitoredResourceSelector selects resource.type
and list of labels used to
build query, like:
resource.type IN ("type0", "type1", ...) AND
resource.labels.<key0> IN (label0_0, label0_1, ...) AND
resource.labels.<key1> IN (label1_0, label1_1, ...) AND ...
Note: Only one resource.type per query is currently allowed
Name |
Type |
Description |
types |
repeated string |
|
labels |
map<string, Strings> |
label key, e.g. “project_id”, “target_id”, etc Note the missing “resource.labels.” prefix. |
NotificationChange Message
NotificationChange is used by Watch notifications Responses to describe
change of single Notification One of Added, Modified, Removed
NotificationChange.Added Message
Notification has been added to query view
Name |
Type |
Description |
notification |
Notification |
|
view_index |
int32 |
Integer describing index of added Notification in resulting query view. |
NotificationChange.Current Message
Notification has been added or modified in a query view. Version used for
stateless watching
NotificationChange.Modified Message
Notification changed some of it’s fields - contains either full document or
masked change
Name |
Type |
Description |
name |
string (name of Notification) |
Name of modified Notification |
notification |
Notification |
New version of Notification or masked difference, depending on mask_changes instrumentation of issued [WatchNotificationRequest] or [WatchNotificationsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified Notification. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying Notification new index in resulting query view. |
NotificationChange.Removed Message
Removed is returned when Notification is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of Notification) |
|
view_index |
int32 |
Integer specifying removed Notification index. Not populated in stateless watch type. |
NotificationChannelChange Message
NotificationChannelChange is used by Watch notifications Responses to
describe change of single NotificationChannel One of Added, Modified, Removed
NotificationChannelChange.Added Message
NotificationChannel has been added to query view
Name |
Type |
Description |
notification_channel |
NotificationChannel |
|
view_index |
int32 |
Integer describing index of added NotificationChannel in resulting query view. |
NotificationChannelChange.Current Message
NotificationChannel has been added or modified in a query view. Version
used for stateless watching
NotificationChannelChange.Modified Message
NotificationChannel changed some of it’s fields - contains either full
document or masked change
Name |
Type |
Description |
name |
string (name of NotificationChannel) |
Name of modified NotificationChannel |
notification_channel |
NotificationChannel |
New version of NotificationChannel or masked difference, depending on mask_changes instrumentation of issued [WatchNotificationChannelRequest] or [WatchNotificationChannelsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified NotificationChannel. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying NotificationChannel new index in resulting query view. |
NotificationChannelChange.Removed Message
Removed is returned when NotificationChannel is deleted or leaves Query
view
Name |
Type |
Description |
name |
string (name of NotificationChannel) |
|
view_index |
int32 |
Integer specifying removed NotificationChannel index. Not populated in stateless watch type. |
Name |
Type |
Description |
view |
string |
|
function |
string |
|
alignment_period |
.google.protobuf.Duration |
|
limit |
int32 |
|
offset |
int32 |
|
PhantomTimeSerieChange Message
PhantomTimeSerieChange is used by Watch notifications Responses to describe
change of single PhantomTimeSerie One of Added, Modified, Removed
PhantomTimeSerieChange.Added Message
PhantomTimeSerie has been added to query view
Name |
Type |
Description |
phantom_time_serie |
PhantomTimeSerie |
|
view_index |
int32 |
Integer describing index of added PhantomTimeSerie in resulting query view. |
PhantomTimeSerieChange.Current Message
PhantomTimeSerie has been added or modified in a query view. Version used
for stateless watching
PhantomTimeSerieChange.Modified Message
PhantomTimeSerie changed some of it’s fields - contains either full
document or masked change
Name |
Type |
Description |
name |
string (name of PhantomTimeSerie) |
Name of modified PhantomTimeSerie |
phantom_time_serie |
PhantomTimeSerie |
New version of PhantomTimeSerie or masked difference, depending on mask_changes instrumentation of issued [WatchPhantomTimeSerieRequest] or [WatchPhantomTimeSeriesRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified PhantomTimeSerie. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying PhantomTimeSerie new index in resulting query view. |
PhantomTimeSerieChange.Removed Message
Removed is returned when PhantomTimeSerie is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of PhantomTimeSerie) |
|
view_index |
int32 |
Integer specifying removed PhantomTimeSerie index. Not populated in stateless watch type. |
Point Message
A single data point in a time series.
Name |
Type |
Description |
interval |
TimeInterval |
The time interval to which the data point applies. For GAUGE metrics, only the end time of the interval is used. For DELTA metrics, the start and end time should specify a non-zero interval, with subsequent points specifying contiguous and non-overlapping intervals. For CUMULATIVE metrics, the start and end time should specify a non-zero interval, with subsequent points specifying 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. |
value |
TypedValue |
The value of the data point. |
aggregation |
Aggregation |
Additional aggregation info Used internally for batching rollup points |
ProjectChange Message
ProjectChange is used by Watch notifications Responses to describe change of
single Project One of Added, Modified, Removed
Name |
Type |
Description |
added |
ProjectChange.Added |
Added is returned when watched document is added, either created or enters Query view |
modified |
ProjectChange.Modified |
Modified is returned when watched document is modified |
current |
ProjectChange.Current |
Current is returned in stateless watch when document enters query view or is modified within. |
removed |
ProjectChange.Removed |
Removed is returned when Project is deleted or leaves Query view |
ProjectChange.Added Message
Project has been added to query view
Name |
Type |
Description |
project |
Project |
|
view_index |
int32 |
Integer describing index of added Project in resulting query view. |
ProjectChange.Current Message
Project has been added or modified in a query view. Version used for
stateless watching
Name |
Type |
Description |
project |
Project |
|
ProjectChange.Modified Message
Project changed some of it’s fields - contains either full document or
masked change
Name |
Type |
Description |
name |
string (name of Project) |
Name of modified Project |
project |
Project |
New version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying Project new index in resulting query view. |
ProjectChange.Removed Message
Removed is returned when Project is deleted or leaves Query view
Name |
Type |
Description |
name |
string (name of Project) |
|
view_index |
int32 |
Integer specifying removed Project index. Not populated in stateless watch type. |
RecoveryStoreShardingInfoChange Message
RecoveryStoreShardingInfoChange is used by Watch notifications Responses to
describe change of single RecoveryStoreShardingInfo One of Added, Modified,
Removed
RecoveryStoreShardingInfoChange.Added Message
RecoveryStoreShardingInfo has been added to query view
Name |
Type |
Description |
recovery_store_sharding_info |
RecoveryStoreShardingInfo |
|
view_index |
int32 |
Integer describing index of added RecoveryStoreShardingInfo in resulting query view. |
RecoveryStoreShardingInfoChange.Current Message
RecoveryStoreShardingInfo has been added or modified in a query view.
Version used for stateless watching
RecoveryStoreShardingInfoChange.Modified Message
RecoveryStoreShardingInfo changed some of it’s fields - contains either
full document or masked change
Name |
Type |
Description |
name |
string (name of RecoveryStoreShardingInfo) |
Name of modified RecoveryStoreShardingInfo |
recovery_store_sharding_info |
RecoveryStoreShardingInfo |
New version of RecoveryStoreShardingInfo or masked difference, depending on mask_changes instrumentation of issued [WatchRecoveryStoreShardingInfoRequest] or [WatchRecoveryStoreShardingInfosRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified RecoveryStoreShardingInfo. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying RecoveryStoreShardingInfo new index in resulting query view. |
RecoveryStoreShardingInfoChange.Removed Message
Removed is returned when RecoveryStoreShardingInfo is deleted or leaves
Query view
Name |
Type |
Description |
name |
string (name of RecoveryStoreShardingInfo) |
|
view_index |
int32 |
Integer specifying removed RecoveryStoreShardingInfo index. Not populated in stateless watch type. |
StatsQuery Message
StatsQuery.ActivityLogs Message
StatsQuery.CallLatencies Message
StatsQuery.EgressThroughput Message
StatsQuery.ErrorCounts Message
Name |
Type |
Description |
methods |
repeated string |
|
versions |
repeated string |
|
resources |
repeated string |
|
error_codes |
repeated string |
|
group_by |
repeated StatsQuery.ErrorCounts.Groups |
|
StatsQuery.ExecutedCalls Message
StatsQuery.IngressThroughput Message
StatsQuery.Logs Message
StatsQuery.OpenCalls Message
Name |
Type |
Description |
methods |
repeated string |
|
versions |
repeated string |
|
resources |
repeated string |
|
group_by |
repeated StatsQuery.OpenCalls.Groups |
|
StatsQuery.ResourceChangeLogs Message
StatsQuery.ResourceCount Message
Name |
Type |
Description |
resources |
repeated string |
|
StatsQuery.StoreOperations Message
StatsQuery.TimeSeries Message
StatsQuery.TimeSeriesLatencies Message
Strings Message
Represents wrapped list of strings.
Name |
Type |
Description |
values |
repeated string |
|
TimeInterval Message
A time interval extending just after a start time through an end time.
If the start time is the same as the end time, then the interval
represents a single point in time.
Name |
Type |
Description |
end_time |
.google.protobuf.Timestamp |
Required. The end of the time interval. |
start_time |
.google.protobuf.Timestamp |
Optional. The beginning of the time interval. The default value for the start time is the end time. The start time must not be later than the end time. |
TimeRange Message
Time Range represents time between two points in time. Any of those can
be missing, which means it’s open-ended.
Name |
Type |
Description |
start_time |
.google.protobuf.Timestamp |
Optional. Start of time range |
end_time |
.google.protobuf.Timestamp |
Optional. End of time range |
TimeSeriesCollectionRuleChange Message
TimeSeriesCollectionRuleChange is used by Watch notifications Responses to
describe change of single TimeSeriesCollectionRule One of Added, Modified,
Removed
TimeSeriesCollectionRuleChange.Added Message
TimeSeriesCollectionRule has been added to query view
Name |
Type |
Description |
time_series_collection_rule |
TimeSeriesCollectionRule |
|
view_index |
int32 |
Integer describing index of added TimeSeriesCollectionRule in resulting query view. |
TimeSeriesCollectionRuleChange.Current Message
TimeSeriesCollectionRule has been added or modified in a query view.
Version used for stateless watching
TimeSeriesCollectionRuleChange.Modified Message
TimeSeriesCollectionRule changed some of it’s fields - contains either full
document or masked change
Name |
Type |
Description |
name |
string (name of TimeSeriesCollectionRule) |
Name of modified TimeSeriesCollectionRule |
time_series_collection_rule |
TimeSeriesCollectionRule |
New version of TimeSeriesCollectionRule or masked difference, depending on mask_changes instrumentation of issued [WatchTimeSeriesCollectionRuleRequest] or [WatchTimeSeriesCollectionRulesRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified TimeSeriesCollectionRule. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying TimeSeriesCollectionRule new index in resulting query view. |
TimeSeriesCollectionRuleChange.Removed Message
Removed is returned when TimeSeriesCollectionRule is deleted or leaves
Query view
Name |
Type |
Description |
name |
string (name of TimeSeriesCollectionRule) |
|
view_index |
int32 |
Integer specifying removed TimeSeriesCollectionRule index. Not populated in stateless watch type. |
TimeSeriesForwarderSinkChange Message
TimeSeriesForwarderSinkChange is used by Watch notifications Responses to
describe change of single TimeSeriesForwarderSink One of Added, Modified,
Removed
TimeSeriesForwarderSinkChange.Added Message
TimeSeriesForwarderSink has been added to query view
Name |
Type |
Description |
time_series_forwarder_sink |
TimeSeriesForwarderSink |
|
view_index |
int32 |
Integer describing index of added TimeSeriesForwarderSink in resulting query view. |
TimeSeriesForwarderSinkChange.Current Message
TimeSeriesForwarderSink has been added or modified in a query view. Version
used for stateless watching
TimeSeriesForwarderSinkChange.Modified Message
TimeSeriesForwarderSink changed some of it’s fields - contains either full
document or masked change
Name |
Type |
Description |
name |
string (name of TimeSeriesForwarderSink) |
Name of modified TimeSeriesForwarderSink |
time_series_forwarder_sink |
TimeSeriesForwarderSink |
New version of TimeSeriesForwarderSink or masked difference, depending on mask_changes instrumentation of issued [WatchTimeSeriesForwarderSinkRequest] or [WatchTimeSeriesForwarderSinksRequest] |
field_mask |
.google.protobuf.FieldMask |
Used when mask_changes is set, contains field paths of modified properties. |
previous_view_index |
int32 |
Previous view index specifies previous position of modified TimeSeriesForwarderSink. When modification doesn’t affect sorted order, value will remain identical to [view_index]. |
view_index |
int32 |
Integer specifying TimeSeriesForwarderSink new index in resulting query view. |
TimeSeriesForwarderSinkChange.Removed Message
Removed is returned when TimeSeriesForwarderSink is deleted or leaves Query
view
Name |
Type |
Description |
name |
string (name of TimeSeriesForwarderSink) |
|
view_index |
int32 |
Integer specifying removed TimeSeriesForwarderSink index. Not populated in stateless watch type. |
TimeSeriesSelector Message
Name |
Type |
Description |
metric |
MetricSelector |
Metric Selector used to specify filtered Metric types and labels |
resource |
MonitoredResourceSelector |
Resource Selector used to specify filtered Monitored Resource types and labels |
TypedValue Message
A single strongly-typed value.
Name |
Type |
Description |
bool_value |
bool |
A Boolean value: true or false . |
int64_value |
int64 |
A 64-bit integer. Its range is approximately ±9.2x10<sup>18</sup>. |
double_value |
double |
A 64-bit double-precision floating-point number. Its magnitude is approximately ±10<sup>±300</sup> and it has 16 significant digits of precision. |
string_value |
string |
A variable-length string value. |
distribution_value |
Distribution |
A distribution value. |
Monitoring Service Shared Enumerations
Here is the list of Monitoring service shared enumerations:
Aggregation.Aligner Enumeration
The Aligner describes how to bring the data points in a single
time series into temporal alignment.
Name |
Description |
ALIGN_NONE |
No alignment. Raw data is returned. Not valid if cross-time series reduction is requested. The value type of the result is the same as the value type of the input. |
ALIGN_DELTA |
Align and convert to delta metric type. This alignment is valid for cumulative metrics and delta metrics. Aligning an existing delta metric to a delta metric requires that the alignment period be increased. The value type of the result is the same as the value type of the input. One can think of this aligner as a rate but without time units; that is, the output is conceptually (second_point - first_point). |
ALIGN_RATE |
Align and convert to a rate. This alignment is valid for cumulative metrics and delta metrics with numeric values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. One can think of this aligner as conceptually providing the slope of the line that passes through the value at the start and end of the window. In other words, this is conceptually ((y1 - y0)/(t1 - t0)), and the output unit is one that has a “/time” dimension. If, by rate, you are looking for percentage change, see the ALIGN_PERCENT_CHANGE aligner option. |
ALIGN_MIN |
Align time series via aggregation. The resulting data point in the alignment period is the minimum of all data points in the period. This alignment is valid for gauge and delta metrics with numeric values. The value type of the result is either [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE], or [INT64][google.api.MetricDescriptor.ValueType.INT64], depending whether original type is int64, or double/distribution. |
ALIGN_MAX |
Align time series via aggregation. The resulting data point in the alignment period is the maximum of all data points in the period. This alignment is valid for gauge and delta metrics with numeric values. The value type of the result is either [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE], or [INT64][google.api.MetricDescriptor.ValueType.INT64], depending whether original type is int64, or double/distribution. |
ALIGN_MEAN |
Align time series via aggregation. The resulting data point in the alignment period is the average or arithmetic mean of all data points in the period. This alignment is valid for gauge and delta metrics with numeric values. The value type of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
ALIGN_COUNT |
Align time series via aggregation. The resulting data point in the alignment period is the count of all data points in the period. This alignment is valid for gauge and delta metrics with numeric or Boolean values. The value type of the output is [INT64][google.api.MetricDescriptor.ValueType.INT64]. |
ALIGN_SUM |
Align time series via aggregation. The resulting data point in the alignment period is the sum of all data points in the period. This alignment is valid for gauge and delta metrics with numeric and distribution values. The value type of the output is the same as the value type of the input. |
ALIGN_STDDEV |
Align time series via aggregation. The resulting data point in the alignment period is the standard deviation of all data points in the period. This alignment is valid for gauge and delta metrics with numeric values. The value type of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
ALIGN_PERCENTILE_99 |
Align time series via aggregation. The resulting data point in the alignment period is the 99th percentile of all data points in the period. This alignment is valid for gauge and delta metrics with distribution values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
ALIGN_PERCENTILE_95 |
Align time series via aggregation. The resulting data point in the alignment period is the 95th percentile of all data points in the period. This alignment is valid for gauge and delta metrics with distribution values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
ALIGN_PERCENTILE_50 |
Align time series via aggregation. The resulting data point in the alignment period is the 50th percentile of all data points in the period. This alignment is valid for gauge and delta metrics with distribution values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
ALIGN_PERCENTILE_05 |
Align time series via aggregation. The resulting data point in the alignment period is the 5th percentile of all data points in the period. This alignment is valid for gauge and delta metrics with distribution values. The output is a gauge metric with value type [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
ALIGN_SUMMARY |
Outputs Distribution without bucketing with stats like: Min, Max, Count, Mean, SumOfSquaredDeviations valid only for LONG, DOUBLE and DISTRIBUTION value types |
Aggregation.Reducer Enumeration
A Reducer describes how to aggregate data points from multiple
time series into a single time series.
Name |
Description |
REDUCE_NONE |
No cross-time series reduction. The output of the aligner is returned. |
REDUCE_MEAN |
Reduce by computing the mean across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric or distribution values. The value type of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
REDUCE_MIN |
Reduce by computing the minimum across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric values. The value type of the output is the same as the value type of the input. |
REDUCE_MAX |
Reduce by computing the maximum across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric values. The value type of the output is the same as the value type of the input. |
REDUCE_SUM |
Reduce by computing the sum across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric and distribution values. The value type of the output is the same as the value type of the input. |
REDUCE_STDDEV |
Reduce by computing the standard deviation across time series for each alignment period. This reducer is valid for delta and gauge metrics with numeric or distribution values. The value type of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE]. |
REDUCE_COUNT |
Reduce by computing the count of data points across time series for each alignment period. This reducer is valid for delta and gauge metrics of numeric, Boolean, distribution, and string value type. The value type of the output is [INT64][google.api.MetricDescriptor.ValueType.INT64]. |
REDUCE_PERCENTILE_99 |
Reduce by computing 99th percentile of data points across time series for each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE] |
REDUCE_PERCENTILE_95 |
Reduce by computing 95th percentile of data points across time series for each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE] |
REDUCE_PERCENTILE_50 |
Reduce by computing 50th percentile of data points across time series for each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE] |
REDUCE_PERCENTILE_05 |
Reduce by computing 5th percentile of data points across time series for each alignment period. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DOUBLE][google.api.MetricDescriptor.ValueType.DOUBLE] |
REDUCE_SUMMARY |
Reduce with Distribution with stats like: Min, Max, Count, Mean, SumOfSquaredDeviations, histogram. This reducer is valid for gauge and delta metrics of numeric and distribution type. The value of the output is [DISTRIBUTION][google.api.MetricDescriptor.ValueType.DISTRIBUTION] |
LabelDescriptor.ValueType Enumeration
Value types that can be used as label values.
Name |
Description |
STRING |
A variable-length string. This is the default. |
BOOL |
Boolean; true or false. |
INT64 |
A 64-bit signed integer. |
StatsQuery.ActivityLogs.Groups Enumeration
Name |
Description |
METHOD |
|
VERSION |
|
CATEGORY |
|
StatsQuery.ActivityLogs.Type Enumeration
Name |
Description |
UNDEFINED |
|
READS |
|
WRITES |
|
StatsQuery.CallLatencies.Groups Enumeration
Name |
Description |
METHOD |
|
VERSION |
|
RESOURCE_TYPE |
|
StatsQuery.CallLatencies.Reducer Enumeration
Name |
Description |
SUMMARY |
|
MIN |
|
MAX |
|
P50 |
|
P95 |
|
P99 |
|
MEAN |
|
STD_DEV |
|
StatsQuery.EgressThroughput.Groups Enumeration
Name |
Description |
METHOD |
|
VERSION |
|
RESOURCE_TYPE |
|
StatsQuery.ErrorCounts.Groups Enumeration
Name |
Description |
METHOD |
|
VERSION |
|
RESOURCE_TYPE |
|
RESPONSE_CODE |
|
StatsQuery.ExecutedCalls.Groups Enumeration
Name |
Description |
METHOD |
|
VERSION |
|
RESOURCE_TYPE |
|
StatsQuery.IngressThroughput.Groups Enumeration
Name |
Description |
METHOD |
|
VERSION |
|
RESOURCE_TYPE |
|
StatsQuery.Logs.Groups Enumeration
Name |
Description |
LOG_TYPE |
|
StatsQuery.Logs.Type Enumeration
Name |
Description |
UNDEFINED |
|
READS |
|
WRITES |
|
StatsQuery.OpenCalls.Groups Enumeration
Name |
Description |
METHOD |
|
VERSION |
|
RESOURCE_TYPE |
|
StatsQuery.ResourceChangeLogs.Groups Enumeration
Name |
Description |
RESOURCE_TYPE |
|
StatsQuery.ResourceChangeLogs.Type Enumeration
Name |
Description |
UNDEFINED |
|
READS |
|
WRITES |
|
StatsQuery.StoreOperations.Groups Enumeration
Name |
Description |
METHOD |
|
VERSION |
|
RESOURCE_TYPE |
|
OPERATION |
|
StatsQuery.StoreOperations.Operation Enumeration
Name |
Description |
UNDEFINED |
|
GET |
|
LIST |
|
SEARCH |
|
WATCH |
|
CREATE |
|
UPDATE |
|
DELETE |
|
StatsQuery.TimeSeries.Groups Enumeration
Name |
Description |
RESOURCE_TYPE |
|
METRIC_TYPE |
|
StatsQuery.TimeSeries.Type Enumeration
Name |
Description |
UNDEFINED |
|
READS |
|
RAW_WRITES |
|
ROLLUP_WRITES |
|
StatsQuery.TimeSeriesLatencies.Reducer Enumeration
Name |
Description |
SUMMARY |
|
MIN |
|
MAX |
|
P50 |
|
P95 |
|
P99 |
|
MEAN |
|
STD_DEV |
|
TimeSeriesView Enumeration
Controls which fields are returned by ListTimeSeries
.
Name |
Description |
FULL |
Returns the identity of the metric(s), the time series, and the time series data. |
HEADERS |
Returns the identity of the metric and the time series resource, but not the time series data. |