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.
  • 1:
  • 2:

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

  • Version v3
  • Version v4

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.

Pagination queries

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.

$ 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 IntervalStorage Period
1m14 days
3m28 days
5m42 days
15m62 days
30m92 days
1h184 days
3h366 days
6h732 days
12h1098 days
1d1464 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 filterspecifying 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: ...

1 -

Understanding the monitoring.edgelq.com service APIv3, in proto package ntt.monitoring.v3.

Service monitoring.edgelq.com in version v3, 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:

GET /v3/alerts:batchGet 

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

NameTypeDescription
namestring (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}
metadataMeta
display_namestring
infoAlert.Info
stateAlert.StateState of alert

Alert.Info Message

NameTypeDescription
time_serieAlert.Info.TimeSerieTimeSerie labels that violated condition
observed_valuesAlert.Info.ObservedValuesobserved time series values during alert creation

Alert.State Message

NameTypeDescription
is_firingbool
is_acknowledgedbool
is_silencedbool
lifetimeTimeRangedescribes 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_notificationboolThis alert needs to be notified
notification_createdboolNotification resource is generated for this alert
lifecycle_completedboolAlert has ended and any needed notifications are processed

Alert.Info.TimeSerie Message

NameTypeDescription
keybytes
metricMetric
monitored_resourceMonitoredResource

Alert.Info.ObservedValues Message

NameTypeDescription
example_valuedoubleoneof
per_metricmap<string, double>

Alert.State.Threshold Message

oneof:

NameTypeDescription
observed_valuedouble

Alert.State.CombineThreshold Message

NameTypeDescription
nonenonenone

Alert.State.CombineThreshold.PerMetric Message

NameTypeDescription
observed_valuesmap<string, double>

GetAlertRequest Message

A request message of the GetAlert method.

NameTypeDescription
namestring (name of Alert)Name of ntt.monitoring.v3.Alert
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of Alert)Names of Alerts
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
alertsrepeated Alertfound Alerts
missingrepeated string (name of Alert)list of not found Alerts

ListAlertsRequest Message

A request message of the ListAlerts method.

NameTypeDescription
parentstring (parent name of Alert)Parent name of ntt.monitoring.v3.Alert
page_sizeint32Requested page size. Server may return fewer Alerts than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
alertsrepeated AlertThe list of Alerts
prev_page_tokenstring (cursor of Alert)A token to retrieve previous page of results. Pass this value in the ListAlertsRequest.page_token.
next_page_tokenstring (cursor of Alert)A token to retrieve next page of results. Pass this value in the ListAlertsRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of Alert)Name of ntt.monitoring.v3.Alert
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeAlertChange

WatchAlertsRequest Message

A request message of the WatchAlerts method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of Alert)Parent name of ntt.monitoring.v3.Alert
page_sizeint32Requested 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_tokenstring (cursor of Alert)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of Alert)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
alert_changesrepeated AlertChangeChanges of Alerts
is_currentboolIf 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_changeWatchAlertsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of Alert)New token to retrieve previous page of results.
next_page_tokenstring (cursor of Alert)New token to retrieve next page of results.

CreateAlertRequest Message

A request message of the CreateAlert method.

NameTypeDescription
parentstring (parent name of Alert)Parent name of ntt.monitoring.v3.Alert
alertAlertAlert resource body
response_maskCreateAlertRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateAlertRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateAlertRequest Message

A request message of the UpdateAlert method.

NameTypeDescription
alertAlertAlert resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateAlertRequest.CASConditional 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_missingboolIf 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_maskUpdateAlertRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateAlertConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateAlertRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of Alert)Name of ntt.monitoring.v3.Alert
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

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

NameTypeDescription
namestring (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]
metadataMetaMetadata
display_namestringDisplay Name
descriptionstringLong description
specAlertingCondition.Spec
stateAlertingCondition.State

AlertingCondition.Spec Message

NameTypeDescription
time_seriesAlertingCondition.Spec.TimeSeries
triggerAlertingCondition.Spec.Trigger

AlertingCondition.State Message

NameTypeDescription
firing_alerts_countint64

AlertingCondition.Spec.TimeSeries Message

NameTypeDescription
queryAlertingCondition.Spec.TimeSeries.QueryTime Series Query
thresholdAlertingCondition.Spec.TimeSeries.ThresholdEither 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
combine_thresholdAlertingCondition.Spec.TimeSeries.CombineThreshold
duration.google.protobuf.DurationDuration describes length of time needed for the condition to trigger a new alert of resolve an existing one

AlertingCondition.Spec.Trigger Message

NameTypeDescription
typeAlertingCondition.Spec.Trigger.Type

AlertingCondition.Spec.TimeSeries.Query Message

NameTypeDescription
selectorTimeSeriesSelectorSelector is used to generate Time Series filter
aggregationAggregationTime Series aggregation

AlertingCondition.Spec.TimeSeries.Threshold Message

NameTypeDescription
compareAlertingCondition.Spec.TimeSeries.Threshold.CompareCompare 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.
valuedoublethreshold value

AlertingCondition.Spec.TimeSeries.CombineThreshold Message

NameTypeDescription
per_metricmap<string, AlertingCondition.Spec.TimeSeries.Threshold>Per Metric threshold. If multiple metrics are selected each metric may specify a different threshold
combineAlertingCondition.Spec.TimeSeries.CombineThreshold.CombineOperatorCombine describes how sub-conditions for each metric concerning single resource label set (determined by aggregation.groupByFields) must compose in order to trigger an alert. TODO: add support for AND

GetAlertingConditionRequest Message

A request message of the GetAlertingCondition method.

NameTypeDescription
namestring (name of AlertingCondition)Name of ntt.monitoring.v3.AlertingCondition
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of AlertingCondition)Names of AlertingConditions
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
alerting_conditionsrepeated AlertingConditionfound AlertingConditions
missingrepeated string (name of AlertingCondition)list of not found AlertingConditions

ListAlertingConditionsRequest Message

A request message of the ListAlertingConditions method.

NameTypeDescription
parentstring (parent name of AlertingCondition)Parent name of ntt.monitoring.v3.AlertingCondition
page_sizeint32Requested page size. Server may return fewer AlertingConditions than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
alerting_conditionsrepeated AlertingConditionThe list of AlertingConditions
prev_page_tokenstring (cursor of AlertingCondition)A token to retrieve previous page of results. Pass this value in the ListAlertingConditionsRequest.page_token.
next_page_tokenstring (cursor of AlertingCondition)A token to retrieve next page of results. Pass this value in the ListAlertingConditionsRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of AlertingCondition)Name of ntt.monitoring.v3.AlertingCondition
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeAlertingConditionChange

WatchAlertingConditionsRequest Message

A request message of the WatchAlertingConditions method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of AlertingCondition)Parent name of ntt.monitoring.v3.AlertingCondition
page_sizeint32Requested 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_tokenstring (cursor of AlertingCondition)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of AlertingCondition)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
alerting_condition_changesrepeated AlertingConditionChangeChanges of AlertingConditions
is_currentboolIf 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_changeWatchAlertingConditionsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of AlertingCondition)New token to retrieve previous page of results.
next_page_tokenstring (cursor of AlertingCondition)New token to retrieve next page of results.

CreateAlertingConditionRequest Message

A request message of the CreateAlertingCondition method.

NameTypeDescription
parentstring (parent name of AlertingCondition)Parent name of ntt.monitoring.v3.AlertingCondition
alerting_conditionAlertingConditionAlertingCondition resource body
response_maskCreateAlertingConditionRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateAlertingConditionRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateAlertingConditionRequest Message

A request message of the UpdateAlertingCondition method.

NameTypeDescription
alerting_conditionAlertingConditionAlertingCondition resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateAlertingConditionRequest.CASConditional 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_missingboolIf 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_maskUpdateAlertingConditionRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateAlertingConditionConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateAlertingConditionRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of AlertingCondition)Name of ntt.monitoring.v3.AlertingCondition
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

SearchAlertingConditionsRequest Message

A request message of the SearchAlertingConditions method.

NameTypeDescription
parentstring (parent name of AlertingCondition)Parent name of ntt.monitoring.v3.AlertingCondition
page_sizeint32Requested page size. Server may return fewer AlertingConditions than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
phrasestringOptional search phrase used to further filter results.

SearchAlertingConditionsResponse Message

A response message of the SearchAlertingConditions method.

NameTypeDescription
alerting_conditionsrepeated AlertingConditionThe list of AlertingConditions
prev_page_tokenstring (cursor of AlertingCondition)A token to retrieve previous page of results. Pass this value in the SearchAlertingConditionsRequest.page_token.
next_page_tokenstring (cursor of AlertingCondition)A token to retrieve next page of results. Pass this value in the SearchAlertingConditionsRequest.page_token.
current_offsetint32Current 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_countint32Number of total AlertingConditions across all pages.

AlertingCondition Enumerations

Here is the list of AlertingCondition resource enumerations:

AlertingCondition.Spec.TimeSeries.Threshold.Compare Enumeration

NameDescription
COMPARE_UNSPECIFIED
GT
LT

AlertingCondition.Spec.TimeSeries.CombineThreshold.CombineOperator Enumeration

NameDescription
OR
AND

AlertingCondition.Spec.Trigger.Type Enumeration

NameDescription
EACHTriggers 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

NameTypeDescription
namestring (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]
metadataMeta
display_namestringdisplay name
descriptionstringLong description
documentationAlertingPolicy.Documentation
specAlertingPolicy.SpecSpec
stateAlertingPolicy.State

AlertingPolicy.Documentation Message

Documentation

NameTypeDescription
contentstringDocumentation content
mime_typestringdocumentation mime type. Only "text/markdown" is supported.

AlertingPolicy.Spec Message

NameTypeDescription
enabledboolWhether 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_combinerAlertingPolicy.Spec.ConditionsCombinerCondition 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
notificationAlertingPolicy.Spec.NotificationNotification specification

AlertingPolicy.State Message

NameTypeDescription
active_alerts_countint64Number of ongoing alerts (incident has not ended)

AlertingPolicy.Spec.Notification Message

Notification specification for a given Policy

NameTypeDescription
enabledboolEnabled flag determines whether any notifications will be sent
channelsrepeated string (reference to NotificationChannel)

GetAlertingPolicyRequest Message

A request message of the GetAlertingPolicy method.

NameTypeDescription
namestring (name of AlertingPolicy)Name of ntt.monitoring.v3.AlertingPolicy
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of AlertingPolicy)Names of AlertingPolicies
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
alerting_policiesrepeated AlertingPolicyfound AlertingPolicies
missingrepeated string (name of AlertingPolicy)list of not found AlertingPolicies

ListAlertingPoliciesRequest Message

A request message of the ListAlertingPolicies method.

NameTypeDescription
parentstring (parent name of AlertingPolicy)Parent name of ntt.monitoring.v3.AlertingPolicy
page_sizeint32Requested page size. Server may return fewer AlertingPolicies than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
alerting_policiesrepeated AlertingPolicyThe list of AlertingPolicies
prev_page_tokenstring (cursor of AlertingPolicy)A token to retrieve previous page of results. Pass this value in the ListAlertingPoliciesRequest.page_token.
next_page_tokenstring (cursor of AlertingPolicy)A token to retrieve next page of results. Pass this value in the ListAlertingPoliciesRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of AlertingPolicy)Name of ntt.monitoring.v3.AlertingPolicy
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeAlertingPolicyChange

WatchAlertingPoliciesRequest Message

A request message of the WatchAlertingPolicies method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of AlertingPolicy)Parent name of ntt.monitoring.v3.AlertingPolicy
page_sizeint32Requested 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_tokenstring (cursor of AlertingPolicy)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of AlertingPolicy)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
alerting_policy_changesrepeated AlertingPolicyChangeChanges of AlertingPolicies
is_currentboolIf 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_changeWatchAlertingPoliciesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of AlertingPolicy)New token to retrieve previous page of results.
next_page_tokenstring (cursor of AlertingPolicy)New token to retrieve next page of results.

CreateAlertingPolicyRequest Message

A request message of the CreateAlertingPolicy method.

NameTypeDescription
parentstring (parent name of AlertingPolicy)Parent name of ntt.monitoring.v3.AlertingPolicy
alerting_policyAlertingPolicyAlertingPolicy resource body
response_maskCreateAlertingPolicyRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateAlertingPolicyRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateAlertingPolicyRequest Message

A request message of the UpdateAlertingPolicy method.

NameTypeDescription
alerting_policyAlertingPolicyAlertingPolicy resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateAlertingPolicyRequest.CASConditional 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_missingboolIf 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_maskUpdateAlertingPolicyRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateAlertingPolicyConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateAlertingPolicyRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of AlertingPolicy)Name of ntt.monitoring.v3.AlertingPolicy
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

SearchAlertingPoliciesRequest Message

A request message of the SearchAlertingPolicies method.

NameTypeDescription
parentstring (parent name of AlertingPolicy)Parent name of ntt.monitoring.v3.AlertingPolicy
page_sizeint32Requested page size. Server may return fewer AlertingPolicies than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
phrasestringOptional search phrase used to further filter results.

SearchAlertingPoliciesResponse Message

A response message of the SearchAlertingPolicies method.

NameTypeDescription
alerting_policiesrepeated AlertingPolicyThe list of AlertingPolicies
prev_page_tokenstring (cursor of AlertingPolicy)A token to retrieve previous page of results. Pass this value in the SearchAlertingPoliciesRequest.page_token.
next_page_tokenstring (cursor of AlertingPolicy)A token to retrieve next page of results. Pass this value in the SearchAlertingPoliciesRequest.page_token.
current_offsetint32Current 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_countint32Number of total AlertingPolicies across all pages.

AlertingPolicy Enumerations

Here is the list of AlertingPolicy resource enumerations:

AlertingPolicy.Spec.ConditionsCombiner Enumeration

NameDescription
OR
AND

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

NameTypeDescription
metadataMetaMetadata
namestring (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}
typestringThe 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_typesrepeated stringassociated resource_types (also used to infer defaults) examples, devices.edgelq.com/Device, watchdog.edgelq.com/Agent if not set, defaults to “global” resource type.
labelsrepeated LabelDescriptorThe 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_kindMetricDescriptor.MetricKindWhether the metric records instantaneous values, changes to a value, etc. Some combinations of metric_kind and value_type might not be supported.
value_typeMetricDescriptor.ValueTypeWhether the measurement is an integer, a floating-point number, etc. Some combinations of metric_kind and value_type might not be supported.
unitstringThe 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
descriptionstringA detailed description of the metric, which can be used in documentation.
display_namestringA 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_metadataMetricDescriptor.MetricDescriptorMetadataOptional. Metadata which can be used to guide usage of the metric.
distribution_bucket_optionsDistribution.BucketOptionsDistribution bucketing options - define only when ValueType is Distribution. Used for validating input.
promoted_label_key_setsrepeated LabelKeySetPromoted 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_specMetricDescriptor.IndexSpecIndexing 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_configMetricDescriptor.StorageConfigStorage settings

MetricDescriptor.MetricDescriptorMetadata Message

Additional annotations that can be used to guide the usage of a metric.

NameTypeDescription
launch_stageLaunchStageThe launch stage of the metric definition.

MetricDescriptor.IndexSpec Message

NameTypeDescription
per_resourcerepeated MetricDescriptor.IndexSpec.PerMonitoredResourcePerResource index

MetricDescriptor.StorageConfig Message

Backend storage config

NameTypeDescription
store_raw_pointsboolwhether to store raw points

MetricDescriptor.IndexSpec.Index Message

NameTypeDescription
promoted_labelsrepeated stringeach label is of format: {metric,resource}.labels.\<label-key\>. since resource and metric labels are mixed. Full path is required.
write_onlyboolwhether this index is write-only and not usable for querying

MetricDescriptor.IndexSpec.PerMonitoredResource Message

NameTypeDescription
resourcestring (reference to MonitoredResourceDescriptor)
indicesrepeated MetricDescriptor.IndexSpec.IndexList of indices for given metric and resource pair

BatchGetMetricDescriptorsRequest Message

A request message of the BatchGetMetricDescriptors method.

NameTypeDescription
namesrepeated string (name of MetricDescriptor)Names of MetricDescriptors
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
metric_descriptorsrepeated MetricDescriptorfound MetricDescriptors
missingrepeated string (name of MetricDescriptor)list of not found MetricDescriptors

WatchMetricDescriptorRequest Message

A request message of the WatchMetricDescriptor method.

NameTypeDescription
namestring (name of MetricDescriptor)Name of ntt.monitoring.v3.MetricDescriptor
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeMetricDescriptorChange

WatchMetricDescriptorsRequest Message

A request message of the WatchMetricDescriptors method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of MetricDescriptor)Parent name of ntt.monitoring.v3.MetricDescriptor
page_sizeint32Requested 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_tokenstring (cursor of MetricDescriptor)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of MetricDescriptor)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
metric_descriptor_changesrepeated MetricDescriptorChangeChanges of MetricDescriptors
is_currentboolIf 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_changeWatchMetricDescriptorsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of MetricDescriptor)New token to retrieve previous page of results.
next_page_tokenstring (cursor of MetricDescriptor)New token to retrieve next page of results.

GetMetricDescriptorRequest Message

Request message for method [GetMetricDescriptor][ntt.monitoring.v3.GetMetricDescriptor]

NameTypeDescription
namestring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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]

NameTypeDescription
parentstring (parent name of MetricDescriptor)The project on which to execute the request. The format is "projects/{project_id_or_number}".
metric_descriptorMetricDescriptorThe new custom metric descriptor.
response_maskCreateMetricDescriptorRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateMetricDescriptorRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateMetricDescriptorRequest Message

Request message for method [UpdateMetricDescriptor][ntt.monitoring.v3.UpdateMetricDescriptor]

NameTypeDescription
metric_descriptorMetricDescriptorMetricDescriptor resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateMetricDescriptorRequest.CASConditional 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_missingboolIf 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_maskUpdateMetricDescriptorRequest.ResponseMask

UpdateMetricDescriptorRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateMetricDescriptorConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateMetricDescriptorRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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]

NameTypeDescription
namestring (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".
allow_missingboolIf true, call will not return NotFound error if deleted resource does not exist.

ListMetricDescriptorsRequest Message

Request message for method [ListMetricDescriptors][ntt.monitoring.v3.ListMetricDescriptors]

NameTypeDescription
parentstring (parent name of MetricDescriptor)The project on which to execute the request. The format is "projects/{project_id_or_number}".
filterstring (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_sizeint32A positive number that is the maximum number of results to return.
page_tokenstring (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_bystring (orderBy of MetricDescriptor)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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]

NameTypeDescription
metric_descriptorsrepeated MetricDescriptorThe metric descriptors that are available to the project and that match the value of filter, if present.
next_page_tokenstring (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_tokenstring (cursor of MetricDescriptor)
current_offsetint32Current 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_countint32Number 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.

NameDescription
METRIC_KIND_UNSPECIFIEDDo not use this default value.
GAUGEAn instantaneous measurement of a value.
DELTAThe change in a value during a time interval.
CUMULATIVEA 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.

NameDescription
VALUE_TYPE_UNSPECIFIEDDo not use this default value.
BOOLThe value is a boolean. This value type can be used only if the metric kind is GAUGE.
INT64The value is a signed 64-bit integer.
DOUBLEThe value is a double precision floating point number.
STRINGThe value is a text string. This value type can be used only if the metric kind is GAUGE.
DISTRIBUTIONThe value is a [Distribution][google.api.Distribution].
MONEYThe 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

NameTypeDescription
namestring (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.
typestringRequired. 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_namestringOptional. 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".
descriptionstringOptional. A detailed description of the monitored resource type that might be used in documentation.
labelsrepeated LabelDescriptorRequired. 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_setsrepeated LabelKeySetPromoted 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.
metadataMetaMetadata

BatchGetMonitoredResourceDescriptorsRequest Message

A request message of the BatchGetMonitoredResourceDescriptors method.

NameTypeDescription
namesrepeated string (name of MonitoredResourceDescriptor)Names of MonitoredResourceDescriptors
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
monitored_resource_descriptorsrepeated MonitoredResourceDescriptorfound MonitoredResourceDescriptors
missingrepeated string (name of MonitoredResourceDescriptor)list of not found MonitoredResourceDescriptors

WatchMonitoredResourceDescriptorRequest Message

A request message of the WatchMonitoredResourceDescriptor method.

NameTypeDescription
namestring (name of MonitoredResourceDescriptor)Name of ntt.monitoring.v3.MonitoredResourceDescriptor
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeMonitoredResourceDescriptorChange

WatchMonitoredResourceDescriptorsRequest Message

A request message of the WatchMonitoredResourceDescriptors method.

NameTypeDescription
typeWatchTypeType 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_sizeint32Requested 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_tokenstring (cursor of MonitoredResourceDescriptor)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of MonitoredResourceDescriptor)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
monitored_resource_descriptor_changesrepeated MonitoredResourceDescriptorChangeChanges of MonitoredResourceDescriptors
is_currentboolIf 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_changeWatchMonitoredResourceDescriptorsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of MonitoredResourceDescriptor)New token to retrieve previous page of results.
next_page_tokenstring (cursor of MonitoredResourceDescriptor)New token to retrieve next page of results.

CreateMonitoredResourceDescriptorRequest Message

A request message of the CreateMonitoredResourceDescriptor method.

NameTypeDescription
monitored_resource_descriptorMonitoredResourceDescriptorMonitoredResourceDescriptor resource body
response_maskCreateMonitoredResourceDescriptorRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateMonitoredResourceDescriptorRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateMonitoredResourceDescriptorRequest Message

A request message of the UpdateMonitoredResourceDescriptor method.

NameTypeDescription
monitored_resource_descriptorMonitoredResourceDescriptorMonitoredResourceDescriptor resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateMonitoredResourceDescriptorRequest.CASConditional 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_missingboolIf 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_maskUpdateMonitoredResourceDescriptorRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateMonitoredResourceDescriptorConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateMonitoredResourceDescriptorRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of MonitoredResourceDescriptor)Name of ntt.monitoring.v3.MonitoredResourceDescriptor
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

GetMonitoredResourceDescriptorRequest Message

Request message for method [GetMonitoredResourceDescriptor][ntt.monitoring.v3.GetMonitoredResourceDescriptor]

NameTypeDescription
namestring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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]

NameTypeDescription
filterstring (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_sizeint32A positive number that is the maximum number of results to return.
order_bystring (orderBy of MonitoredResourceDescriptor)
page_tokenstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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]

NameTypeDescription
monitored_resource_descriptorsrepeated MonitoredResourceDescriptorThe monitored resource descriptors that are available to this project and that match filter, if present.
next_page_tokenstring (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_tokenstring (cursor of MonitoredResourceDescriptor)
current_offsetint32Current 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_countint32Number 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

NameTypeDescription
namestring (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}
metadataMeta
alerting_policystring (name of AlertingPolicy)Reference to alerting policy that this notification is for
alertsrepeated string (name of Alert)References to alerts that are part of this notification
stateNotification.State

Notification.State Message

NameTypeDescription
is_resolvedbool
notification_staterepeated Notification.State.NotificationStateNotification state
incident_notify_attempts_doneboolInternal state to keep track of whether any notification sends needs to be retried for new incident
resolution_notify_attempts_doneboolInternal state to keep track of whether any notification sends needs to be retried for resolution
alerts_lifetimeTimeRangeTime range for which alerts for the policy are clubbed together
resolution_notification_staterepeated Notification.State.NotificationState
lifecycle_completedboolAlert has ended and any needed notifications are processed

Notification.State.NotificationState Message

NameTypeDescription
notification_channelstring (name of NotificationChannel)Notification channel name
statusNotification.State.NotificationState.Status
errorstringError message if status is FAILED
provider_dataNotification.State.NotificationState.ProviderDataProvider specific data. Allows tracking ids of notifications sent to specific channels.
notify_attemptsint64

Notification.State.NotificationState.ProviderData Message

Provider specific data

NameTypeDescription
slackNotification.State.NotificationState.ProviderData.Slack
pager_dutyNotification.State.NotificationState.ProviderData.PagerDuty

Notification.State.NotificationState.ProviderData.Slack Message

Slack

NameTypeDescription
tsstring

Notification.State.NotificationState.ProviderData.PagerDuty Message

Pager Duty

NameTypeDescription
incident_keystring

GetNotificationRequest Message

A request message of the GetNotification method.

NameTypeDescription
namestring (name of Notification)Name of ntt.monitoring.v3.Notification
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of Notification)Names of Notifications
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
notificationsrepeated Notificationfound Notifications
missingrepeated string (name of Notification)list of not found Notifications

ListNotificationsRequest Message

A request message of the ListNotifications method.

NameTypeDescription
parentstring (parent name of Notification)Parent name of ntt.monitoring.v3.Notification
page_sizeint32Requested page size. Server may return fewer Notifications than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
notificationsrepeated NotificationThe list of Notifications
prev_page_tokenstring (cursor of Notification)A token to retrieve previous page of results. Pass this value in the ListNotificationsRequest.page_token.
next_page_tokenstring (cursor of Notification)A token to retrieve next page of results. Pass this value in the ListNotificationsRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of Notification)Name of ntt.monitoring.v3.Notification
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeNotificationChange

WatchNotificationsRequest Message

A request message of the WatchNotifications method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of Notification)Parent name of ntt.monitoring.v3.Notification
page_sizeint32Requested 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_tokenstring (cursor of Notification)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of Notification)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
notification_changesrepeated NotificationChangeChanges of Notifications
is_currentboolIf 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_changeWatchNotificationsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of Notification)New token to retrieve previous page of results.
next_page_tokenstring (cursor of Notification)New token to retrieve next page of results.

CreateNotificationRequest Message

A request message of the CreateNotification method.

NameTypeDescription
parentstring (parent name of Notification)Parent name of ntt.monitoring.v3.Notification
notificationNotificationNotification resource body
response_maskCreateNotificationRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateNotificationRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateNotificationRequest Message

A request message of the UpdateNotification method.

NameTypeDescription
notificationNotificationNotification resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateNotificationRequest.CASConditional 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_missingboolIf 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_maskUpdateNotificationRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateNotificationConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateNotificationRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of Notification)Name of ntt.monitoring.v3.Notification
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

Notification Enumerations

Here is the list of Notification resource enumerations:

Notification.State.NotificationState.Status Enumeration

NameDescription
UNKNOWN
PENDING
FAILED
SUPPRESSED
SENT
DELIVEREDStatus 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

NameTypeDescription
namestring (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]
metadataMetaMetadata of NotificationChannel
display_namestringDisplay Name
specNotificationChannel.SpecSpecification
stateNotificationChannel.StateState
descriptionstringdescription

NotificationChannel.Spec Message

Spec of NotificationChannel

NameTypeDescription
enabledboolEnabled flag. Whether the NotificationChannel is enabled or not. Disabled channels will not be used for alerting.
typeNotificationChannel.Spec.TypeType. Corresponding spec should a oneof field.
emailNotificationChannel.Spec.EmailEmail
slackNotificationChannel.Spec.SlackSlack
webhookNotificationChannel.Spec.Webhook
notification_language_codestringDefault language for invitation is english (eng) Configuring unsupported language will fallback to english Currently only sendgrid uses this.

NotificationChannel.State Message

State of NotificationChannel

NameTypeDescription
statusNotificationChannel.State.StatusStatus
errorNotificationChannel.State.ErrorError

NotificationChannel.Spec.Email Message

Email Spec

NameTypeDescription
addressesrepeated stringEmail Addresses

NotificationChannel.Spec.Slack Message

Slack Spec

NameTypeDescription
incoming_webhookstringSlack Incoming Webhook URL

NotificationChannel.Spec.PagerDuty Message

PagerDuty Spec

NameTypeDescription
service_keystringPagerDuty Service Key

NotificationChannel.Spec.Webhook Message

Webhook Spec

NameTypeDescription
urlstringWebhook URL
headersrepeated NotificationChannel.Spec.Webhook.HeaderHeaders

NotificationChannel.Spec.Webhook.Header Message

Header

NameTypeDescription
keystring
valuestring

NotificationChannel.State.Error Message

Error of NotificationChannel

NameTypeDescription
time.google.protobuf.Timestamp
messagestring

GetNotificationChannelRequest Message

A request message of the GetNotificationChannel method.

NameTypeDescription
namestring (name of NotificationChannel)Name of ntt.monitoring.v3.NotificationChannel
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of NotificationChannel)Names of NotificationChannels
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
notification_channelsrepeated NotificationChannelfound NotificationChannels
missingrepeated string (name of NotificationChannel)list of not found NotificationChannels

ListNotificationChannelsRequest Message

A request message of the ListNotificationChannels method.

NameTypeDescription
parentstring (parent name of NotificationChannel)Parent name of ntt.monitoring.v3.NotificationChannel
page_sizeint32Requested page size. Server may return fewer NotificationChannels than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
notification_channelsrepeated NotificationChannelThe list of NotificationChannels
prev_page_tokenstring (cursor of NotificationChannel)A token to retrieve previous page of results. Pass this value in the ListNotificationChannelsRequest.page_token.
next_page_tokenstring (cursor of NotificationChannel)A token to retrieve next page of results. Pass this value in the ListNotificationChannelsRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of NotificationChannel)Name of ntt.monitoring.v3.NotificationChannel
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeNotificationChannelChange

WatchNotificationChannelsRequest Message

A request message of the WatchNotificationChannels method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of NotificationChannel)Parent name of ntt.monitoring.v3.NotificationChannel
page_sizeint32Requested 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_tokenstring (cursor of NotificationChannel)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of NotificationChannel)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
notification_channel_changesrepeated NotificationChannelChangeChanges of NotificationChannels
is_currentboolIf 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_changeWatchNotificationChannelsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of NotificationChannel)New token to retrieve previous page of results.
next_page_tokenstring (cursor of NotificationChannel)New token to retrieve next page of results.

CreateNotificationChannelRequest Message

A request message of the CreateNotificationChannel method.

NameTypeDescription
parentstring (parent name of NotificationChannel)Parent name of ntt.monitoring.v3.NotificationChannel
notification_channelNotificationChannelNotificationChannel resource body
response_maskCreateNotificationChannelRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateNotificationChannelRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateNotificationChannelRequest Message

A request message of the UpdateNotificationChannel method.

NameTypeDescription
notification_channelNotificationChannelNotificationChannel resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateNotificationChannelRequest.CASConditional 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_missingboolIf 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_maskUpdateNotificationChannelRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateNotificationChannelConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateNotificationChannelRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of NotificationChannel)Name of ntt.monitoring.v3.NotificationChannel
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

TestNotificationChannelRequest Message

Request message for method [TestNotificationChannel][ntt.monitoring.v3.TestNotificationChannel]

NameTypeDescription
namestring (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

NameDescription
TYPE_UNSPECIFIEDType is unknown
EMAILEmail NotificationChannel
SLACKSlack NotificationChannel
WEBHOOKWebhook NotificationChannel

NotificationChannel.State.Status Enumeration

State of NotificationChannel

NameDescription
STATE_UNSPECIFIEDState is unknown
ACTIVENotificationChannel is active
DISABLEDNotificationChannel is disabled
ERRORError 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

NameTypeDescription
metadataMetaCommon resource Metadata
namestring (name of PhantomTimeSerie)Name of PhantomTimeSeries Name must contain base64 encoded string of TimeSeries key
keybytesTimeSerie 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
projectstringInternal use - for bulk reporting of TimeSeries
metricMetricThe associated metric. A fully-specified metric used to identify the time series. This field cannot be updated, can be only set during creation.
resourceMonitoredResourceThe 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_kindMetricDescriptor.MetricKindThe 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_typeMetricDescriptor.ValueTypeThe 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.
valueTypedValuePhantom value

GetPhantomTimeSerieRequest Message

A request message of the GetPhantomTimeSerie method.

NameTypeDescription
namestring (name of PhantomTimeSerie)Name of ntt.monitoring.v3.PhantomTimeSerie
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of PhantomTimeSerie)Names of PhantomTimeSeries
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
phantom_time_seriesrepeated PhantomTimeSeriefound PhantomTimeSeries
missingrepeated string (name of PhantomTimeSerie)list of not found PhantomTimeSeries

ListPhantomTimeSeriesRequest Message

A request message of the ListPhantomTimeSeries method.

NameTypeDescription
parentstring (parent name of PhantomTimeSerie)Parent name of ntt.monitoring.v3.PhantomTimeSerie
page_sizeint32Requested page size. Server may return fewer PhantomTimeSeries than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
phantom_time_seriesrepeated PhantomTimeSerieThe list of PhantomTimeSeries
prev_page_tokenstring (cursor of PhantomTimeSerie)A token to retrieve previous page of results. Pass this value in the ListPhantomTimeSeriesRequest.page_token.
next_page_tokenstring (cursor of PhantomTimeSerie)A token to retrieve next page of results. Pass this value in the ListPhantomTimeSeriesRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of PhantomTimeSerie)Name of ntt.monitoring.v3.PhantomTimeSerie
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changePhantomTimeSerieChange

WatchPhantomTimeSeriesRequest Message

A request message of the WatchPhantomTimeSeries method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of PhantomTimeSerie)Parent name of ntt.monitoring.v3.PhantomTimeSerie
page_sizeint32Requested 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_tokenstring (cursor of PhantomTimeSerie)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of PhantomTimeSerie)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
phantom_time_serie_changesrepeated PhantomTimeSerieChangeChanges of PhantomTimeSeries
is_currentboolIf 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_changeWatchPhantomTimeSeriesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of PhantomTimeSerie)New token to retrieve previous page of results.
next_page_tokenstring (cursor of PhantomTimeSerie)New token to retrieve next page of results.

CreatePhantomTimeSerieRequest Message

A request message of the CreatePhantomTimeSerie method.

NameTypeDescription
parentstring (parent name of PhantomTimeSerie)Parent name of ntt.monitoring.v3.PhantomTimeSerie
phantom_time_seriePhantomTimeSeriePhantomTimeSerie resource body
response_maskCreatePhantomTimeSerieRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreatePhantomTimeSerieRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdatePhantomTimeSerieRequest Message

A request message of the UpdatePhantomTimeSerie method.

NameTypeDescription
phantom_time_seriePhantomTimeSeriePhantomTimeSerie resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdatePhantomTimeSerieRequest.CASConditional 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_missingboolIf 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_maskUpdatePhantomTimeSerieRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_statePhantomTimeSerieConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdatePhantomTimeSerieRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of PhantomTimeSerie)Name of ntt.monitoring.v3.PhantomTimeSerie
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

Project Resource

Project Resource

Name patterns:

  • projects/{project}

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:

GET /v3/projects 

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:

POST /v3/projects:watch 

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

NameTypeDescription
namestring (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]
titlestring
metadataMetametadata
multi_region_policyMultiRegionPolicyMulti region policy

GetProjectRequest Message

A request message of the GetProject method.

NameTypeDescription
namestring (name of Project)Name of ntt.monitoring.v3.Project
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of Project)Names of Projects
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
projectsrepeated Projectfound Projects
missingrepeated string (name of Project)list of not found Projects

ListProjectsRequest Message

A request message of the ListProjects method.

NameTypeDescription
page_sizeint32Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
projectsrepeated ProjectThe list of Projects
prev_page_tokenstring (cursor of Project)A token to retrieve previous page of results. Pass this value in the ListProjectsRequest.page_token.
next_page_tokenstring (cursor of Project)A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of Project)Name of ntt.monitoring.v3.Project
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeProjectChange

WatchProjectsRequest Message

A request message of the WatchProjects method.

NameTypeDescription
typeWatchTypeType 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_sizeint32Requested 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_tokenstring (cursor of Project)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of Project)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
project_changesrepeated ProjectChangeChanges of Projects
is_currentboolIf 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_changeWatchProjectsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of Project)New token to retrieve previous page of results.
next_page_tokenstring (cursor of Project)New token to retrieve next page of results.

CreateProjectRequest Message

A request message of the CreateProject method.

NameTypeDescription
projectProjectProject resource body
response_maskCreateProjectRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateProjectRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateProjectRequest Message

A request message of the UpdateProject method.

NameTypeDescription
projectProjectProject resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateProjectRequest.CASConditional 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_missingboolIf 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_maskUpdateProjectRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateProjectConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateProjectRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of Project)Name of ntt.monitoring.v3.Project
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

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

NameTypeDescription
namestring (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}
validity_periodRecoveryStoreShardingInfo.ValidityPeriodPeriod during which this sharding spec is valid.
specRecoveryStoreShardingInfo.ShardingSpecSharding spec for given validity period.
metadataMetametadata

RecoveryStoreShardingInfo.ValidityPeriod Message

Validity period specifies for which period of time this sharding spec is valid.

NameTypeDescription
start_time.google.protobuf.TimestampStart time of validity period.
end_time.google.protobuf.TimestampEnd 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).

NameTypeDescription
ts_blob_period.google.protobuf.DurationDefines period of time series points in a single blob.
shards_countuint32sNumber of shards (by key) in given shard period

GetRecoveryStoreShardingInfoRequest Message

A request message of the GetRecoveryStoreShardingInfo method.

NameTypeDescription
namestring (name of RecoveryStoreShardingInfo)Name of ntt.monitoring.v3.RecoveryStoreShardingInfo
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of RecoveryStoreShardingInfo)Names of RecoveryStoreShardingInfos
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
recovery_store_sharding_infosrepeated RecoveryStoreShardingInfofound RecoveryStoreShardingInfos
missingrepeated string (name of RecoveryStoreShardingInfo)list of not found RecoveryStoreShardingInfos

ListRecoveryStoreShardingInfosRequest Message

A request message of the ListRecoveryStoreShardingInfos method.

NameTypeDescription
parentstring (parent name of RecoveryStoreShardingInfo)Parent name of ntt.monitoring.v3.RecoveryStoreShardingInfo
page_sizeint32Requested page size. Server may return fewer RecoveryStoreShardingInfos than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
recovery_store_sharding_infosrepeated RecoveryStoreShardingInfoThe list of RecoveryStoreShardingInfos
prev_page_tokenstring (cursor of RecoveryStoreShardingInfo)A token to retrieve previous page of results. Pass this value in the ListRecoveryStoreShardingInfosRequest.page_token.
next_page_tokenstring (cursor of RecoveryStoreShardingInfo)A token to retrieve next page of results. Pass this value in the ListRecoveryStoreShardingInfosRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of RecoveryStoreShardingInfo)Name of ntt.monitoring.v3.RecoveryStoreShardingInfo
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeRecoveryStoreShardingInfoChange

WatchRecoveryStoreShardingInfosRequest Message

A request message of the WatchRecoveryStoreShardingInfos method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of RecoveryStoreShardingInfo)Parent name of ntt.monitoring.v3.RecoveryStoreShardingInfo
page_sizeint32Requested 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_tokenstring (cursor of RecoveryStoreShardingInfo)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of RecoveryStoreShardingInfo)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
recovery_store_sharding_info_changesrepeated RecoveryStoreShardingInfoChangeChanges of RecoveryStoreShardingInfos
is_currentboolIf 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_changeWatchRecoveryStoreShardingInfosResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of RecoveryStoreShardingInfo)New token to retrieve previous page of results.
next_page_tokenstring (cursor of RecoveryStoreShardingInfo)New token to retrieve next page of results.

CreateRecoveryStoreShardingInfoRequest Message

A request message of the CreateRecoveryStoreShardingInfo method.

NameTypeDescription
parentstring (parent name of RecoveryStoreShardingInfo)Parent name of ntt.monitoring.v3.RecoveryStoreShardingInfo
recovery_store_sharding_infoRecoveryStoreShardingInfoRecoveryStoreShardingInfo resource body
response_maskCreateRecoveryStoreShardingInfoRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateRecoveryStoreShardingInfoRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateRecoveryStoreShardingInfoRequest Message

A request message of the UpdateRecoveryStoreShardingInfo method.

NameTypeDescription
recovery_store_sharding_infoRecoveryStoreShardingInfoRecoveryStoreShardingInfo resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateRecoveryStoreShardingInfoRequest.CASConditional 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_missingboolIf 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_maskUpdateRecoveryStoreShardingInfoRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateRecoveryStoreShardingInfoConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateRecoveryStoreShardingInfoRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of RecoveryStoreShardingInfo)Name of ntt.monitoring.v3.RecoveryStoreShardingInfo
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

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

NameTypeDescription
keybytesTimeSerie 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.
projectstringInternal use - for bulk reporting of TimeSeries
regionstringRegion ID associated with time serie.
metricMetricThe associated metric. A fully-specified metric used to identify the time series.
resourceMonitoredResourceThe associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data.
metric_kindMetricDescriptor.MetricKindThe 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_typeMetricDescriptor.ValueTypeThe 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.
pointsrepeated PointThe 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]

NameTypeDescription
parentstring (name of Project)The project on which to execute the request. The format is “projects/{project_id_or_number}”.
filterstring (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”
intervalTimeIntervalThe time interval for which results should be returned. Only time series that contain data points in the specified interval are included in the response.
aggregationAggregationBy default, the raw time series data is returned. Use this field to combine multiple time series for different views of the data.
paginationPaginationPicks 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.
viewTimeSeriesViewSpecifies which information is returned about the time series.
field_mask.google.protobuf.FieldMaskview 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_capint32A 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_tokenstringIf 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]

NameTypeDescription
time_seriesrepeated TimeSerieOne or more time series that match the filter included in the request.
continuation_tokenstringIf 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_countersrepeated TimeSerieSpecial 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).

NameTypeDescription
region_idstringregion id which failed to give results.

CreateTimeSeriesRequest Message

Request message for method [CreateTimeSeries][ntt.monitoring.v3.CreateTimeSeries]

NameTypeDescription
parentstring (name of Project)The project on which to execute the request. The format is "projects/{project_id_or_number}".
time_seriesrepeated TimeSerieThe 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]

NameTypeDescription
time_serie_keysmap<uint32s, bytes>Time Serie keys indexed by Create position - present only when given TimeSerie didn’t use Key field
failed_time_seriesrepeated CreateTimeSeriesErrorTime 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.

NameTypeDescription
alignment_period.google.protobuf.DurationThe 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_alignerAggregation.AlignerThe 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_reducerAggregation.ReducerThe 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_fieldsrepeated stringThe 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

NameTypeDescription
addedAlertChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedAlertChange.ModifiedModified is returned when watched document is modified
currentAlertChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedAlertChange.RemovedRemoved is returned when Alert is deleted or leaves Query view

AlertChange.Added Message

Alert has been added to query view

NameTypeDescription
alertAlert
view_indexint32Integer 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

NameTypeDescription
alertAlert

AlertChange.Modified Message

Alert changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of Alert)Name of modified Alert
alertAlertNew version of Alert or masked difference, depending on mask_changes instrumentation of issued [WatchAlertRequest] or [WatchAlertsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified Alert. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying Alert new index in resulting query view.

AlertChange.Removed Message

Removed is returned when Alert is deleted or leaves Query view

NameTypeDescription
namestring (name of Alert)
view_indexint32Integer 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

NameTypeDescription
addedAlertingConditionChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedAlertingConditionChange.ModifiedModified is returned when watched document is modified
currentAlertingConditionChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedAlertingConditionChange.RemovedRemoved is returned when AlertingCondition is deleted or leaves Query view

AlertingConditionChange.Added Message

AlertingCondition has been added to query view

NameTypeDescription
alerting_conditionAlertingCondition
view_indexint32Integer 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

NameTypeDescription
alerting_conditionAlertingCondition

AlertingConditionChange.Modified Message

AlertingCondition changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of AlertingCondition)Name of modified AlertingCondition
alerting_conditionAlertingConditionNew version of AlertingCondition or masked difference, depending on mask_changes instrumentation of issued [WatchAlertingConditionRequest] or [WatchAlertingConditionsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified AlertingCondition. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying AlertingCondition new index in resulting query view.

AlertingConditionChange.Removed Message

Removed is returned when AlertingCondition is deleted or leaves Query view

NameTypeDescription
namestring (name of AlertingCondition)
view_indexint32Integer 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

NameTypeDescription
addedAlertingPolicyChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedAlertingPolicyChange.ModifiedModified is returned when watched document is modified
currentAlertingPolicyChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedAlertingPolicyChange.RemovedRemoved is returned when AlertingPolicy is deleted or leaves Query view

AlertingPolicyChange.Added Message

AlertingPolicy has been added to query view

NameTypeDescription
alerting_policyAlertingPolicy
view_indexint32Integer 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

NameTypeDescription
alerting_policyAlertingPolicy

AlertingPolicyChange.Modified Message

AlertingPolicy changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of AlertingPolicy)Name of modified AlertingPolicy
alerting_policyAlertingPolicyNew version of AlertingPolicy or masked difference, depending on mask_changes instrumentation of issued [WatchAlertingPolicyRequest] or [WatchAlertingPoliciesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified AlertingPolicy. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying AlertingPolicy new index in resulting query view.

AlertingPolicyChange.Removed Message

Removed is returned when AlertingPolicy is deleted or leaves Query view

NameTypeDescription
namestring (name of AlertingPolicy)
view_indexint32Integer specifying removed AlertingPolicy index. Not populated in stateless watch type.

BulkTimeSeries Message

Used for reporting rollups

NameTypeDescription
time_seriesrepeated TimeSerie
phantom_flagbool

CreateTimeSeriesError Message

Describes the result of a failed request to write data to a time series.

NameTypeDescription
time_seriesTimeSerieThe time series, including the Metric, MonitoredResource, and Points (including timestamp and value) that resulted in the error. This field provides all of the context that would be needed to retry the operation.
statusStatusThe 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.

NameTypeDescription
countint64The number of values in the population. Must be non-negative.
meandoubleThe arithmetic mean of the values in the population. If count is zero then this field must be zero.
sum_of_squared_deviationdoubleThe 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.
rangeDistribution.RangeIf specified, contains the range of the population values. The field must not be present if the count is zero.
bucket_optionsDistribution.BucketOptionsDefines the histogram bucket boundaries.
bucket_countsrepeated int64If 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.

NameTypeDescription
linear_bucketsDistribution.BucketOptions.LinearThe linear bucket.
exponential_bucketsDistribution.BucketOptions.ExponentialThe exponential buckets.
explicit_bucketsDistribution.BucketOptions.ExplicitThe explicit buckets.
dynamic_bucketsDistribution.BucketOptions.DynamicTDigest dynamic bucketing

Distribution.BucketOptions.Dynamic Message

Dynamic buckets centroid based. TDigest implementation.

NameTypeDescription
compressiondoubleTDigest compression rate
meansrepeated doubleCentroid 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.

NameTypeDescription
boundsrepeated doubleThe 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)).
NameTypeDescription
num_finite_bucketsint32Must be greater than 0.
growth_factordoubleMust be greater than 1.
scaledoubleMust 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)).
NameTypeDescription
num_finite_bucketsint32Must be greater than 0.
widthdoubleMust be greater than 0.
offsetdoubleLower bound of the first bucket.

Distribution.Range Message

The range of the population values.

NameTypeDescription
mindoubleThe minimum of the population values.
maxdoubleThe maximum of the population values.

LabelDescriptor Message

A description of a label.

NameTypeDescription
keystringThe label key.
value_typeLabelDescriptor.ValueTypeThe type of data that can be assigned to the label.
descriptionstringA human-readable description for the label.
default_valuestringDefault 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
disabledbooldisabled 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

NameTypeDescription
label_keysrepeated string
write_onlyboolif 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].

NameTypeDescription
typestringAn existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example, custom.googleapis.com/invoice/paid/amount.
labelsmap<string, string>The set of label values that uniquely identify this metric. All labels listed in the MetricDescriptor must be assigned values.
reduced_labelsrepeated stringreduced labels in aggregations

MetricDescriptorChange Message

MetricDescriptorChange is used by Watch notifications Responses to describe change of single MetricDescriptor One of Added, Modified, Removed

NameTypeDescription
addedMetricDescriptorChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedMetricDescriptorChange.ModifiedModified is returned when watched document is modified
currentMetricDescriptorChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedMetricDescriptorChange.RemovedRemoved is returned when MetricDescriptor is deleted or leaves Query view

MetricDescriptorChange.Added Message

MetricDescriptor has been added to query view

NameTypeDescription
metric_descriptorMetricDescriptor
view_indexint32Integer 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

NameTypeDescription
metric_descriptorMetricDescriptor

MetricDescriptorChange.Modified Message

MetricDescriptor changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of MetricDescriptor)Name of modified MetricDescriptor
metric_descriptorMetricDescriptorNew version of MetricDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchMetricDescriptorRequest] or [WatchMetricDescriptorsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified MetricDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying MetricDescriptor new index in resulting query view.

MetricDescriptorChange.Removed Message

Removed is returned when MetricDescriptor is deleted or leaves Query view

NameTypeDescription
namestring (name of MetricDescriptor)
view_indexint32Integer 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 ...
NameTypeDescription
typesrepeated string
labelsmap<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" }}
NameTypeDescription
typestringRequired. 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.
labelsmap<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_labelsrepeated stringreduced labels in aggregations

MonitoredResourceDescriptorChange Message

MonitoredResourceDescriptorChange is used by Watch notifications Responses to describe change of single MonitoredResourceDescriptor One of Added, Modified, Removed

NameTypeDescription
addedMonitoredResourceDescriptorChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedMonitoredResourceDescriptorChange.ModifiedModified is returned when watched document is modified
currentMonitoredResourceDescriptorChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedMonitoredResourceDescriptorChange.RemovedRemoved is returned when MonitoredResourceDescriptor is deleted or leaves Query view

MonitoredResourceDescriptorChange.Added Message

MonitoredResourceDescriptor has been added to query view

NameTypeDescription
monitored_resource_descriptorMonitoredResourceDescriptor
view_indexint32Integer 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

NameTypeDescription
monitored_resource_descriptorMonitoredResourceDescriptor

MonitoredResourceDescriptorChange.Modified Message

MonitoredResourceDescriptor changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of MonitoredResourceDescriptor)Name of modified MonitoredResourceDescriptor
monitored_resource_descriptorMonitoredResourceDescriptorNew version of MonitoredResourceDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchMonitoredResourceDescriptorRequest] or [WatchMonitoredResourceDescriptorsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified MonitoredResourceDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying MonitoredResourceDescriptor new index in resulting query view.

MonitoredResourceDescriptorChange.Removed Message

Removed is returned when MonitoredResourceDescriptor is deleted or leaves Query view

NameTypeDescription
namestring (name of MonitoredResourceDescriptor)
view_indexint32Integer 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

NameTypeDescription
typesrepeated string
labelsmap<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

NameTypeDescription
addedNotificationChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedNotificationChange.ModifiedModified is returned when watched document is modified
currentNotificationChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedNotificationChange.RemovedRemoved is returned when Notification is deleted or leaves Query view

NotificationChange.Added Message

Notification has been added to query view

NameTypeDescription
notificationNotification
view_indexint32Integer 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

NameTypeDescription
notificationNotification

NotificationChange.Modified Message

Notification changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of Notification)Name of modified Notification
notificationNotificationNew version of Notification or masked difference, depending on mask_changes instrumentation of issued [WatchNotificationRequest] or [WatchNotificationsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified Notification. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying Notification new index in resulting query view.

NotificationChange.Removed Message

Removed is returned when Notification is deleted or leaves Query view

NameTypeDescription
namestring (name of Notification)
view_indexint32Integer 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

NameTypeDescription
addedNotificationChannelChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedNotificationChannelChange.ModifiedModified is returned when watched document is modified
currentNotificationChannelChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedNotificationChannelChange.RemovedRemoved is returned when NotificationChannel is deleted or leaves Query view

NotificationChannelChange.Added Message

NotificationChannel has been added to query view

NameTypeDescription
notification_channelNotificationChannel
view_indexint32Integer 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

NameTypeDescription
notification_channelNotificationChannel

NotificationChannelChange.Modified Message

NotificationChannel changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of NotificationChannel)Name of modified NotificationChannel
notification_channelNotificationChannelNew version of NotificationChannel or masked difference, depending on mask_changes instrumentation of issued [WatchNotificationChannelRequest] or [WatchNotificationChannelsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified NotificationChannel. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying NotificationChannel new index in resulting query view.

NotificationChannelChange.Removed Message

Removed is returned when NotificationChannel is deleted or leaves Query view

NameTypeDescription
namestring (name of NotificationChannel)
view_indexint32Integer specifying removed NotificationChannel index. Not populated in stateless watch type.

Pagination Message

NameTypeDescription
viewstring
functionstring
alignment_period.google.protobuf.Duration
limitint32
offsetint32

PhantomTimeSerieChange Message

PhantomTimeSerieChange is used by Watch notifications Responses to describe change of single PhantomTimeSerie One of Added, Modified, Removed

NameTypeDescription
addedPhantomTimeSerieChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedPhantomTimeSerieChange.ModifiedModified is returned when watched document is modified
currentPhantomTimeSerieChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedPhantomTimeSerieChange.RemovedRemoved is returned when PhantomTimeSerie is deleted or leaves Query view

PhantomTimeSerieChange.Added Message

PhantomTimeSerie has been added to query view

NameTypeDescription
phantom_time_seriePhantomTimeSerie
view_indexint32Integer 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

NameTypeDescription
phantom_time_seriePhantomTimeSerie

PhantomTimeSerieChange.Modified Message

PhantomTimeSerie changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of PhantomTimeSerie)Name of modified PhantomTimeSerie
phantom_time_seriePhantomTimeSerieNew version of PhantomTimeSerie or masked difference, depending on mask_changes instrumentation of issued [WatchPhantomTimeSerieRequest] or [WatchPhantomTimeSeriesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified PhantomTimeSerie. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying PhantomTimeSerie new index in resulting query view.

PhantomTimeSerieChange.Removed Message

Removed is returned when PhantomTimeSerie is deleted or leaves Query view

NameTypeDescription
namestring (name of PhantomTimeSerie)
view_indexint32Integer specifying removed PhantomTimeSerie index. Not populated in stateless watch type.

Point Message

A single data point in a time series.

NameTypeDescription
intervalTimeIntervalThe 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.
valueTypedValueThe value of the data point.
aggregationAggregationAdditional 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

NameTypeDescription
addedProjectChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedProjectChange.ModifiedModified is returned when watched document is modified
currentProjectChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedProjectChange.RemovedRemoved is returned when Project is deleted or leaves Query view

ProjectChange.Added Message

Project has been added to query view

NameTypeDescription
projectProject
view_indexint32Integer 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

NameTypeDescription
projectProject

ProjectChange.Modified Message

Project changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of Project)Name of modified Project
projectProjectNew version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying Project new index in resulting query view.

ProjectChange.Removed Message

Removed is returned when Project is deleted or leaves Query view

NameTypeDescription
namestring (name of Project)
view_indexint32Integer 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

NameTypeDescription
addedRecoveryStoreShardingInfoChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedRecoveryStoreShardingInfoChange.ModifiedModified is returned when watched document is modified
currentRecoveryStoreShardingInfoChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedRecoveryStoreShardingInfoChange.RemovedRemoved is returned when RecoveryStoreShardingInfo is deleted or leaves Query view

RecoveryStoreShardingInfoChange.Added Message

RecoveryStoreShardingInfo has been added to query view

NameTypeDescription
recovery_store_sharding_infoRecoveryStoreShardingInfo
view_indexint32Integer 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

NameTypeDescription
recovery_store_sharding_infoRecoveryStoreShardingInfo

RecoveryStoreShardingInfoChange.Modified Message

RecoveryStoreShardingInfo changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of RecoveryStoreShardingInfo)Name of modified RecoveryStoreShardingInfo
recovery_store_sharding_infoRecoveryStoreShardingInfoNew version of RecoveryStoreShardingInfo or masked difference, depending on mask_changes instrumentation of issued [WatchRecoveryStoreShardingInfoRequest] or [WatchRecoveryStoreShardingInfosRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified RecoveryStoreShardingInfo. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying RecoveryStoreShardingInfo new index in resulting query view.

RecoveryStoreShardingInfoChange.Removed Message

Removed is returned when RecoveryStoreShardingInfo is deleted or leaves Query view

NameTypeDescription
namestring (name of RecoveryStoreShardingInfo)
view_indexint32Integer specifying removed RecoveryStoreShardingInfo index. Not populated in stateless watch type.

Strings Message

Represents wrapped list of strings.

NameTypeDescription
valuesrepeated 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.

NameTypeDescription
end_time.google.protobuf.TimestampRequired. The end of the time interval.
start_time.google.protobuf.TimestampOptional. 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.

NameTypeDescription
start_time.google.protobuf.TimestampOptional. Start of time range
end_time.google.protobuf.TimestampOptional. End of time range

TimeSeriesSelector Message

NameTypeDescription
metricMetricSelectorMetric Selector used to specify filtered Metric types and labels
resourceMonitoredResourceSelectorResource Selector used to specify filtered Monitored Resource types and labels

TypedValue Message

A single strongly-typed value.

NameTypeDescription
bool_valueboolA Boolean value: true or false.
int64_valueint64A 64-bit integer. Its range is approximately ±9.2x10<sup>18</sup>.
double_valuedoubleA 64-bit double-precision floating-point number. Its magnitude is approximately ±10<sup>±300</sup> and it has 16 significant digits of precision.
string_valuestringA variable-length string value.
distribution_valueDistributionA 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.

NameDescription
ALIGN_NONENo 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_DELTAAlign 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_RATEAlign 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_INTERPOLATEAlign 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_OLDERAlign 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_MINAlign 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_MAXAlign 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_MEANAlign 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_COUNTAlign 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_SUMAlign 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_STDDEVAlign 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_TRUEAlign 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_FALSEAlign 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_TRUEAlign 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_99Align 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_95Align 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_50Align 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_05Align 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_CHANGEAlign 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_SUMMARYOutputs Distribution without bucketing with stats like: Min, Max, Count, Mean, SumOfSquaredDeviations valid only for LONG, DOUBLE and DISTRIBUTION value types
ALIGN_TDIGEST_SUMMARYTDigest 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.

NameDescription
REDUCE_NONENo cross-time series reduction. The output of the aligner is returned.
REDUCE_MEANReduce 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_MINReduce 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_MAXReduce 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_SUMReduce 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_STDDEVReduce 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_COUNTReduce 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_TRUEReduce 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_FALSEReduce 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_TRUEReduce 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_99Reduce 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_95Reduce 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_50Reduce 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_05Reduce 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_SUMMARYReduce 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.

NameDescription
STRINGA variable-length string. This is the default.
BOOLBoolean; true or false.
INT64A 64-bit signed integer.

TimeSeriesView Enumeration

Controls which fields are returned by ListTimeSeries.

NameDescription
FULLReturns the identity of the metric(s), the time series, and the time series data.
HEADERSReturns the identity of the metric and the time series resource, but not the time series data.

2 -

Understanding the monitoring.edgelq.com service APIv4, in proto package ntt.monitoring.v4.

Service monitoring.edgelq.com in version v4, 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:

GET /v4/alerts:batchGet 

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

NameTypeDescription
namestring (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}
metadataMetaMetadata 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_namestring
infoAlert.Info
stateAlert.StateState of alert

Alert.Info Message

NameTypeDescription
time_serieAlert.Info.TimeSerieTimeSerie labels that violated condition. If Alert is for AlertingCondition using combine threshold, metric.type will be equal to primary metric indicated.
observed_valuesAlert.Info.ObservedValuesobserved time series values during alert creation

Alert.State Message

NameTypeDescription
is_firingbool
is_acknowledgedbool
is_silencedbool
lifetimeTimeRangedescribes 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_notificationboolThis alert needs to be notified
notification_createdboolNotification resource is generated for this alert
lifecycle_completedboolAlert has ended and any needed notifications are processed

Alert.Info.TimeSerie Message

NameTypeDescription
keybytes
metricMetric
monitored_resourceMonitoredResource
datarepeated stringInternal data for filtering…
bin_datarepeated bytes

Alert.Info.ObservedValues Message

NameTypeDescription
example_valuedoubleoneof
per_metricmap<string, double>

GetAlertRequest Message

A request message of the GetAlert method.

NameTypeDescription
namestring (name of Alert)Name of ntt.monitoring.v4.Alert
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of Alert)Names of Alerts
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
alertsrepeated Alertfound Alerts
missingrepeated string (name of Alert)list of not found Alerts

ListAlertsRequest Message

A request message of the ListAlerts method.

NameTypeDescription
parentstring (parent name of Alert)Parent name of ntt.monitoring.v4.Alert
page_sizeint32Requested page size. Server may return fewer Alerts than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
alertsrepeated AlertThe list of Alerts
prev_page_tokenstring (cursor of Alert)A token to retrieve previous page of results. Pass this value in the ListAlertsRequest.page_token.
next_page_tokenstring (cursor of Alert)A token to retrieve next page of results. Pass this value in the ListAlertsRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of Alert)Name of ntt.monitoring.v4.Alert
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeAlertChange

WatchAlertsRequest Message

A request message of the WatchAlerts method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of Alert)Parent name of ntt.monitoring.v4.Alert
page_sizeint32Requested 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_tokenstring (cursor of Alert)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of Alert)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
alert_changesrepeated AlertChangeChanges of Alerts
is_currentboolIf 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_changeWatchAlertsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of Alert)New token to retrieve previous page of results.
next_page_tokenstring (cursor of Alert)New token to retrieve next page of results.

UpdateAlertRequest Message

A request message of the UpdateAlert method.

NameTypeDescription
alertAlertAlert resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateAlertRequest.CASConditional 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_maskUpdateAlertRequest.ResponseMaskOptional 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.

NameTypeDescription
conditional_stateAlertConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateAlertRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of Alert)Name of ntt.monitoring.v4.Alert
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

BulkCreateAlertsRequest Message

A request message of the BulkCreateAlerts method.

NameTypeDescription
parentstring (parent name of Alert)Parent name of ntt.monitoring.v4.Alert
alertsrepeated Alert

BulkCreateAlertsResponse Message

A response message of the BulkCreateAlerts method.

NameTypeDescription
nonenonenone

BulkUpdateAlertsRequest Message

A request message of the BulkUpdateAlerts method.

NameTypeDescription
parentstring (parent name of Alert)Parent name of ntt.monitoring.v4.Alert
update_mask.google.protobuf.FieldMask
alertsrepeated Alert

BulkUpdateAlertsResponse Message

A response message of the BulkUpdateAlerts method.

NameTypeDescription
nonenonenone

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

NameTypeDescription
namestring (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]
metadataMetaMetadata 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_namestringDisplay Name
descriptionstringLong description
specAlertingCondition.Spec
stateAlertingCondition.State

AlertingCondition.Spec Message

NameTypeDescription
time_seriesAlertingCondition.Spec.TimeSeries

AlertingCondition.State Message

NameTypeDescription
firing_alerts_countint64

AlertingCondition.Spec.TimeSeries Message

NameTypeDescription
queryAlertingCondition.Spec.TimeSeries.QueryTime Series Query
thresholdAlertingCondition.Spec.TimeSeries.ThresholdEither 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_thresholdAlertingCondition.Spec.TimeSeries.CombineThreshold
duration.google.protobuf.DurationDuration describes length of time needed for the condition to trigger a new alert of resolve an existing one

AlertingCondition.Spec.TimeSeries.Query Message

NameTypeDescription
filterstring (filter of TimeSerie)Filter used for time-series.
selectorTimeSeriesSelectorGenerated, 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.
aggregationAggregationTime 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_aggregationsmap<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

NameTypeDescription
compareAlertingCondition.Spec.TimeSeries.Threshold.CompareCompare 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.
valuedoublethreshold value

AlertingCondition.Spec.TimeSeries.CombineThreshold Message

NameTypeDescription
per_metricmap<string, AlertingCondition.Spec.TimeSeries.Threshold>Per Metric threshold. If multiple metrics are selected each metric may specify a different threshold
main_metric_typestringPrimary 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_kvmap<string, bytes>Internal per metric identifiers in binary key

GetAlertingConditionRequest Message

A request message of the GetAlertingCondition method.

NameTypeDescription
namestring (name of AlertingCondition)Name of ntt.monitoring.v4.AlertingCondition
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of AlertingCondition)Names of AlertingConditions
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
alerting_conditionsrepeated AlertingConditionfound AlertingConditions
missingrepeated string (name of AlertingCondition)list of not found AlertingConditions

ListAlertingConditionsRequest Message

A request message of the ListAlertingConditions method.

NameTypeDescription
parentstring (parent name of AlertingCondition)Parent name of ntt.monitoring.v4.AlertingCondition
page_sizeint32Requested page size. Server may return fewer AlertingConditions than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
alerting_conditionsrepeated AlertingConditionThe list of AlertingConditions
prev_page_tokenstring (cursor of AlertingCondition)A token to retrieve previous page of results. Pass this value in the ListAlertingConditionsRequest.page_token.
next_page_tokenstring (cursor of AlertingCondition)A token to retrieve next page of results. Pass this value in the ListAlertingConditionsRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of AlertingCondition)Name of ntt.monitoring.v4.AlertingCondition
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeAlertingConditionChange

WatchAlertingConditionsRequest Message

A request message of the WatchAlertingConditions method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of AlertingCondition)Parent name of ntt.monitoring.v4.AlertingCondition
page_sizeint32Requested 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_tokenstring (cursor of AlertingCondition)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of AlertingCondition)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
alerting_condition_changesrepeated AlertingConditionChangeChanges of AlertingConditions
is_currentboolIf 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_changeWatchAlertingConditionsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of AlertingCondition)New token to retrieve previous page of results.
next_page_tokenstring (cursor of AlertingCondition)New token to retrieve next page of results.

CreateAlertingConditionRequest Message

A request message of the CreateAlertingCondition method.

NameTypeDescription
parentstring (parent name of AlertingCondition)Parent name of ntt.monitoring.v4.AlertingCondition
alerting_conditionAlertingConditionAlertingCondition resource body
response_maskCreateAlertingConditionRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateAlertingConditionRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateAlertingConditionRequest Message

A request message of the UpdateAlertingCondition method.

NameTypeDescription
alerting_conditionAlertingConditionAlertingCondition resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateAlertingConditionRequest.CASConditional 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_missingboolIf 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_maskUpdateAlertingConditionRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateAlertingConditionConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateAlertingConditionRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of AlertingCondition)Name of ntt.monitoring.v4.AlertingCondition
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

SearchAlertingConditionsRequest Message

A request message of the SearchAlertingConditions method.

NameTypeDescription
parentstring (parent name of AlertingCondition)Parent name of ntt.monitoring.v4.AlertingCondition
page_sizeint32Requested page size. Server may return fewer AlertingConditions than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
phrasestringOptional search phrase used to further filter results.

SearchAlertingConditionsResponse Message

A response message of the SearchAlertingConditions method.

NameTypeDescription
alerting_conditionsrepeated AlertingConditionThe list of AlertingConditions
prev_page_tokenstring (cursor of AlertingCondition)A token to retrieve previous page of results. Pass this value in the SearchAlertingConditionsRequest.page_token.
next_page_tokenstring (cursor of AlertingCondition)A token to retrieve next page of results. Pass this value in the SearchAlertingConditionsRequest.page_token.
current_offsetint32Current 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_countint32Number of total AlertingConditions across all pages.

AlertingCondition Enumerations

Here is the list of AlertingCondition resource enumerations:

AlertingCondition.Spec.TimeSeries.Threshold.Compare Enumeration

NameDescription
COMPARE_UNSPECIFIED
GT
LT

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

NameTypeDescription
namestring (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]
metadataMetaMetadata 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_namestringdisplay name
descriptionstringLong description
documentationAlertingPolicy.Documentation
specAlertingPolicy.SpecSpec
stateAlertingPolicy.State

AlertingPolicy.Documentation Message

Documentation

NameTypeDescription
contentstringDocumentation content
mime_typestringdocumentation mime type. Only "text/markdown" is supported.

AlertingPolicy.Spec Message

NameTypeDescription
enabledboolWhether 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_combinerAlertingPolicy.Spec.ConditionsCombinerCondition 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
notificationAlertingPolicy.Spec.NotificationNotification specification

AlertingPolicy.State Message

NameTypeDescription
active_alerts_countint64Number of ongoing alerts (incident has not ended)

AlertingPolicy.Spec.Notification Message

Notification specification for a given Policy

NameTypeDescription
enabledboolEnabled flag determines whether any notifications will be sent
channelsrepeated string (reference to NotificationChannel)

GetAlertingPolicyRequest Message

A request message of the GetAlertingPolicy method.

NameTypeDescription
namestring (name of AlertingPolicy)Name of ntt.monitoring.v4.AlertingPolicy
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of AlertingPolicy)Names of AlertingPolicies
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
alerting_policiesrepeated AlertingPolicyfound AlertingPolicies
missingrepeated string (name of AlertingPolicy)list of not found AlertingPolicies

ListAlertingPoliciesRequest Message

A request message of the ListAlertingPolicies method.

NameTypeDescription
parentstring (parent name of AlertingPolicy)Parent name of ntt.monitoring.v4.AlertingPolicy
page_sizeint32Requested page size. Server may return fewer AlertingPolicies than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
alerting_policiesrepeated AlertingPolicyThe list of AlertingPolicies
prev_page_tokenstring (cursor of AlertingPolicy)A token to retrieve previous page of results. Pass this value in the ListAlertingPoliciesRequest.page_token.
next_page_tokenstring (cursor of AlertingPolicy)A token to retrieve next page of results. Pass this value in the ListAlertingPoliciesRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of AlertingPolicy)Name of ntt.monitoring.v4.AlertingPolicy
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeAlertingPolicyChange

WatchAlertingPoliciesRequest Message

A request message of the WatchAlertingPolicies method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of AlertingPolicy)Parent name of ntt.monitoring.v4.AlertingPolicy
page_sizeint32Requested 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_tokenstring (cursor of AlertingPolicy)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of AlertingPolicy)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
alerting_policy_changesrepeated AlertingPolicyChangeChanges of AlertingPolicies
is_currentboolIf 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_changeWatchAlertingPoliciesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of AlertingPolicy)New token to retrieve previous page of results.
next_page_tokenstring (cursor of AlertingPolicy)New token to retrieve next page of results.

CreateAlertingPolicyRequest Message

A request message of the CreateAlertingPolicy method.

NameTypeDescription
parentstring (parent name of AlertingPolicy)Parent name of ntt.monitoring.v4.AlertingPolicy
alerting_policyAlertingPolicyAlertingPolicy resource body
response_maskCreateAlertingPolicyRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateAlertingPolicyRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateAlertingPolicyRequest Message

A request message of the UpdateAlertingPolicy method.

NameTypeDescription
alerting_policyAlertingPolicyAlertingPolicy resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateAlertingPolicyRequest.CASConditional 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_missingboolIf 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_maskUpdateAlertingPolicyRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateAlertingPolicyConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateAlertingPolicyRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of AlertingPolicy)Name of ntt.monitoring.v4.AlertingPolicy
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

SearchAlertingPoliciesRequest Message

A request message of the SearchAlertingPolicies method.

NameTypeDescription
parentstring (parent name of AlertingPolicy)Parent name of ntt.monitoring.v4.AlertingPolicy
page_sizeint32Requested page size. Server may return fewer AlertingPolicies than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
phrasestringOptional search phrase used to further filter results.

SearchAlertingPoliciesResponse Message

A response message of the SearchAlertingPolicies method.

NameTypeDescription
alerting_policiesrepeated AlertingPolicyThe list of AlertingPolicies
prev_page_tokenstring (cursor of AlertingPolicy)A token to retrieve previous page of results. Pass this value in the SearchAlertingPoliciesRequest.page_token.
next_page_tokenstring (cursor of AlertingPolicy)A token to retrieve next page of results. Pass this value in the SearchAlertingPoliciesRequest.page_token.
current_offsetint32Current 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_countint32Number of total AlertingPolicies across all pages.

AlertingPolicy Enumerations

Here is the list of AlertingPolicy resource enumerations:

AlertingPolicy.Spec.ConditionsCombiner Enumeration

NameDescription
OR
AND

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:

GET /v4/buckets:batchGet 

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

NameTypeDescription
namestring (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}
metadataMetaMetadata 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).
metricsrepeated Bucket.RequiredTypedLabelsAllowed metric combinations (OR). If empty, all metric types are allowed.
resourcesrepeated Bucket.RequiredTypedLabelsAllowed resource combinations (OR).If empty, all resource types are allowed.
required_alt_kvsrepeated Bucket.ResolvedKeysWithValuesAll 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.

NameTypeDescription
keyint64
valuesrepeated int64

Bucket.ResolvedKeysWithValues Message

ResolvedKeysWithValues binds multiple keys with possible values.

NameTypeDescription
resolved_kvsrepeated Bucket.ResolvedValues

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.

NameTypeDescription
typesrepeated string
labelsmap<string, Bucket.RequiredTypedLabels.Strings>

Bucket.RequiredTypedLabels.Strings Message

NameTypeDescription
stringsrepeated string

GetBucketRequest Message

A request message of the GetBucket method.

NameTypeDescription
namestring (name of Bucket)Name of ntt.monitoring.v4.Bucket
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of Bucket)Names of Buckets
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
bucketsrepeated Bucketfound Buckets
missingrepeated string (name of Bucket)list of not found Buckets

ListBucketsRequest Message

A request message of the ListBuckets method.

NameTypeDescription
parentstring (parent name of Bucket)Parent name of ntt.monitoring.v4.Bucket
page_sizeint32Requested page size. Server may return fewer Buckets than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
bucketsrepeated BucketThe list of Buckets
prev_page_tokenstring (cursor of Bucket)A token to retrieve previous page of results. Pass this value in the ListBucketsRequest.page_token.
next_page_tokenstring (cursor of Bucket)A token to retrieve next page of results. Pass this value in the ListBucketsRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of Bucket)Name of ntt.monitoring.v4.Bucket
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeBucketChange

WatchBucketsRequest Message

A request message of the WatchBuckets method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of Bucket)Parent name of ntt.monitoring.v4.Bucket
page_sizeint32Requested 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_tokenstring (cursor of Bucket)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of Bucket)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
bucket_changesrepeated BucketChangeChanges of Buckets
is_currentboolIf 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_changeWatchBucketsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of Bucket)New token to retrieve previous page of results.
next_page_tokenstring (cursor of Bucket)New token to retrieve next page of results.

CreateBucketRequest Message

A request message of the CreateBucket method.

NameTypeDescription
parentstring (parent name of Bucket)Parent name of ntt.monitoring.v4.Bucket
bucketBucketBucket resource body
response_maskCreateBucketRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateBucketRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateBucketRequest Message

A request message of the UpdateBucket method.

NameTypeDescription
bucketBucketBucket resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateBucketRequest.CASConditional 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_missingboolIf 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_maskUpdateBucketRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateBucketConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateBucketRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of Bucket)Name of ntt.monitoring.v4.Bucket
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

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

NameTypeDescription
namestring (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}
metadataMetaMetadata 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).
typestringThe 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_typesrepeated stringassociated resource_types (also used to infer defaults) examples, devices.edgelq.com/Device, watchdog.edgelq.com/Agent. DEPRECATED, use “indices”.
labelsrepeated LabelDescriptorThe 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_kindMetricDescriptor.MetricKindWhether the metric records instantaneous values, changes to a value, etc. Some combinations of metric_kind and value_type might not be supported.
value_typeMetricDescriptor.ValueTypeWhether the measurement is an integer, a floating-point number, etc. Some combinations of metric_kind and value_type might not be supported.
unitstringThe 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
descriptionstringA detailed description of the metric, which can be used in documentation.
display_namestringA 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_metadataMetricDescriptor.MetricDescriptorMetadataOptional. Metadata which can be used to guide usage of the metric.
distribution_bucket_optionsDistribution.BucketOptionsDistribution bucketing options - define only when ValueType is Distribution. Used for validating input.
promoted_label_key_setsrepeated LabelKeySetPromoted 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_specMetricDescriptor.IndexSpecDEPRECATED: 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.
indicesMetricDescriptor.IndicesDefines 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_configMetricDescriptor.StorageConfigStorage settings
binary_indicesMetricDescriptor.BinaryIndicesGenerated 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!

MetricDescriptor.MetricDescriptorMetadata Message

Additional annotations that can be used to guide the usage of a metric.

NameTypeDescription
launch_stageLaunchStageThe launch stage of the metric definition.

MetricDescriptor.IndexSpec Message

DEPRECATED, use Indices

NameTypeDescription
per_resourcerepeated MetricDescriptor.IndexSpec.PerMonitoredResourcePerResource index

MetricDescriptor.Indices Message

ResourceBindings binds MetricDescriptor with selected MonitoredResourceDescriptors and provides indices for TimeSeries storage.

NameTypeDescription
built_inMetricDescriptor.Indices.IndexGroupsIndices coming by default from application, typically populated by fixtures controller
user_definedMetricDescriptor.Indices.IndexGroupsUser defined additional indices.
legacy_migratedrepeated MetricDescriptor.Indices.NonAggregatedIndicesAutomatically migrated from older specs. It should not be modified by users, it can only be archived once new indices are populated (update closingStatus fields to CLOSED).

MetricDescriptor.StorageConfig Message

Backend storage config

NameTypeDescription
store_raw_pointsboolwhether to store raw points
max_ap.google.protobuf.DurationMaximum 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

NameTypeDescription
by_resourcesrepeated MetricDescriptor.BinaryIndices.ByResourceType
regionstringRegion to which above binary data is relevant.

MetricDescriptor.IndexSpec.Index Message

NameTypeDescription
promoted_labelsrepeated stringeach label is of format: {metric,resource}.labels.\<label-key\>. since resource and metric labels are mixed. Full path is required.

MetricDescriptor.IndexSpec.PerMonitoredResource Message

NameTypeDescription
resourcestring (reference to MonitoredResourceDescriptor)
indicesrepeated MetricDescriptor.IndexSpec.IndexList of indices for given metric and resource pair

MetricDescriptor.Indices.LabelsGroup Message

LabelsGroup represents set of labels in resource and metric. It forms part of the index generators (non and pre aggregated).

NameTypeDescription
namestringIdentifier of the group, used as part of index name and during update validations.
metric_keysrepeated stringList of metric keys in the group.
resource_keysrepeated stringList of resource keys in the group.
closing_statusMetricDescriptor.Indices.CloseStatusClosing status should be set when indices used by this group is no longer desirable.

MetricDescriptor.Indices.PaginationView Message

PaginationView is used by PaginationIndices. It indicates which labels in metric/resource descriptor are kept for filter purpose, and which are “ranked” by.

NameTypeDescription
namestringIdentifier of the group, used as part of index name and during update validations.
filterable_metric_keysrepeated stringList of metric keys that can optionally be used in filter.
filterable_resource_keysrepeated stringList of resource keys that can optionally be used in filter.
paginated_metric_keysrepeated stringList of metric keys that will be part of “paginated” key (for ranking purpose). Provided labels cannot be used for filtering.
paginated_resource_keysrepeated stringList of resource keys that will be part of “paginated” key (for ranking purpose). Provided labels cannot be used for filtering.
closing_statusMetricDescriptor.Indices.CloseStatusClosing 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.

NameTypeDescription
namestringName of the group (identifier). Used for validating updates.
per_series_alignersrepeated Aggregation.AlignerList of potential values for perSeriesAligner parameter. It must be specified.
cross_series_reducersrepeated Aggregation.ReducerList of potential values for crossSeriesReducer parameter. It can be left empty if we want to support large amount of values.
closing_statusMetricDescriptor.Indices.CloseStatusClosing status, if this group is no longer desired.
storage_alignersrepeated Aggregation.AlignerThis 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.

NameTypeDescription
namestringname of the aligner-reducer function
alignerAggregation.AlignerAligner function
reducerAggregation.ReducerReducer function, merging values within paginable label set. Resulting value type must be either INT or DOUBLE, DISTRIBUTION is not supported.
closing_statusMetricDescriptor.Indices.CloseStatusClosing status of this aligner reducer function.
sortingMetricDescriptor.Indices.SortingFunction.Direction

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

NameTypeDescription
namestringName of the group
resource_typesrepeated stringAll resource types in the group
partition_label_setsrepeated MetricDescriptor.Indices.LabelsGroupAll 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_setsrepeated MetricDescriptor.Indices.LabelsGroupAll 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_aggregationsrepeated MetricDescriptor.Indices.AggregationsGroupList 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.

NameTypeDescription
namestringName of the whole group.
resource_typesrepeated stringResource types in this group.
partition_label_setsrepeated MetricDescriptor.Indices.LabelsGroupAll partition label sets. Each is generating index per mentioned resource type. Index, to be used, requires specifying all labels mentioned in partition.

MetricDescriptor.Indices.PaginationIndices Message

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

NameTypeDescription
namestringName of the whole group.
resource_typesrepeated stringResource types in this group.
partition_label_setsrepeated MetricDescriptor.Indices.LabelsGroupAll 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.
viewsrepeated MetricDescriptor.Indices.PaginationViewAll views describing label sets.
functionsrepeated MetricDescriptor.Indices.SortingFunctionList of functions applied to every partition/views in the group.

MetricDescriptor.Indices.IndexGroups Message

Grouped indices

NameTypeDescription
pre_aggregated_indicesrepeated MetricDescriptor.Indices.PreAggregatedIndicesPre-aggregated index sets.
non_aggregated_indicesrepeated MetricDescriptor.Indices.NonAggregatedIndicesNon-aggregated index sets.
pagination_indicesrepeated MetricDescriptor.Indices.PaginationIndicesPagination indices.

MetricDescriptor.BinaryIndices.PreAggregatedIndex Message

NameTypeDescription
key_databytes
writing_alignersrepeated bytes
closed_alignersrepeated bytes

MetricDescriptor.BinaryIndices.PaginatingIndex Message

NameTypeDescription
key_databytes
writing_functionsrepeated bytes
closed_functionsrepeated bytes

MetricDescriptor.BinaryIndices.ByResourceType Message

NameTypeDescription
resource_typestringresource.type in string version, but integer is also encoded in every other item for convenience.
aggs_encoderrepeated bytesList 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_indicesrepeated MetricDescriptor.BinaryIndices.PreAggregatedIndexList 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_indicesrepeated MetricDescriptor.BinaryIndices.PaginatingIndex
non_aggregated_indicesrepeated bytesNon aggregated indices. Bytes contain identifier with all promoted keys and name part positions.
name_partsrepeated stringindex name parts

BatchGetMetricDescriptorsRequest Message

A request message of the BatchGetMetricDescriptors method.

NameTypeDescription
namesrepeated string (name of MetricDescriptor)Names of MetricDescriptors
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
metric_descriptorsrepeated MetricDescriptorfound MetricDescriptors
missingrepeated string (name of MetricDescriptor)list of not found MetricDescriptors

WatchMetricDescriptorRequest Message

A request message of the WatchMetricDescriptor method.

NameTypeDescription
namestring (name of MetricDescriptor)Name of ntt.monitoring.v4.MetricDescriptor
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeMetricDescriptorChange

WatchMetricDescriptorsRequest Message

A request message of the WatchMetricDescriptors method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of MetricDescriptor)Parent name of ntt.monitoring.v4.MetricDescriptor
page_sizeint32Requested 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_tokenstring (cursor of MetricDescriptor)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of MetricDescriptor)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
metric_descriptor_changesrepeated MetricDescriptorChangeChanges of MetricDescriptors
is_currentboolIf 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_changeWatchMetricDescriptorsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of MetricDescriptor)New token to retrieve previous page of results.
next_page_tokenstring (cursor of MetricDescriptor)New token to retrieve next page of results.

GetMetricDescriptorRequest Message

Request message for method [GetMetricDescriptor][ntt.monitoring.v4.GetMetricDescriptor]

NameTypeDescription
namestring (name of MetricDescriptor)Name of ntt.monitoring.v4.MetricDescriptor
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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]

NameTypeDescription
parentstring (parent name of MetricDescriptor)Parent name of ntt.monitoring.v4.MetricDescriptor
metric_descriptorMetricDescriptorMetricDescriptor resource body
response_maskCreateMetricDescriptorRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateMetricDescriptorRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateMetricDescriptorRequest Message

Request message for method [UpdateMetricDescriptor][ntt.monitoring.v4.UpdateMetricDescriptor]

NameTypeDescription
metric_descriptorMetricDescriptorMetricDescriptor resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateMetricDescriptorRequest.CASConditional 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_missingboolIf 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_maskUpdateMetricDescriptorRequest.ResponseMask

UpdateMetricDescriptorRequest.CAS Message

CAS - Compare and Swap. This object is used if user wants to make update conditional based upon previous resource version.

NameTypeDescription
conditional_stateMetricDescriptorConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateMetricDescriptorRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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]

NameTypeDescription
namestring (name of MetricDescriptor)Name of ntt.monitoring.v4.MetricDescriptor
allow_missingboolIf true, call will not return NotFound error if deleted resource does not exist.

ListMetricDescriptorsRequest Message

Request message for method [ListMetricDescriptors][ntt.monitoring.v4.ListMetricDescriptors]

NameTypeDescription
parentstring (parent name of MetricDescriptor)Parent name of ntt.monitoring.v4.MetricDescriptor
page_sizeint32Requested page size. Server may return fewer MetricDescriptors than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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]

NameTypeDescription
metric_descriptorsrepeated MetricDescriptorThe list of MetricDescriptors
prev_page_tokenstring (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_tokenstring (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_offsetint32Current 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_countint32Number 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.

NameDescription
METRIC_KIND_UNSPECIFIEDDo not use this default value.
GAUGEAn instantaneous measurement of a value.
DELTAThe change in a value during a time interval.
CUMULATIVEA 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.

NameDescription
VALUE_TYPE_UNSPECIFIEDDo not use this default value.
BOOLThe value is a boolean. This value type can be used only if the metric kind is GAUGE.
INT64The value is a signed 64-bit integer.
DOUBLEThe value is a double precision floating point number.
DISTRIBUTIONThe 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.

NameDescription
UNDEFINEDIndex is active for read and write
SUSPENDEDindex 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.
CLOSEDIndex 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

NameDescription
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

NameTypeDescription
namestring (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}
metadataMetaMetadata 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).
typestringRequired. 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_namestringOptional. 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".
descriptionstringOptional. A detailed description of the monitored resource type that might be used in documentation.
labelsrepeated LabelDescriptorRequired. 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_setsrepeated LabelKeySetPromoted 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.

NameTypeDescription
namesrepeated string (name of MonitoredResourceDescriptor)Names of MonitoredResourceDescriptors
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
monitored_resource_descriptorsrepeated MonitoredResourceDescriptorfound MonitoredResourceDescriptors
missingrepeated string (name of MonitoredResourceDescriptor)list of not found MonitoredResourceDescriptors

WatchMonitoredResourceDescriptorRequest Message

A request message of the WatchMonitoredResourceDescriptor method.

NameTypeDescription
namestring (name of MonitoredResourceDescriptor)Name of ntt.monitoring.v4.MonitoredResourceDescriptor
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeMonitoredResourceDescriptorChange

WatchMonitoredResourceDescriptorsRequest Message

A request message of the WatchMonitoredResourceDescriptors method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of MonitoredResourceDescriptor)Parent name of ntt.monitoring.v4.MonitoredResourceDescriptor
page_sizeint32Requested 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_tokenstring (cursor of MonitoredResourceDescriptor)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of MonitoredResourceDescriptor)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
monitored_resource_descriptor_changesrepeated MonitoredResourceDescriptorChangeChanges of MonitoredResourceDescriptors
is_currentboolIf 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_changeWatchMonitoredResourceDescriptorsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of MonitoredResourceDescriptor)New token to retrieve previous page of results.
next_page_tokenstring (cursor of MonitoredResourceDescriptor)New token to retrieve next page of results.

CreateMonitoredResourceDescriptorRequest Message

A request message of the CreateMonitoredResourceDescriptor method.

NameTypeDescription
parentstring (parent name of MonitoredResourceDescriptor)Parent name of ntt.monitoring.v4.MonitoredResourceDescriptor
monitored_resource_descriptorMonitoredResourceDescriptorMonitoredResourceDescriptor resource body
response_maskCreateMonitoredResourceDescriptorRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateMonitoredResourceDescriptorRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateMonitoredResourceDescriptorRequest Message

A request message of the UpdateMonitoredResourceDescriptor method.

NameTypeDescription
monitored_resource_descriptorMonitoredResourceDescriptorMonitoredResourceDescriptor resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateMonitoredResourceDescriptorRequest.CASConditional 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_missingboolIf 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_maskUpdateMonitoredResourceDescriptorRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateMonitoredResourceDescriptorConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateMonitoredResourceDescriptorRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of MonitoredResourceDescriptor)Name of ntt.monitoring.v4.MonitoredResourceDescriptor
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

GetMonitoredResourceDescriptorRequest Message

Request message for method [GetMonitoredResourceDescriptor][ntt.monitoring.v4.GetMonitoredResourceDescriptor]

NameTypeDescription
namestring (name of MonitoredResourceDescriptor)Name of ntt.monitoring.v4.MonitoredResourceDescriptor
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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]

NameTypeDescription
parentstring (parent name of MonitoredResourceDescriptor)Parent name of ntt.monitoring.v4.MonitoredResourceDescriptor
page_sizeint32Requested page size. Server may return fewer MonitoredResourceDescriptors than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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]

NameTypeDescription
monitored_resource_descriptorsrepeated MonitoredResourceDescriptorThe list of MonitoredResourceDescriptors
prev_page_tokenstring (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_tokenstring (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_offsetint32Current 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_countint32Number 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

NameTypeDescription
namestring (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}
metadataMetaMetadata 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).
alertsrepeated 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_setsrepeated Notification.AlertsSetAlerts by notification
stateNotification.State

Notification.AlertsSet Message

NameTypeDescription
conditionstring (name of AlertingCondition)Condition holding alerts
idsrepeated stringList of alert IDs.

Notification.State Message

NameTypeDescription
is_resolvedbool
notification_staterepeated Notification.State.NotificationStateNotification state
incident_notify_attempts_doneboolInternal state to keep track of whether any notification sends needs to be retried for new incident
resolution_notify_attempts_doneboolInternal state to keep track of whether any notification sends needs to be retried for resolution
alerts_lifetimeTimeRangeTime range for which alerts for the policy are clubbed together
resolution_notification_staterepeated Notification.State.NotificationState
lifecycle_completedboolAlert has ended and any needed notifications are processed

Notification.State.NotificationState Message

NameTypeDescription
notification_channelstring (name of NotificationChannel)Notification channel name
statusNotification.State.NotificationState.Status
errorstringError message if status is FAILED
provider_dataNotification.State.NotificationState.ProviderDataProvider specific data. Allows tracking ids of notifications sent to specific channels.
notify_attemptsint64

Notification.State.NotificationState.ProviderData Message

Provider specific data

NameTypeDescription
slackNotification.State.NotificationState.ProviderData.Slack
pager_dutyNotification.State.NotificationState.ProviderData.PagerDuty
webhookNotification.State.NotificationState.ProviderData.WebHook

Notification.State.NotificationState.ProviderData.Slack Message

Slack

NameTypeDescription
tsstring

Notification.State.NotificationState.ProviderData.PagerDuty Message

Pager Duty

NameTypeDescription
incident_keystring

Notification.State.NotificationState.ProviderData.WebHook Message

NameTypeDescription
total_chunksint64
failed_chunksrepeated Notification.State.NotificationState.ProviderData.WebHook.FailedChunks

Notification.State.NotificationState.ProviderData.WebHook.FailedChunks Message

NameTypeDescription
alert_offsetint64
errorstring

GetNotificationRequest Message

A request message of the GetNotification method.

NameTypeDescription
namestring (name of Notification)Name of ntt.monitoring.v4.Notification
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of Notification)Names of Notifications
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
notificationsrepeated Notificationfound Notifications
missingrepeated string (name of Notification)list of not found Notifications

ListNotificationsRequest Message

A request message of the ListNotifications method.

NameTypeDescription
parentstring (parent name of Notification)Parent name of ntt.monitoring.v4.Notification
page_sizeint32Requested page size. Server may return fewer Notifications than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
notificationsrepeated NotificationThe list of Notifications
prev_page_tokenstring (cursor of Notification)A token to retrieve previous page of results. Pass this value in the ListNotificationsRequest.page_token.
next_page_tokenstring (cursor of Notification)A token to retrieve next page of results. Pass this value in the ListNotificationsRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of Notification)Name of ntt.monitoring.v4.Notification
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeNotificationChange

WatchNotificationsRequest Message

A request message of the WatchNotifications method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of Notification)Parent name of ntt.monitoring.v4.Notification
page_sizeint32Requested 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_tokenstring (cursor of Notification)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of Notification)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
notification_changesrepeated NotificationChangeChanges of Notifications
is_currentboolIf 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_changeWatchNotificationsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of Notification)New token to retrieve previous page of results.
next_page_tokenstring (cursor of Notification)New token to retrieve next page of results.

CreateNotificationRequest Message

A request message of the CreateNotification method.

NameTypeDescription
parentstring (parent name of Notification)Parent name of ntt.monitoring.v4.Notification
notificationNotificationNotification resource body
response_maskCreateNotificationRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateNotificationRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateNotificationRequest Message

A request message of the UpdateNotification method.

NameTypeDescription
notificationNotificationNotification resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateNotificationRequest.CASConditional 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_missingboolIf 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_maskUpdateNotificationRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateNotificationConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateNotificationRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of Notification)Name of ntt.monitoring.v4.Notification
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

Notification Enumerations

Here is the list of Notification resource enumerations:

Notification.State.NotificationState.Status Enumeration

NameDescription
UNKNOWN
PENDING
FAILED
SUPPRESSED
SENT
DELIVEREDStatus 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

NameTypeDescription
namestring (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]
metadataMetaMetadata 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_namestringDisplay Name
specNotificationChannel.SpecSpecification
stateNotificationChannel.StateState
descriptionstringdescription

NotificationChannel.Spec Message

Spec of NotificationChannel

NameTypeDescription
enabledboolEnabled flag. Whether the NotificationChannel is enabled or not. Disabled channels will not be used for alerting.
typeNotificationChannel.Spec.TypeType. Corresponding spec should a oneof field.
emailNotificationChannel.Spec.EmailEmail
slackNotificationChannel.Spec.SlackSlack
webhookNotificationChannel.Spec.Webhook
notification_language_codestringDefault language for invitation is english (eng) Configuring unsupported language will fallback to english Currently only sendgrid uses this.

NotificationChannel.State Message

State of NotificationChannel

NameTypeDescription
statusNotificationChannel.State.StatusStatus
errorNotificationChannel.State.ErrorError

NotificationChannel.Spec.Email Message

Email Spec

NameTypeDescription
addressesrepeated stringEmail Addresses

NotificationChannel.Spec.Slack Message

Slack Spec

NameTypeDescription
incoming_webhookstringSlack Incoming Webhook URL

NotificationChannel.Spec.PagerDuty Message

PagerDuty Spec

NameTypeDescription
service_keystringPagerDuty Service Key

NotificationChannel.Spec.Webhook Message

Webhook Spec

NameTypeDescription
urlstringWebhook URL
headersrepeated NotificationChannel.Spec.Webhook.HeaderHeaders
notification_mask.google.protobuf.FieldMaskNotification 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_mbdoubledefault 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

NotificationChannel.Spec.Webhook.Header Message

Header

NameTypeDescription
keystring
valuestring

NotificationChannel.State.Error Message

Error of NotificationChannel

NameTypeDescription
time.google.protobuf.Timestamp
messagestring

GetNotificationChannelRequest Message

A request message of the GetNotificationChannel method.

NameTypeDescription
namestring (name of NotificationChannel)Name of ntt.monitoring.v4.NotificationChannel
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of NotificationChannel)Names of NotificationChannels
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
notification_channelsrepeated NotificationChannelfound NotificationChannels
missingrepeated string (name of NotificationChannel)list of not found NotificationChannels

ListNotificationChannelsRequest Message

A request message of the ListNotificationChannels method.

NameTypeDescription
parentstring (parent name of NotificationChannel)Parent name of ntt.monitoring.v4.NotificationChannel
page_sizeint32Requested page size. Server may return fewer NotificationChannels than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
notification_channelsrepeated NotificationChannelThe list of NotificationChannels
prev_page_tokenstring (cursor of NotificationChannel)A token to retrieve previous page of results. Pass this value in the ListNotificationChannelsRequest.page_token.
next_page_tokenstring (cursor of NotificationChannel)A token to retrieve next page of results. Pass this value in the ListNotificationChannelsRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of NotificationChannel)Name of ntt.monitoring.v4.NotificationChannel
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeNotificationChannelChange

WatchNotificationChannelsRequest Message

A request message of the WatchNotificationChannels method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of NotificationChannel)Parent name of ntt.monitoring.v4.NotificationChannel
page_sizeint32Requested 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_tokenstring (cursor of NotificationChannel)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of NotificationChannel)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
notification_channel_changesrepeated NotificationChannelChangeChanges of NotificationChannels
is_currentboolIf 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_changeWatchNotificationChannelsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of NotificationChannel)New token to retrieve previous page of results.
next_page_tokenstring (cursor of NotificationChannel)New token to retrieve next page of results.

CreateNotificationChannelRequest Message

A request message of the CreateNotificationChannel method.

NameTypeDescription
parentstring (parent name of NotificationChannel)Parent name of ntt.monitoring.v4.NotificationChannel
notification_channelNotificationChannelNotificationChannel resource body
response_maskCreateNotificationChannelRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateNotificationChannelRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateNotificationChannelRequest Message

A request message of the UpdateNotificationChannel method.

NameTypeDescription
notification_channelNotificationChannelNotificationChannel resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateNotificationChannelRequest.CASConditional 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_missingboolIf 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_maskUpdateNotificationChannelRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateNotificationChannelConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateNotificationChannelRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of NotificationChannel)Name of ntt.monitoring.v4.NotificationChannel
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

TestNotificationChannelRequest Message

Request message for method [TestNotificationChannel][ntt.monitoring.v4.TestNotificationChannel]

NameTypeDescription
namestring (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

NameDescription
TYPE_UNSPECIFIEDType is unknown
EMAILEmail NotificationChannel
SLACKSlack NotificationChannel
WEBHOOKWebhook NotificationChannel

NotificationChannel.State.Status Enumeration

State of NotificationChannel

NameDescription
STATE_UNSPECIFIEDState is unknown
ACTIVENotificationChannel is active
DISABLEDNotificationChannel is disabled
ERRORError 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

NameTypeDescription
namestring (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}
metadataMetaMetadata 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).
keybytesTimeSerie 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
projectstringInternal use - for bulk reporting of TimeSeries
metricMetricThe associated metric. A fully-specified metric used to identify the time series. This field cannot be updated, can be only set during creation.
resourceMonitoredResourceThe 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_kindMetricDescriptor.MetricKindThe 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_typeMetricDescriptor.ValueTypeThe 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.
valueTypedValuePhantom value

GetPhantomTimeSerieRequest Message

A request message of the GetPhantomTimeSerie method.

NameTypeDescription
namestring (name of PhantomTimeSerie)Name of ntt.monitoring.v4.PhantomTimeSerie
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of PhantomTimeSerie)Names of PhantomTimeSeries
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
phantom_time_seriesrepeated PhantomTimeSeriefound PhantomTimeSeries
missingrepeated string (name of PhantomTimeSerie)list of not found PhantomTimeSeries

ListPhantomTimeSeriesRequest Message

A request message of the ListPhantomTimeSeries method.

NameTypeDescription
parentstring (parent name of PhantomTimeSerie)Parent name of ntt.monitoring.v4.PhantomTimeSerie
page_sizeint32Requested page size. Server may return fewer PhantomTimeSeries than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
phantom_time_seriesrepeated PhantomTimeSerieThe list of PhantomTimeSeries
prev_page_tokenstring (cursor of PhantomTimeSerie)A token to retrieve previous page of results. Pass this value in the ListPhantomTimeSeriesRequest.page_token.
next_page_tokenstring (cursor of PhantomTimeSerie)A token to retrieve next page of results. Pass this value in the ListPhantomTimeSeriesRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of PhantomTimeSerie)Name of ntt.monitoring.v4.PhantomTimeSerie
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changePhantomTimeSerieChange

WatchPhantomTimeSeriesRequest Message

A request message of the WatchPhantomTimeSeries method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of PhantomTimeSerie)Parent name of ntt.monitoring.v4.PhantomTimeSerie
page_sizeint32Requested 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_tokenstring (cursor of PhantomTimeSerie)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of PhantomTimeSerie)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
phantom_time_serie_changesrepeated PhantomTimeSerieChangeChanges of PhantomTimeSeries
is_currentboolIf 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_changeWatchPhantomTimeSeriesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of PhantomTimeSerie)New token to retrieve previous page of results.
next_page_tokenstring (cursor of PhantomTimeSerie)New token to retrieve next page of results.

CreatePhantomTimeSerieRequest Message

A request message of the CreatePhantomTimeSerie method.

NameTypeDescription
parentstring (parent name of PhantomTimeSerie)Parent name of ntt.monitoring.v4.PhantomTimeSerie
phantom_time_seriePhantomTimeSeriePhantomTimeSerie resource body
response_maskCreatePhantomTimeSerieRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreatePhantomTimeSerieRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdatePhantomTimeSerieRequest Message

A request message of the UpdatePhantomTimeSerie method.

NameTypeDescription
phantom_time_seriePhantomTimeSeriePhantomTimeSerie resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdatePhantomTimeSerieRequest.CASConditional 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_missingboolIf 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_maskUpdatePhantomTimeSerieRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_statePhantomTimeSerieConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdatePhantomTimeSerieRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of PhantomTimeSerie)Name of ntt.monitoring.v4.PhantomTimeSerie
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

Project Resource

Project Resource

Name patterns:

  • projects/{project}

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:

GET /v4/projects 

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:

POST /v4/projects:watch 

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

NameTypeDescription
namestring (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]
titlestring
metadataMetaMetadata 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_policyMultiRegionPolicyMulti region policy

GetProjectRequest Message

A request message of the GetProject method.

NameTypeDescription
namestring (name of Project)Name of ntt.monitoring.v4.Project
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of Project)Names of Projects
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
projectsrepeated Projectfound Projects
missingrepeated string (name of Project)list of not found Projects

ListProjectsRequest Message

A request message of the ListProjects method.

NameTypeDescription
page_sizeint32Requested page size. Server may return fewer Projects than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
projectsrepeated ProjectThe list of Projects
prev_page_tokenstring (cursor of Project)A token to retrieve previous page of results. Pass this value in the ListProjectsRequest.page_token.
next_page_tokenstring (cursor of Project)A token to retrieve next page of results. Pass this value in the ListProjectsRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of Project)Name of ntt.monitoring.v4.Project
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeProjectChange

WatchProjectsRequest Message

A request message of the WatchProjects method.

NameTypeDescription
typeWatchTypeType 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_sizeint32Requested 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_tokenstring (cursor of Project)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of Project)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
project_changesrepeated ProjectChangeChanges of Projects
is_currentboolIf 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_changeWatchProjectsResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of Project)New token to retrieve previous page of results.
next_page_tokenstring (cursor of Project)New token to retrieve next page of results.

CreateProjectRequest Message

A request message of the CreateProject method.

NameTypeDescription
projectProjectProject resource body
response_maskCreateProjectRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateProjectRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateProjectRequest Message

A request message of the UpdateProject method.

NameTypeDescription
projectProjectProject resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateProjectRequest.CASConditional 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_missingboolIf 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_maskUpdateProjectRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateProjectConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateProjectRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of Project)Name of ntt.monitoring.v4.Project
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

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

NameTypeDescription
namestring (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}
metadataMetaMetadata 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_periodRecoveryStoreShardingInfo.ValidityPeriodPeriod during which this sharding spec is valid.
specRecoveryStoreShardingInfo.ShardingSpecSharding spec for given validity period.

RecoveryStoreShardingInfo.ValidityPeriod Message

Validity period specifies for which period of time this sharding spec is valid.

NameTypeDescription
start_time.google.protobuf.TimestampStart time of validity period.
end_time.google.protobuf.TimestampEnd 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).

NameTypeDescription
ts_blob_period.google.protobuf.DurationDefines period of time series points in a single blob.
shards_countuint32sNumber of shards (by key) in given shard period

GetRecoveryStoreShardingInfoRequest Message

A request message of the GetRecoveryStoreShardingInfo method.

NameTypeDescription
namestring (name of RecoveryStoreShardingInfo)Name of ntt.monitoring.v4.RecoveryStoreShardingInfo
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of RecoveryStoreShardingInfo)Names of RecoveryStoreShardingInfos
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
recovery_store_sharding_infosrepeated RecoveryStoreShardingInfofound RecoveryStoreShardingInfos
missingrepeated string (name of RecoveryStoreShardingInfo)list of not found RecoveryStoreShardingInfos

ListRecoveryStoreShardingInfosRequest Message

A request message of the ListRecoveryStoreShardingInfos method.

NameTypeDescription
parentstring (parent name of RecoveryStoreShardingInfo)Parent name of ntt.monitoring.v4.RecoveryStoreShardingInfo
page_sizeint32Requested page size. Server may return fewer RecoveryStoreShardingInfos than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
recovery_store_sharding_infosrepeated RecoveryStoreShardingInfoThe list of RecoveryStoreShardingInfos
prev_page_tokenstring (cursor of RecoveryStoreShardingInfo)A token to retrieve previous page of results. Pass this value in the ListRecoveryStoreShardingInfosRequest.page_token.
next_page_tokenstring (cursor of RecoveryStoreShardingInfo)A token to retrieve next page of results. Pass this value in the ListRecoveryStoreShardingInfosRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of RecoveryStoreShardingInfo)Name of ntt.monitoring.v4.RecoveryStoreShardingInfo
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeRecoveryStoreShardingInfoChange

WatchRecoveryStoreShardingInfosRequest Message

A request message of the WatchRecoveryStoreShardingInfos method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of RecoveryStoreShardingInfo)Parent name of ntt.monitoring.v4.RecoveryStoreShardingInfo
page_sizeint32Requested 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_tokenstring (cursor of RecoveryStoreShardingInfo)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of RecoveryStoreShardingInfo)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
recovery_store_sharding_info_changesrepeated RecoveryStoreShardingInfoChangeChanges of RecoveryStoreShardingInfos
is_currentboolIf 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_changeWatchRecoveryStoreShardingInfosResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of RecoveryStoreShardingInfo)New token to retrieve previous page of results.
next_page_tokenstring (cursor of RecoveryStoreShardingInfo)New token to retrieve next page of results.

CreateRecoveryStoreShardingInfoRequest Message

A request message of the CreateRecoveryStoreShardingInfo method.

NameTypeDescription
parentstring (parent name of RecoveryStoreShardingInfo)Parent name of ntt.monitoring.v4.RecoveryStoreShardingInfo
recovery_store_sharding_infoRecoveryStoreShardingInfoRecoveryStoreShardingInfo resource body
response_maskCreateRecoveryStoreShardingInfoRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateRecoveryStoreShardingInfoRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateRecoveryStoreShardingInfoRequest Message

A request message of the UpdateRecoveryStoreShardingInfo method.

NameTypeDescription
recovery_store_sharding_infoRecoveryStoreShardingInfoRecoveryStoreShardingInfo resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateRecoveryStoreShardingInfoRequest.CASConditional 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_missingboolIf 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_maskUpdateRecoveryStoreShardingInfoRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateRecoveryStoreShardingInfoConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateRecoveryStoreShardingInfoRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of RecoveryStoreShardingInfo)Name of ntt.monitoring.v4.RecoveryStoreShardingInfo
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

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:

POST /v4:watch 

TimeSerie Messages

Here is the list of TimeSerie resource messages:

TimeSerie Message

NameTypeDescription
keybytesTimeSerie 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.
projectstringInternal use - for bulk reporting of TimeSeries
regionstringRegion ID associated with time serie.
unitstringUnit 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”.
metricMetricThe associated metric. A fully-specified metric used to identify the time series.
resourceMonitoredResourceThe associated monitored resource. Custom metrics can use only certain monitored resource types in their time series data.
metric_kindMetricDescriptor.MetricKindThe 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_typeMetricDescriptor.ValueTypeThe 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.
pointsrepeated PointThe 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]

NameTypeDescription
parentstringThe project on which to execute the request. The format is “projects/{project_id}”, or “projects/{project_id}/regions/{region_id}/buckets/{bucket_id}”
filterstring (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”
intervalTimeIntervalThe time interval for which results should be returned. Only time series that contain data points in the specified interval are included in the response.
aggregationAggregationInstructs 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.
paginationPaginationPicks 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.
viewTimeSeriesViewSpecifies which information is returned about the time series.
field_mask.google.protobuf.FieldMaskview 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_capint32A 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_tokenstringIf 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]

NameTypeDescription
time_seriesrepeated TimeSerieOne or more time series that match the filter included in the request.
execution_errorsrepeated StatusQuery execution errors that may have caused the time series data returned to be incomplete.
continuation_tokenstringIf 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_countersrepeated TimeSerieSpecial 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).

NameTypeDescription
region_idstringregion id which failed to give results.

QueryProjectTimeSeriesStatsRequest Message

Response message for method [QueryProjectTimeSeriesStats][ntt.monitoring.v4.QueryProjectTimeSeriesStats]

NameTypeDescription
projectstring (name of Project)
servicestringService domain for which we request stats, for example “devices.edgelq.com”
region_idstringRegion ID from which to get metrics
ap.google.protobuf.DurationAggregation alignment period
intervalTimeIntervalThe time interval for which results should be returned.
page_sizeint32A 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_tokenstringIf 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.
queryStatsQuery

QueryProjectTimeSeriesStatsResponse Message

Response message for method [QueryProjectTimeSeriesStats][ntt.monitoring.v4.QueryProjectTimeSeriesStats]

NameTypeDescription
time_seriesrepeated TimeSerieOne or more time series that match the request.
next_page_tokenstringIf 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_errorsrepeated StatusQuery 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).

NameTypeDescription
region_idstringregion id which failed to give results.

QueryServiceTimeSeriesStatsRequest Message

Response message for method [QueryServiceTimeSeriesStats][ntt.monitoring.v4.QueryServiceTimeSeriesStats]

NameTypeDescription
servicestring (name of Service)
region_idstringRegion ID from which stats should e obtained
ap.google.protobuf.Duration
intervalTimeIntervalThe time interval for which results should be returned.
page_sizeint32A 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_tokenstringIf 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_idsrepeated stringOptional list of user projects for which we want to get stats. If provided, statistics will be grouped by them.
queryStatsQuery

QueryServiceTimeSeriesStatsResponse Message

Response message for method [QueryServiceTimeSeriesStats][ntt.monitoring.v4.QueryServiceTimeSeriesStats]

NameTypeDescription
time_seriesrepeated TimeSerieOne or more time series that match the request.
next_page_tokenstringIf 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_errorsrepeated StatusQuery 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).

NameTypeDescription
region_idstringregion id which failed to give results.

CreateTimeSeriesRequest Message

Request message for method [CreateTimeSeries][ntt.monitoring.v4.CreateTimeSeries]

NameTypeDescription
parentstringThe project on which to execute the request. The format is “projects/{project_id}”, or “projects/{project_id}/regions/{region_id}/buckets/{bucket_id}”
time_seriesrepeated TimeSerieThe 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]

NameTypeDescription
time_serie_keysmap<uint32s, bytes>Time Serie keys indexed by Create position - present only when given TimeSerie didn’t use Key field
failed_time_seriesrepeated CreateTimeSeriesErrorTime series that failed to be created

WatchTimeSeriesRequest Message

NameTypeDescription
parentstringThe project on which to execute the request. The format is “projects/{project_id}”, or “projects/{project_id}/regions/{region_id}/buckets/{bucket_id}”
filterstring (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”
aggregationAggregationInstructs how to transform individual time series (aligner) and combine them together (reducer, group by fields).
snapshot_interval_to_fetch.google.protobuf.DurationAmount 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.TimestampFor 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

NameTypeDescription
time_seriesrepeated 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

NameTypeDescription
namestring (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]
metadataMetaMetadata 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_namestringOptional display name
filterstring (filter of TimeSerie)Time series filter to apply.
aggregationAggregationInstructs how to transform individual time series (aligner) and combine them together (reducer, group by fields).
rule_idsrepeated stringAllocated persistent rule IDs for underlying watch.
sinkstring (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.

NameTypeDescription
namestring (name of TimeSeriesCollectionRule)Name of ntt.monitoring.v4.TimeSeriesCollectionRule
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of TimeSeriesCollectionRule)Names of TimeSeriesCollectionRules
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
time_series_collection_rulesrepeated TimeSeriesCollectionRulefound TimeSeriesCollectionRules
missingrepeated string (name of TimeSeriesCollectionRule)list of not found TimeSeriesCollectionRules

ListTimeSeriesCollectionRulesRequest Message

A request message of the ListTimeSeriesCollectionRules method.

NameTypeDescription
parentstring (parent name of TimeSeriesCollectionRule)Parent name of ntt.monitoring.v4.TimeSeriesCollectionRule
page_sizeint32Requested page size. Server may return fewer TimeSeriesCollectionRules than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
time_series_collection_rulesrepeated TimeSeriesCollectionRuleThe list of TimeSeriesCollectionRules
prev_page_tokenstring (cursor of TimeSeriesCollectionRule)A token to retrieve previous page of results. Pass this value in the ListTimeSeriesCollectionRulesRequest.page_token.
next_page_tokenstring (cursor of TimeSeriesCollectionRule)A token to retrieve next page of results. Pass this value in the ListTimeSeriesCollectionRulesRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of TimeSeriesCollectionRule)Name of ntt.monitoring.v4.TimeSeriesCollectionRule
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeTimeSeriesCollectionRuleChange

WatchTimeSeriesCollectionRulesRequest Message

A request message of the WatchTimeSeriesCollectionRules method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of TimeSeriesCollectionRule)Parent name of ntt.monitoring.v4.TimeSeriesCollectionRule
page_sizeint32Requested 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_tokenstring (cursor of TimeSeriesCollectionRule)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of TimeSeriesCollectionRule)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
time_series_collection_rule_changesrepeated TimeSeriesCollectionRuleChangeChanges of TimeSeriesCollectionRules
is_currentboolIf 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_changeWatchTimeSeriesCollectionRulesResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of TimeSeriesCollectionRule)New token to retrieve previous page of results.
next_page_tokenstring (cursor of TimeSeriesCollectionRule)New token to retrieve next page of results.

CreateTimeSeriesCollectionRuleRequest Message

A request message of the CreateTimeSeriesCollectionRule method.

NameTypeDescription
parentstring (parent name of TimeSeriesCollectionRule)Parent name of ntt.monitoring.v4.TimeSeriesCollectionRule
time_series_collection_ruleTimeSeriesCollectionRuleTimeSeriesCollectionRule resource body
response_maskCreateTimeSeriesCollectionRuleRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateTimeSeriesCollectionRuleRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateTimeSeriesCollectionRuleRequest Message

A request message of the UpdateTimeSeriesCollectionRule method.

NameTypeDescription
time_series_collection_ruleTimeSeriesCollectionRuleTimeSeriesCollectionRule resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateTimeSeriesCollectionRuleRequest.CASConditional 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_missingboolIf 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_maskUpdateTimeSeriesCollectionRuleRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateTimeSeriesCollectionRuleConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateTimeSeriesCollectionRuleRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of TimeSeriesCollectionRule)Name of ntt.monitoring.v4.TimeSeriesCollectionRule
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

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

NameTypeDescription
namestring (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]
metadataMetaMetadata 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_namestringOptional display name
specTimeSeriesForwarderSink.SpecCurrent spec
statusTimeSeriesForwarderSink.StatusCurrent status

TimeSeriesForwarderSink.Spec Message

Sink specification, instructing where data must go. It must specify one valid sink spec inside.

NameTypeDescription
compressionTimeSeriesForwarderSink.Spec.CompressionOptional data compression.
azure_event_hubTimeSeriesForwarderSink.Spec.AzureEventHubSink

TimeSeriesForwarderSink.Status Message

Status describes status of TimeSeriesForwarderSink.

NameTypeDescription
errorstringIf there is some persisting error on the sink, it will be reported here.

TimeSeriesForwarderSink.Spec.AzureEventHubSink Message

AzureEventHubSink describes sink for Azure Event Hub.

NameTypeDescription
endpointstring (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.

NameTypeDescription
namestring (name of TimeSeriesForwarderSink)Name of ntt.monitoring.v4.TimeSeriesForwarderSink
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
namesrepeated string (name of TimeSeriesForwarderSink)Names of TimeSeriesForwarderSinks
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
time_series_forwarder_sinksrepeated TimeSeriesForwarderSinkfound TimeSeriesForwarderSinks
missingrepeated string (name of TimeSeriesForwarderSink)list of not found TimeSeriesForwarderSinks

ListTimeSeriesForwarderSinksRequest Message

A request message of the ListTimeSeriesForwarderSinks method.

NameTypeDescription
parentstring (parent name of TimeSeriesForwarderSink)Parent name of ntt.monitoring.v4.TimeSeriesForwarderSink
page_sizeint32Requested page size. Server may return fewer TimeSeriesForwarderSinks than requested. If unspecified, server will pick an appropriate default.
page_tokenstring (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_bystring (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”
filterstring (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.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView defines list of standard response fields present in response items. Additional fields can be amended by request field field_mask
include_paging_infoboolIndicates 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.

NameTypeDescription
time_series_forwarder_sinksrepeated TimeSeriesForwarderSinkThe list of TimeSeriesForwarderSinks
prev_page_tokenstring (cursor of TimeSeriesForwarderSink)A token to retrieve previous page of results. Pass this value in the ListTimeSeriesForwarderSinksRequest.page_token.
next_page_tokenstring (cursor of TimeSeriesForwarderSink)A token to retrieve next page of results. Pass this value in the ListTimeSeriesForwarderSinksRequest.page_token.
current_offsetint32Current 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_countint32Number 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.

NameTypeDescription
namestring (name of TimeSeriesForwarderSink)Name of ntt.monitoring.v4.TimeSeriesForwarderSink
field_mask.google.protobuf.FieldMaskA list of extra fields to be obtained for each response item on top of fields defined by request field view
viewViewView 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.

NameTypeDescription
changeTimeSeriesForwarderSinkChange

WatchTimeSeriesForwarderSinksRequest Message

A request message of the WatchTimeSeriesForwarderSinks method.

NameTypeDescription
typeWatchTypeType 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.
parentstring (parent name of TimeSeriesForwarderSink)Parent name of ntt.monitoring.v4.TimeSeriesForwarderSink
page_sizeint32Requested 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_tokenstring (cursor of TimeSeriesForwarderSink)A token identifying a page of results the server should return. Can be populated only for stateful watch type.
order_bystring (orderBy of TimeSeriesForwarderSink)Order By - https://cloud.google.com/apis/design/design_patterns#list_pagination Can be populated only for stateful watch type.
resume_tokenstringA token identifying watch resume point from previous session. Can be populated only for stateless watch type.
starting_time.google.protobuf.TimestampPoint 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.
filterstring (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.FieldMaskA 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.
viewViewView 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_sizeint32Maximum 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.

NameTypeDescription
time_series_forwarder_sink_changesrepeated TimeSeriesForwarderSinkChangeChanges of TimeSeriesForwarderSinks
is_currentboolIf 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_changeWatchTimeSeriesForwarderSinksResponse.PageTokenChangeWhen present, PageTokens used for page navigation should be updated. Present only if is_current is true (last chunk).
resume_tokenstringToken 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_sizeint64Server 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_resetboolIn 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_resetboolIn 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

NameTypeDescription
prev_page_tokenstring (cursor of TimeSeriesForwarderSink)New token to retrieve previous page of results.
next_page_tokenstring (cursor of TimeSeriesForwarderSink)New token to retrieve next page of results.

CreateTimeSeriesForwarderSinkRequest Message

A request message of the CreateTimeSeriesForwarderSink method.

NameTypeDescription
parentstring (parent name of TimeSeriesForwarderSink)Parent name of ntt.monitoring.v4.TimeSeriesForwarderSink
time_series_forwarder_sinkTimeSeriesForwarderSinkTimeSeriesForwarderSink resource body
response_maskCreateTimeSeriesForwarderSinkRequest.ResponseMaskOptional masking applied to response object to reduce message response size.

CreateTimeSeriesForwarderSinkRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf this flag has value true, then response will contain just empty resource without any fields populated.
body_mask.google.protobuf.FieldMaskIf this field is populated, then resource in response will contain only specific fields.

UpdateTimeSeriesForwarderSinkRequest Message

A request message of the UpdateTimeSeriesForwarderSink method.

NameTypeDescription
time_series_forwarder_sinkTimeSeriesForwarderSinkTimeSeriesForwarderSink resource body
update_mask.google.protobuf.FieldMaskFieldMask applied to request - change will be applied only for fields in the mask
casUpdateTimeSeriesForwarderSinkRequest.CASConditional 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_missingboolIf 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_maskUpdateTimeSeriesForwarderSinkRequest.ResponseMaskreduce 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.

NameTypeDescription
conditional_stateTimeSeriesForwarderSinkConditional desired state of a resource before update.
field_mask.google.protobuf.FieldMaskField paths from conditional state of resource server should check and compare.

UpdateTimeSeriesForwarderSinkRequest.ResponseMask Message

ResponseMask allows client to reduce response message size.

NameTypeDescription
skip_entire_response_bodyboolIf 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_onlyboolInclude 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.FieldMaskIf 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.

NameTypeDescription
namestring (name of TimeSeriesForwarderSink)Name of ntt.monitoring.v4.TimeSeriesForwarderSink
allow_missingboolIf set to true, and the resource is not found, method will be successful and will not return NotFound error.

TimeSeriesForwarderSink Enumerations

Here is the list of TimeSeriesForwarderSink resource enumerations:

TimeSeriesForwarderSink.Spec.Compression Enumeration

NameDescription
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.

NameTypeDescription
alignment_period.google.protobuf.DurationThe 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_alignerAggregation.AlignerThe 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_reducerAggregation.ReducerThe 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_fieldsrepeated stringThe 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

NameTypeDescription
addedAlertChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedAlertChange.ModifiedModified is returned when watched document is modified
currentAlertChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedAlertChange.RemovedRemoved is returned when Alert is deleted or leaves Query view

AlertChange.Added Message

Alert has been added to query view

NameTypeDescription
alertAlert
view_indexint32Integer 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

NameTypeDescription
alertAlert

AlertChange.Modified Message

Alert changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of Alert)Name of modified Alert
alertAlertNew version of Alert or masked difference, depending on mask_changes instrumentation of issued [WatchAlertRequest] or [WatchAlertsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified Alert. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying Alert new index in resulting query view.

AlertChange.Removed Message

Removed is returned when Alert is deleted or leaves Query view

NameTypeDescription
namestring (name of Alert)
view_indexint32Integer 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

NameTypeDescription
addedAlertingConditionChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedAlertingConditionChange.ModifiedModified is returned when watched document is modified
currentAlertingConditionChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedAlertingConditionChange.RemovedRemoved is returned when AlertingCondition is deleted or leaves Query view

AlertingConditionChange.Added Message

AlertingCondition has been added to query view

NameTypeDescription
alerting_conditionAlertingCondition
view_indexint32Integer 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

NameTypeDescription
alerting_conditionAlertingCondition

AlertingConditionChange.Modified Message

AlertingCondition changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of AlertingCondition)Name of modified AlertingCondition
alerting_conditionAlertingConditionNew version of AlertingCondition or masked difference, depending on mask_changes instrumentation of issued [WatchAlertingConditionRequest] or [WatchAlertingConditionsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified AlertingCondition. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying AlertingCondition new index in resulting query view.

AlertingConditionChange.Removed Message

Removed is returned when AlertingCondition is deleted or leaves Query view

NameTypeDescription
namestring (name of AlertingCondition)
view_indexint32Integer 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

NameTypeDescription
addedAlertingPolicyChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedAlertingPolicyChange.ModifiedModified is returned when watched document is modified
currentAlertingPolicyChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedAlertingPolicyChange.RemovedRemoved is returned when AlertingPolicy is deleted or leaves Query view

AlertingPolicyChange.Added Message

AlertingPolicy has been added to query view

NameTypeDescription
alerting_policyAlertingPolicy
view_indexint32Integer 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

NameTypeDescription
alerting_policyAlertingPolicy

AlertingPolicyChange.Modified Message

AlertingPolicy changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of AlertingPolicy)Name of modified AlertingPolicy
alerting_policyAlertingPolicyNew version of AlertingPolicy or masked difference, depending on mask_changes instrumentation of issued [WatchAlertingPolicyRequest] or [WatchAlertingPoliciesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified AlertingPolicy. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying AlertingPolicy new index in resulting query view.

AlertingPolicyChange.Removed Message

Removed is returned when AlertingPolicy is deleted or leaves Query view

NameTypeDescription
namestring (name of AlertingPolicy)
view_indexint32Integer 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

NameTypeDescription
addedBucketChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedBucketChange.ModifiedModified is returned when watched document is modified
currentBucketChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedBucketChange.RemovedRemoved is returned when Bucket is deleted or leaves Query view

BucketChange.Added Message

Bucket has been added to query view

NameTypeDescription
bucketBucket
view_indexint32Integer 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

NameTypeDescription
bucketBucket

BucketChange.Modified Message

Bucket changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of Bucket)Name of modified Bucket
bucketBucketNew version of Bucket or masked difference, depending on mask_changes instrumentation of issued [WatchBucketRequest] or [WatchBucketsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified Bucket. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying Bucket new index in resulting query view.

BucketChange.Removed Message

Removed is returned when Bucket is deleted or leaves Query view

NameTypeDescription
namestring (name of Bucket)
view_indexint32Integer specifying removed Bucket index. Not populated in stateless watch type.

BulkTimeSeries Message

Used for reporting rollups

NameTypeDescription
time_seriesrepeated TimeSerie
phantom_flagbool

CreateTimeSeriesError Message

Describes the result of a failed request to write data to a time series.

NameTypeDescription
time_seriesTimeSerieThe time series, including the Metric, MonitoredResource, and Points (including timestamp and value) that resulted in the error. This field provides all of the context that would be needed to retry the operation.
statusStatusThe 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.

NameTypeDescription
countint64The number of values in the population. Must be non-negative.
meandoubleThe arithmetic mean of the values in the population. If count is zero then this field must be zero.
sum_of_squared_deviationdoubleThe 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.
rangeDistribution.RangeIf specified, contains the range of the population values. The field must not be present if the count is zero.
bucket_optionsDistribution.BucketOptionsDefines the histogram bucket boundaries.
bucket_countsrepeated int64If 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.

NameTypeDescription
linear_bucketsDistribution.BucketOptions.LinearThe linear bucket.
exponential_bucketsDistribution.BucketOptions.ExponentialThe exponential buckets.
explicit_bucketsDistribution.BucketOptions.ExplicitThe explicit buckets.
dynamic_bucketsDistribution.BucketOptions.DynamicTDigest dynamic bucketing

Distribution.BucketOptions.Dynamic Message

Dynamic buckets centroid based. TDigest implementation.

NameTypeDescription
compressiondoubleTDigest compression rate
meansrepeated doubleCentroid 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.

NameTypeDescription
boundsrepeated doubleThe 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)).
NameTypeDescription
num_finite_bucketsint32Must be greater than 0.
growth_factordoubleMust be greater than 1.
scaledoubleMust 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)).
NameTypeDescription
num_finite_bucketsint32Must be greater than 0.
widthdoubleMust be greater than 0.
offsetdoubleLower bound of the first bucket.

Distribution.Range Message

The range of the population values.

NameTypeDescription
mindoubleThe minimum of the population values.
maxdoubleThe maximum of the population values.

LabelDescriptor Message

A description of a label.

NameTypeDescription
keystringThe label key.
value_typeLabelDescriptor.ValueTypeThe type of data that can be assigned to the label.
descriptionstringA human-readable description for the label.
default_valuestringDefault 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
disabledbooldisabled 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

NameTypeDescription
label_keysrepeated stringList 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].

NameTypeDescription
typestringAn existing metric type, see [google.api.MetricDescriptor][google.api.MetricDescriptor]. For example, custom.googleapis.com/invoice/paid/amount.
labelsmap<string, string>The set of label values that uniquely identify this metric. All labels listed in the MetricDescriptor must be assigned values.
reduced_labelsrepeated stringreduced labels in aggregations

MetricDescriptorChange Message

MetricDescriptorChange is used by Watch notifications Responses to describe change of single MetricDescriptor One of Added, Modified, Removed

NameTypeDescription
addedMetricDescriptorChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedMetricDescriptorChange.ModifiedModified is returned when watched document is modified
currentMetricDescriptorChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedMetricDescriptorChange.RemovedRemoved is returned when MetricDescriptor is deleted or leaves Query view

MetricDescriptorChange.Added Message

MetricDescriptor has been added to query view

NameTypeDescription
metric_descriptorMetricDescriptor
view_indexint32Integer 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

NameTypeDescription
metric_descriptorMetricDescriptor

MetricDescriptorChange.Modified Message

MetricDescriptor changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of MetricDescriptor)Name of modified MetricDescriptor
metric_descriptorMetricDescriptorNew version of MetricDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchMetricDescriptorRequest] or [WatchMetricDescriptorsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified MetricDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying MetricDescriptor new index in resulting query view.

MetricDescriptorChange.Removed Message

Removed is returned when MetricDescriptor is deleted or leaves Query view

NameTypeDescription
namestring (name of MetricDescriptor)
view_indexint32Integer 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 ...
NameTypeDescription
typesrepeated string
labelsmap<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" }}
NameTypeDescription
typestringRequired. 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.
labelsmap<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_labelsrepeated stringreduced labels in aggregations

MonitoredResourceDescriptorChange Message

MonitoredResourceDescriptorChange is used by Watch notifications Responses to describe change of single MonitoredResourceDescriptor One of Added, Modified, Removed

NameTypeDescription
addedMonitoredResourceDescriptorChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedMonitoredResourceDescriptorChange.ModifiedModified is returned when watched document is modified
currentMonitoredResourceDescriptorChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedMonitoredResourceDescriptorChange.RemovedRemoved is returned when MonitoredResourceDescriptor is deleted or leaves Query view

MonitoredResourceDescriptorChange.Added Message

MonitoredResourceDescriptor has been added to query view

NameTypeDescription
monitored_resource_descriptorMonitoredResourceDescriptor
view_indexint32Integer 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

NameTypeDescription
monitored_resource_descriptorMonitoredResourceDescriptor

MonitoredResourceDescriptorChange.Modified Message

MonitoredResourceDescriptor changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of MonitoredResourceDescriptor)Name of modified MonitoredResourceDescriptor
monitored_resource_descriptorMonitoredResourceDescriptorNew version of MonitoredResourceDescriptor or masked difference, depending on mask_changes instrumentation of issued [WatchMonitoredResourceDescriptorRequest] or [WatchMonitoredResourceDescriptorsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified MonitoredResourceDescriptor. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying MonitoredResourceDescriptor new index in resulting query view.

MonitoredResourceDescriptorChange.Removed Message

Removed is returned when MonitoredResourceDescriptor is deleted or leaves Query view

NameTypeDescription
namestring (name of MonitoredResourceDescriptor)
view_indexint32Integer 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

NameTypeDescription
typesrepeated string
labelsmap<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

NameTypeDescription
addedNotificationChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedNotificationChange.ModifiedModified is returned when watched document is modified
currentNotificationChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedNotificationChange.RemovedRemoved is returned when Notification is deleted or leaves Query view

NotificationChange.Added Message

Notification has been added to query view

NameTypeDescription
notificationNotification
view_indexint32Integer 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

NameTypeDescription
notificationNotification

NotificationChange.Modified Message

Notification changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of Notification)Name of modified Notification
notificationNotificationNew version of Notification or masked difference, depending on mask_changes instrumentation of issued [WatchNotificationRequest] or [WatchNotificationsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified Notification. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying Notification new index in resulting query view.

NotificationChange.Removed Message

Removed is returned when Notification is deleted or leaves Query view

NameTypeDescription
namestring (name of Notification)
view_indexint32Integer 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

NameTypeDescription
addedNotificationChannelChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedNotificationChannelChange.ModifiedModified is returned when watched document is modified
currentNotificationChannelChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedNotificationChannelChange.RemovedRemoved is returned when NotificationChannel is deleted or leaves Query view

NotificationChannelChange.Added Message

NotificationChannel has been added to query view

NameTypeDescription
notification_channelNotificationChannel
view_indexint32Integer 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

NameTypeDescription
notification_channelNotificationChannel

NotificationChannelChange.Modified Message

NotificationChannel changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of NotificationChannel)Name of modified NotificationChannel
notification_channelNotificationChannelNew version of NotificationChannel or masked difference, depending on mask_changes instrumentation of issued [WatchNotificationChannelRequest] or [WatchNotificationChannelsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified NotificationChannel. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying NotificationChannel new index in resulting query view.

NotificationChannelChange.Removed Message

Removed is returned when NotificationChannel is deleted or leaves Query view

NameTypeDescription
namestring (name of NotificationChannel)
view_indexint32Integer specifying removed NotificationChannel index. Not populated in stateless watch type.

Pagination Message

NameTypeDescription
viewstring
functionstring
alignment_period.google.protobuf.Duration
limitint32
offsetint32

PhantomTimeSerieChange Message

PhantomTimeSerieChange is used by Watch notifications Responses to describe change of single PhantomTimeSerie One of Added, Modified, Removed

NameTypeDescription
addedPhantomTimeSerieChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedPhantomTimeSerieChange.ModifiedModified is returned when watched document is modified
currentPhantomTimeSerieChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedPhantomTimeSerieChange.RemovedRemoved is returned when PhantomTimeSerie is deleted or leaves Query view

PhantomTimeSerieChange.Added Message

PhantomTimeSerie has been added to query view

NameTypeDescription
phantom_time_seriePhantomTimeSerie
view_indexint32Integer 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

NameTypeDescription
phantom_time_seriePhantomTimeSerie

PhantomTimeSerieChange.Modified Message

PhantomTimeSerie changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of PhantomTimeSerie)Name of modified PhantomTimeSerie
phantom_time_seriePhantomTimeSerieNew version of PhantomTimeSerie or masked difference, depending on mask_changes instrumentation of issued [WatchPhantomTimeSerieRequest] or [WatchPhantomTimeSeriesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified PhantomTimeSerie. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying PhantomTimeSerie new index in resulting query view.

PhantomTimeSerieChange.Removed Message

Removed is returned when PhantomTimeSerie is deleted or leaves Query view

NameTypeDescription
namestring (name of PhantomTimeSerie)
view_indexint32Integer specifying removed PhantomTimeSerie index. Not populated in stateless watch type.

Point Message

A single data point in a time series.

NameTypeDescription
intervalTimeIntervalThe 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.
valueTypedValueThe value of the data point.
aggregationAggregationAdditional 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

NameTypeDescription
addedProjectChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedProjectChange.ModifiedModified is returned when watched document is modified
currentProjectChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedProjectChange.RemovedRemoved is returned when Project is deleted or leaves Query view

ProjectChange.Added Message

Project has been added to query view

NameTypeDescription
projectProject
view_indexint32Integer 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

NameTypeDescription
projectProject

ProjectChange.Modified Message

Project changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of Project)Name of modified Project
projectProjectNew version of Project or masked difference, depending on mask_changes instrumentation of issued [WatchProjectRequest] or [WatchProjectsRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified Project. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying Project new index in resulting query view.

ProjectChange.Removed Message

Removed is returned when Project is deleted or leaves Query view

NameTypeDescription
namestring (name of Project)
view_indexint32Integer 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

NameTypeDescription
addedRecoveryStoreShardingInfoChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedRecoveryStoreShardingInfoChange.ModifiedModified is returned when watched document is modified
currentRecoveryStoreShardingInfoChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedRecoveryStoreShardingInfoChange.RemovedRemoved is returned when RecoveryStoreShardingInfo is deleted or leaves Query view

RecoveryStoreShardingInfoChange.Added Message

RecoveryStoreShardingInfo has been added to query view

NameTypeDescription
recovery_store_sharding_infoRecoveryStoreShardingInfo
view_indexint32Integer 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

NameTypeDescription
recovery_store_sharding_infoRecoveryStoreShardingInfo

RecoveryStoreShardingInfoChange.Modified Message

RecoveryStoreShardingInfo changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of RecoveryStoreShardingInfo)Name of modified RecoveryStoreShardingInfo
recovery_store_sharding_infoRecoveryStoreShardingInfoNew version of RecoveryStoreShardingInfo or masked difference, depending on mask_changes instrumentation of issued [WatchRecoveryStoreShardingInfoRequest] or [WatchRecoveryStoreShardingInfosRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified RecoveryStoreShardingInfo. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying RecoveryStoreShardingInfo new index in resulting query view.

RecoveryStoreShardingInfoChange.Removed Message

Removed is returned when RecoveryStoreShardingInfo is deleted or leaves Query view

NameTypeDescription
namestring (name of RecoveryStoreShardingInfo)
view_indexint32Integer specifying removed RecoveryStoreShardingInfo index. Not populated in stateless watch type.

StatsQuery Message

NameTypeDescription
call_latenciesStatsQuery.CallLatencies
executed_callsStatsQuery.ExecutedCalls
open_callsStatsQuery.OpenCalls
error_countsStatsQuery.ErrorCounts
ingress_throughputStatsQuery.IngressThroughput
egress_throughputStatsQuery.EgressThroughput
store_usageStatsQuery.StoreOperations
resource_countStatsQuery.ResourceCount
logs_usageStatsQuery.Logs
activity_logs_usageStatsQuery.ActivityLogs
resource_change_logs_usageStatsQuery.ResourceChangeLogs
time_series_usageStatsQuery.TimeSeries
time_series_latenciesStatsQuery.TimeSeriesLatencies

StatsQuery.ActivityLogs Message

NameTypeDescription
typeStatsQuery.ActivityLogs.Type
methodsrepeated string
versionsrepeated string
categoriesrepeated string
group_byrepeated StatsQuery.ActivityLogs.Groups

StatsQuery.CallLatencies Message

NameTypeDescription
methodsrepeated string
versionsrepeated string
resourcesrepeated string
reducerStatsQuery.CallLatencies.Reducer
group_byrepeated StatsQuery.CallLatencies.Groups

StatsQuery.EgressThroughput Message

NameTypeDescription
methodsrepeated string
versionsrepeated string
resourcesrepeated string
group_byrepeated StatsQuery.EgressThroughput.Groups

StatsQuery.ErrorCounts Message

NameTypeDescription
methodsrepeated string
versionsrepeated string
resourcesrepeated string
error_codesrepeated string
group_byrepeated StatsQuery.ErrorCounts.Groups

StatsQuery.ExecutedCalls Message

NameTypeDescription
methodsrepeated string
versionsrepeated string
resourcesrepeated string
group_byrepeated StatsQuery.ExecutedCalls.Groups

StatsQuery.IngressThroughput Message

NameTypeDescription
methodsrepeated string
versionsrepeated string
resourcesrepeated string
group_byrepeated StatsQuery.IngressThroughput.Groups

StatsQuery.Logs Message

NameTypeDescription
typeStatsQuery.Logs.Type
log_typesrepeated string
group_byrepeated StatsQuery.Logs.Groups

StatsQuery.OpenCalls Message

NameTypeDescription
methodsrepeated string
versionsrepeated string
resourcesrepeated string
group_byrepeated StatsQuery.OpenCalls.Groups

StatsQuery.ResourceChangeLogs Message

NameTypeDescription
typeStatsQuery.ResourceChangeLogs.Type
resource_typesrepeated string
group_byrepeated StatsQuery.ResourceChangeLogs.Groups

StatsQuery.ResourceCount Message

NameTypeDescription
resourcesrepeated string

StatsQuery.StoreOperations Message

NameTypeDescription
methodsrepeated string
versionsrepeated string
resourcesrepeated string
operationsrepeated StatsQuery.StoreOperations.Operation
group_byrepeated StatsQuery.StoreOperations.Groups

StatsQuery.TimeSeries Message

NameTypeDescription
typeStatsQuery.TimeSeries.Type
resource_typesrepeated string
metric_typesrepeated string
group_byrepeated StatsQuery.TimeSeries.Groups

StatsQuery.TimeSeriesLatencies Message

NameTypeDescription
of_ap.google.protobuf.Duration
reducerStatsQuery.TimeSeriesLatencies.Reducer

Strings Message

Represents wrapped list of strings.

NameTypeDescription
valuesrepeated 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.

NameTypeDescription
end_time.google.protobuf.TimestampRequired. The end of the time interval.
start_time.google.protobuf.TimestampOptional. 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.

NameTypeDescription
start_time.google.protobuf.TimestampOptional. Start of time range
end_time.google.protobuf.TimestampOptional. End of time range

TimeSeriesCollectionRuleChange Message

TimeSeriesCollectionRuleChange is used by Watch notifications Responses to describe change of single TimeSeriesCollectionRule One of Added, Modified, Removed

NameTypeDescription
addedTimeSeriesCollectionRuleChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedTimeSeriesCollectionRuleChange.ModifiedModified is returned when watched document is modified
currentTimeSeriesCollectionRuleChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedTimeSeriesCollectionRuleChange.RemovedRemoved is returned when TimeSeriesCollectionRule is deleted or leaves Query view

TimeSeriesCollectionRuleChange.Added Message

TimeSeriesCollectionRule has been added to query view

NameTypeDescription
time_series_collection_ruleTimeSeriesCollectionRule
view_indexint32Integer 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

NameTypeDescription
time_series_collection_ruleTimeSeriesCollectionRule

TimeSeriesCollectionRuleChange.Modified Message

TimeSeriesCollectionRule changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of TimeSeriesCollectionRule)Name of modified TimeSeriesCollectionRule
time_series_collection_ruleTimeSeriesCollectionRuleNew version of TimeSeriesCollectionRule or masked difference, depending on mask_changes instrumentation of issued [WatchTimeSeriesCollectionRuleRequest] or [WatchTimeSeriesCollectionRulesRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified TimeSeriesCollectionRule. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying TimeSeriesCollectionRule new index in resulting query view.

TimeSeriesCollectionRuleChange.Removed Message

Removed is returned when TimeSeriesCollectionRule is deleted or leaves Query view

NameTypeDescription
namestring (name of TimeSeriesCollectionRule)
view_indexint32Integer 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

NameTypeDescription
addedTimeSeriesForwarderSinkChange.AddedAdded is returned when watched document is added, either created or enters Query view
modifiedTimeSeriesForwarderSinkChange.ModifiedModified is returned when watched document is modified
currentTimeSeriesForwarderSinkChange.CurrentCurrent is returned in stateless watch when document enters query view or is modified within.
removedTimeSeriesForwarderSinkChange.RemovedRemoved is returned when TimeSeriesForwarderSink is deleted or leaves Query view

TimeSeriesForwarderSinkChange.Added Message

TimeSeriesForwarderSink has been added to query view

NameTypeDescription
time_series_forwarder_sinkTimeSeriesForwarderSink
view_indexint32Integer 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

NameTypeDescription
time_series_forwarder_sinkTimeSeriesForwarderSink

TimeSeriesForwarderSinkChange.Modified Message

TimeSeriesForwarderSink changed some of it’s fields - contains either full document or masked change

NameTypeDescription
namestring (name of TimeSeriesForwarderSink)Name of modified TimeSeriesForwarderSink
time_series_forwarder_sinkTimeSeriesForwarderSinkNew version of TimeSeriesForwarderSink or masked difference, depending on mask_changes instrumentation of issued [WatchTimeSeriesForwarderSinkRequest] or [WatchTimeSeriesForwarderSinksRequest]
field_mask.google.protobuf.FieldMaskUsed when mask_changes is set, contains field paths of modified properties.
previous_view_indexint32Previous view index specifies previous position of modified TimeSeriesForwarderSink. When modification doesn’t affect sorted order, value will remain identical to [view_index].
view_indexint32Integer specifying TimeSeriesForwarderSink new index in resulting query view.

TimeSeriesForwarderSinkChange.Removed Message

Removed is returned when TimeSeriesForwarderSink is deleted or leaves Query view

NameTypeDescription
namestring (name of TimeSeriesForwarderSink)
view_indexint32Integer specifying removed TimeSeriesForwarderSink index. Not populated in stateless watch type.

TimeSeriesSelector Message

NameTypeDescription
metricMetricSelectorMetric Selector used to specify filtered Metric types and labels
resourceMonitoredResourceSelectorResource Selector used to specify filtered Monitored Resource types and labels

TypedValue Message

A single strongly-typed value.

NameTypeDescription
bool_valueboolA Boolean value: true or false.
int64_valueint64A 64-bit integer. Its range is approximately ±9.2x10<sup>18</sup>.
double_valuedoubleA 64-bit double-precision floating-point number. Its magnitude is approximately ±10<sup>±300</sup> and it has 16 significant digits of precision.
string_valuestringA variable-length string value.
distribution_valueDistributionA 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.

NameDescription
ALIGN_NONENo 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_DELTAAlign 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_RATEAlign 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_MINAlign 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_MAXAlign 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_MEANAlign 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_COUNTAlign 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_SUMAlign 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_STDDEVAlign 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_99Align 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_95Align 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_50Align 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_05Align 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_SUMMARYOutputs 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.

NameDescription
REDUCE_NONENo cross-time series reduction. The output of the aligner is returned.
REDUCE_MEANReduce 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_MINReduce 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_MAXReduce 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_SUMReduce 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_STDDEVReduce 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_COUNTReduce 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_99Reduce 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_95Reduce 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_50Reduce 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_05Reduce 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_SUMMARYReduce 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.

NameDescription
STRINGA variable-length string. This is the default.
BOOLBoolean; true or false.
INT64A 64-bit signed integer.

StatsQuery.ActivityLogs.Groups Enumeration

NameDescription
METHOD
VERSION
CATEGORY

StatsQuery.ActivityLogs.Type Enumeration

NameDescription
UNDEFINED
READS
WRITES

StatsQuery.CallLatencies.Groups Enumeration

NameDescription
METHOD
VERSION
RESOURCE_TYPE

StatsQuery.CallLatencies.Reducer Enumeration

NameDescription
SUMMARY
MIN
MAX
P50
P95
P99
MEAN
STD_DEV

StatsQuery.EgressThroughput.Groups Enumeration

NameDescription
METHOD
VERSION
RESOURCE_TYPE

StatsQuery.ErrorCounts.Groups Enumeration

NameDescription
METHOD
VERSION
RESOURCE_TYPE
RESPONSE_CODE

StatsQuery.ExecutedCalls.Groups Enumeration

NameDescription
METHOD
VERSION
RESOURCE_TYPE

StatsQuery.IngressThroughput.Groups Enumeration

NameDescription
METHOD
VERSION
RESOURCE_TYPE

StatsQuery.Logs.Groups Enumeration

NameDescription
LOG_TYPE

StatsQuery.Logs.Type Enumeration

NameDescription
UNDEFINED
READS
WRITES

StatsQuery.OpenCalls.Groups Enumeration

NameDescription
METHOD
VERSION
RESOURCE_TYPE

StatsQuery.ResourceChangeLogs.Groups Enumeration

NameDescription
RESOURCE_TYPE

StatsQuery.ResourceChangeLogs.Type Enumeration

NameDescription
UNDEFINED
READS
WRITES

StatsQuery.StoreOperations.Groups Enumeration

NameDescription
METHOD
VERSION
RESOURCE_TYPE
OPERATION

StatsQuery.StoreOperations.Operation Enumeration

NameDescription
UNDEFINED
GET
LIST
SEARCH
WATCH
CREATE
UPDATE
DELETE

StatsQuery.TimeSeries.Groups Enumeration

NameDescription
RESOURCE_TYPE
METRIC_TYPE

StatsQuery.TimeSeries.Type Enumeration

NameDescription
UNDEFINED
READS
RAW_WRITES
ROLLUP_WRITES

StatsQuery.TimeSeriesLatencies.Reducer Enumeration

NameDescription
SUMMARY
MIN
MAX
P50
P95
P99
MEAN
STD_DEV

TimeSeriesView Enumeration

Controls which fields are returned by ListTimeSeries.

NameDescription
FULLReturns the identity of the metric(s), the time series, and the time series data.
HEADERSReturns the identity of the metric and the time series resource, but not the time series data.