Package-level declarations

Types

Link copied to clipboard
data class AggregationResponse(val alignmentPeriod: String, val crossSeriesReducer: String, val groupByFields: List<String>, val perSeriesAligner: String)

Describes how to combine multiple time series to provide a different view of the data. Aggregation of time series is done in two steps. First, each time series in the set is aligned to the same time interval boundaries, then the set of time series is optionally reduced in number.Alignment consists of applying the per_series_aligner operation to each time series after its data has been divided into regular alignment_period time intervals. This process takes all of the data points in an alignment period, applies a mathematical transformation such as averaging, minimum, maximum, delta, etc., and converts them into a single data point per period.Reduction is when the aligned and transformed time series can optionally be combined, reducing the number of time series through similar mathematical transformations. Reduction involves applying a cross_series_reducer to all the time series, optionally sorting the time series into subsets with group_by_fields, and applying the reducer to each subset.The raw time series data can contain a huge amount of information from multiple sources. Alignment and reduction transforms this mass of data into a more manageable and representative collection of data, for example "the 95% latency across the average of all tasks in a cluster". This representative data can be more easily graphed and comprehended, and the individual time series data is still available for later drilldown. For more details, see Filtering and aggregation (https://cloud.google.com/monitoring/api/v3/aggregation).

Link copied to clipboard
data class AlertStrategyResponse(val autoClose: String, val notificationChannelStrategy: List<NotificationChannelStrategyResponse>, val notificationRateLimit: NotificationRateLimitResponse)

Control over how the notification channels in notification_channels are notified when this alert fires.

Link copied to clipboard
data class AppEngineResponse(val moduleId: String)

App Engine service. Learn more at https://cloud.google.com/appengine.

Link copied to clipboard

Future parameters for the availability SLI.

Link copied to clipboard
data class BasicAuthenticationResponse(val password: String, val username: String)

The authentication parameters to provide to the specified resource or URL that requires a username and password. Currently, only Basic HTTP authentication (https://tools.ietf.org/html/rfc7617) is supported in Uptime checks.

Link copied to clipboard
data class BasicServiceResponse(val serviceLabels: Map<String, String>, val serviceType: String)

A well-known service type, defined by its service type and service labels. Documentation and examples here (https://cloud.google.com/stackdriver/docs/solutions/slo-monitoring/api/api-structures#basic-svc-w-basic-sli).

Link copied to clipboard
data class BasicSliResponse(val availability: AvailabilityCriteriaResponse, val latency: LatencyCriteriaResponse, val location: List<String>, val method: List<String>, val version: List<String>)

An SLI measuring performance on a well-known service type. Performance will be computed on the basis of pre-defined metrics. The type of the service_resource determines the metrics to use and the service_resource.labels and metric_labels are used to construct a monitoring filter to filter that metric down to just the data relevant to this service.

Link copied to clipboard
data class CloudEndpointsResponse(val service: String)

Cloud Endpoints service. Learn more at https://cloud.google.com/endpoints.

Link copied to clipboard
data class CloudRunResponse(val location: String, val serviceName: String)

Cloud Run service. Learn more at https://cloud.google.com/run.

Link copied to clipboard
data class ClusterIstioResponse(val clusterName: String, val location: String, val serviceName: String, val serviceNamespace: String)

Istio service scoped to a single Kubernetes cluster. Learn more at https://istio.io. Clusters running OSS Istio will have their services ingested as this type.

Link copied to clipboard
data class ConditionResponse(val conditionAbsent: MetricAbsenceResponse, val conditionMatchedLog: LogMatchResponse, val conditionMonitoringQueryLanguage: MonitoringQueryLanguageConditionResponse, val conditionThreshold: MetricThresholdResponse, val displayName: String, val name: String)

A condition is a true/false test that determines when an alerting policy should open an incident. If a condition evaluates to true, it signifies that something is wrong.

Link copied to clipboard
data class ContentMatcherResponse(val content: String, val jsonPathMatcher: JsonPathMatcherResponse, val matcher: String)

Optional. Used to perform content matching. This allows matching based on substrings and regular expressions, together with their negations. Only the first 4 MB of an HTTP or HTTPS check's response (and the first 1 MB of a TCP check's response) are examined for purposes of content matching.

Link copied to clipboard
data class CriteriaResponse(val policies: List<String>)

Criteria specific to the AlertPolicys that this Snooze applies to. The Snooze will suppress alerts that come from one of the AlertPolicys whose names are supplied.

Link copied to clipboard

Use a custom service to designate a service that you want to monitor when none of the other service types (like App Engine, Cloud Run, or a GKE type) matches your intended service.

Link copied to clipboard
data class DistributionCutResponse(val distributionFilter: String, val range: GoogleMonitoringV3RangeResponse)

A DistributionCut defines a TimeSeries and thresholds used for measuring good service and total service. The TimeSeries must have ValueType = DISTRIBUTION and MetricKind = DELTA or MetricKind = CUMULATIVE. The computed good_service will be the estimated count of values in the Distribution that fall within the specified min and max.

Link copied to clipboard
data class DocumentationResponse(val content: String, val mimeType: String)

A content string and a MIME type that describes the content string's format.

Link copied to clipboard
data class ForecastOptionsResponse(val forecastHorizon: String)

Options used when forecasting the time series and testing the predicted value against the threshold.

Link copied to clipboard
data class GetAlertPolicyResult(val alertStrategy: AlertStrategyResponse, val combiner: String, val conditions: List<ConditionResponse>, val creationRecord: MutationRecordResponse, val displayName: String, val documentation: DocumentationResponse, val enabled: Boolean, val mutationRecord: MutationRecordResponse, val name: String, val notificationChannels: List<String>, val userLabels: Map<String, String>, val validity: StatusResponse)
Link copied to clipboard
data class GetGroupResult(val displayName: String, val filter: String, val isCluster: Boolean, val name: String, val parentName: String)
Link copied to clipboard
data class GetMetricDescriptorResult(val description: String, val displayName: String, val labels: List<LabelDescriptorResponse>, val launchStage: String, val metadata: MetricDescriptorMetadataResponse, val metricKind: String, val monitoredResourceTypes: List<String>, val name: String, val type: String, val unit: String, val valueType: String)
Link copied to clipboard
data class GetNotificationChannelResult(val creationRecord: MutationRecordResponse, val description: String, val displayName: String, val enabled: Boolean, val labels: Map<String, String>, val mutationRecords: List<MutationRecordResponse>, val name: String, val type: String, val userLabels: Map<String, String>, val verificationStatus: String)
Link copied to clipboard
data class GetServiceLevelObjectiveResult(val calendarPeriod: String, val displayName: String, val goal: Double, val name: String, val rollingPeriod: String, val serviceLevelIndicator: ServiceLevelIndicatorResponse, val userLabels: Map<String, String>)
Link copied to clipboard
data class GetServiceResult(val appEngine: AppEngineResponse, val basicService: BasicServiceResponse, val cloudEndpoints: CloudEndpointsResponse, val cloudRun: CloudRunResponse, val clusterIstio: ClusterIstioResponse, val custom: CustomResponse, val displayName: String, val gkeNamespace: GkeNamespaceResponse, val gkeService: GkeServiceResponse, val gkeWorkload: GkeWorkloadResponse, val istioCanonicalService: IstioCanonicalServiceResponse, val meshIstio: MeshIstioResponse, val name: String, val telemetry: TelemetryResponse, val userLabels: Map<String, String>)
Link copied to clipboard
data class GetSnoozeResult(val criteria: CriteriaResponse, val displayName: String, val interval: TimeIntervalResponse, val name: String)
Link copied to clipboard
data class GetUptimeCheckConfigResult(val checkerType: String, val contentMatchers: List<ContentMatcherResponse>, val displayName: String, val httpCheck: HttpCheckResponse, val internalCheckers: List<InternalCheckerResponse>, val isInternal: Boolean, val monitoredResource: MonitoredResourceResponse, val name: String, val period: String, val resourceGroup: ResourceGroupResponse, val selectedRegions: List<String>, val tcpCheck: TcpCheckResponse, val timeout: String, val userLabels: Map<String, String>)
Link copied to clipboard
data class GkeNamespaceResponse(val clusterName: String, val location: String, val namespaceName: String, val project: String)

GKE Namespace. The field names correspond to the resource metadata labels on monitored resources that fall under a namespace (for example, k8s_container or k8s_pod).

Link copied to clipboard
data class GkeServiceResponse(val clusterName: String, val location: String, val namespaceName: String, val project: String, val serviceName: String)

GKE Service. The "service" here represents a Kubernetes service object (https://kubernetes.io/docs/concepts/services-networking/service). The field names correspond to the resource labels on k8s_service monitored resources (https://cloud.google.com/monitoring/api/resources#tag_k8s_service).

Link copied to clipboard
data class GkeWorkloadResponse(val clusterName: String, val location: String, val namespaceName: String, val project: String, val topLevelControllerName: String, val topLevelControllerType: String)

A GKE Workload (Deployment, StatefulSet, etc). The field names correspond to the metadata labels on monitored resources that fall under a workload (for example, k8s_container or k8s_pod).

Link copied to clipboard
data class GoogleMonitoringV3RangeResponse(val max: Double, val min: Double)

Range of numerical values within min and max.

Link copied to clipboard
data class HttpCheckResponse(val acceptedResponseStatusCodes: List<ResponseStatusCodeResponse>, val authInfo: BasicAuthenticationResponse, val body: String, val contentType: String, val customContentType: String, val headers: Map<String, String>, val maskHeaders: Boolean, val path: String, val pingConfig: PingConfigResponse, val port: Int, val requestMethod: String, val useSsl: Boolean, val validateSsl: Boolean)

Information involved in an HTTP/HTTPS Uptime check request.

Link copied to clipboard
data class InternalCheckerResponse(val displayName: String, val gcpZone: String, val name: String, val network: String, val peerProjectId: String, val state: String)

An internal checker allows Uptime checks to run on private/internal GCP resources.

Link copied to clipboard
data class IstioCanonicalServiceResponse(val canonicalService: String, val canonicalServiceNamespace: String, val meshUid: String)

Canonical service scoped to an Istio mesh. Anthos clusters running ASM >= 1.6.8 will have their services ingested as this type.

Link copied to clipboard
data class JsonPathMatcherResponse(val jsonMatcher: String, val jsonPath: String)

Information needed to perform a JSONPath content match. Used for ContentMatcherOption::MATCHES_JSON_PATH and ContentMatcherOption::NOT_MATCHES_JSON_PATH.

Link copied to clipboard
data class LabelDescriptorResponse(val description: String, val key: String, val valueType: String)

A description of a label.

Link copied to clipboard
data class LatencyCriteriaResponse(val threshold: String)

Parameters for a latency threshold SLI.

Link copied to clipboard
data class LogMatchResponse(val filter: String, val labelExtractors: Map<String, String>)

A condition type that checks whether a log message in the scoping project (https://cloud.google.com/monitoring/api/v3#project_name) satisfies the given filter. Logs from other projects in the metrics scope are not evaluated.

Link copied to clipboard
data class MeshIstioResponse(val meshUid: String, val serviceName: String, val serviceNamespace: String)

Istio service scoped to an Istio mesh. Anthos clusters running ASM < 1.6.8 will have their services ingested as this type.

Link copied to clipboard
data class MetricAbsenceResponse(val aggregations: List<AggregationResponse>, val duration: String, val filter: String, val trigger: TriggerResponse)

A condition type that checks that monitored resources are reporting data. The configuration defines a metric and a set of monitored resources. The predicate is considered in violation when a time series for the specified metric of a monitored resource does not include any data in the specified duration.

Link copied to clipboard
data class MetricDescriptorMetadataResponse(val ingestDelay: String, val launchStage: String, val samplePeriod: String)

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

Link copied to clipboard
data class MetricRangeResponse(val range: GoogleMonitoringV3RangeResponse, val timeSeries: String)

A MetricRange is used when each window is good when the value x of a single TimeSeries satisfies range.min <= x <= range.max. The provided TimeSeries must have ValueType = INT64 or ValueType = DOUBLE and MetricKind = GAUGE.

Link copied to clipboard
data class MetricThresholdResponse(val aggregations: List<AggregationResponse>, val comparison: String, val denominatorAggregations: List<AggregationResponse>, val denominatorFilter: String, val duration: String, val evaluationMissingData: String, val filter: String, val forecastOptions: ForecastOptionsResponse, val thresholdValue: Double, val trigger: TriggerResponse)

A condition type that compares a collection of time series against a threshold.

Link copied to clipboard
data class MonitoredResourceResponse(val labels: Map<String, String>, val type: String)

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

Link copied to clipboard
data class MonitoringQueryLanguageConditionResponse(val duration: String, val evaluationMissingData: String, val query: String, val trigger: TriggerResponse)

A condition type that allows alert policies to be defined using Monitoring Query Language (https://cloud.google.com/monitoring/mql).

Link copied to clipboard
data class MutationRecordResponse(val mutateTime: String, val mutatedBy: String)

Describes a change made to a configuration.

Link copied to clipboard
data class NotificationChannelStrategyResponse(val notificationChannelNames: List<String>, val renotifyInterval: String)

Control over how the notification channels in notification_channels are notified when this alert fires, on a per-channel basis.

Link copied to clipboard
data class NotificationRateLimitResponse(val period: String)

Control over the rate of notifications sent to this alert policy's notification channels.

Link copied to clipboard
data class PerformanceThresholdResponse(val basicSliPerformance: BasicSliResponse, val performance: RequestBasedSliResponse, val threshold: Double)

A PerformanceThreshold is used when each window is good when that window has a sufficiently high performance.

Link copied to clipboard
data class PingConfigResponse(val pingsCount: Int)

Information involved in sending ICMP pings alongside public HTTP/TCP checks. For HTTP, the pings are performed for each part of the redirect chain.

Link copied to clipboard
data class RequestBasedSliResponse(val distributionCut: DistributionCutResponse, val goodTotalRatio: TimeSeriesRatioResponse)

Service Level Indicators for which atomic units of service are counted directly.

Link copied to clipboard
data class ResourceGroupResponse(val groupId: String, val resourceType: String)

The resource submessage for group checks. It can be used instead of a monitored resource, when multiple resources are being monitored.

Link copied to clipboard
data class ResponseStatusCodeResponse(val statusClass: String, val statusValue: Int)

A status to accept. Either a status code class like "2xx", or an integer status code like "200".

Link copied to clipboard
data class ServiceLevelIndicatorResponse(val basicSli: BasicSliResponse, val requestBased: RequestBasedSliResponse, val windowsBased: WindowsBasedSliResponse)

A Service-Level Indicator (SLI) describes the "performance" of a service. For some services, the SLI is well-defined. In such cases, the SLI can be described easily by referencing the well-known SLI and providing the needed parameters. Alternatively, a "custom" SLI can be defined with a query to the underlying metric store. An SLI is defined to be good_service / total_service over any queried time interval. The value of performance always falls into the range 0 <= performance <= 1. A custom SLI describes how to compute this ratio, whether this is by dividing values from a pair of time series, cutting a Distribution into good and bad counts, or counting time windows in which the service complies with a criterion. For separation of concerns, a single Service-Level Indicator measures performance for only one aspect of service quality, such as fraction of successful queries or fast-enough queries.

Link copied to clipboard
data class StatusResponse(val code: Int, val details: List<Map<String, String>>, val message: String)

The Status type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC (https://github.com/grpc). Each Status message contains three pieces of data: error code, error message, and error details.You can find out more about this error model and how to work with it in the API Design Guide (https://cloud.google.com/apis/design/errors).

Link copied to clipboard
data class TcpCheckResponse(val pingConfig: PingConfigResponse, val port: Int)

Information required for a TCP Uptime check request.

Link copied to clipboard
data class TelemetryResponse(val resourceName: String)

Configuration for how to query telemetry on a Service.

Link copied to clipboard
data class TimeIntervalResponse(val endTime: String, val startTime: String)

Describes a time interval: Reads: A half-open time interval. It includes the end time but excludes the start time: (startTime, endTime]. The start time must be specified, must be earlier than the end time, and should be no older than the data retention period for the metric. Writes: A closed time interval. It extends from the start time to the end time, and includes both: startTime, endTime. Valid time intervals depend on the MetricKind (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors#MetricKind) of the metric value. The end time must not be earlier than the start time, and the end time must not be more than 25 hours in the past or more than five minutes in the future. For GAUGE metrics, the startTime value is technically optional; if no value is specified, the start time defaults to the value of the end time, and the interval represents a single point in time. If both start and end times are specified, they must be identical. Such an interval is valid only for GAUGE metrics, which are point-in-time measurements. The end time of a new interval must be at least a millisecond after the end time of the previous interval. For DELTA metrics, the start time and end time must specify a non-zero interval, with subsequent points specifying contiguous and non-overlapping intervals. For DELTA metrics, the start time of the next interval must be at least a millisecond after the end time of the previous interval. For CUMULATIVE metrics, the start time and end time must 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. The new start time must be at least a millisecond after the end time of the previous interval. The start time of a new interval must be at least a millisecond after the end time of the previous interval because intervals are closed. If the start time of a new interval is the same as the end time of the previous interval, then data written at the new start time could overwrite data written at the previous end time.

Link copied to clipboard
data class TimeSeriesRatioResponse(val badServiceFilter: String, val goodServiceFilter: String, val totalServiceFilter: String)

A TimeSeriesRatio specifies two TimeSeries to use for computing the good_service / total_service ratio. The specified TimeSeries must have ValueType = DOUBLE or ValueType = INT64 and must have MetricKind = DELTA or MetricKind = CUMULATIVE. The TimeSeriesRatio must specify exactly two of good, bad, and total, and the relationship good_service + bad_service = total_service will be assumed.

Link copied to clipboard
data class TriggerResponse(val count: Int, val percent: Double)

Specifies how many time series must fail a predicate to trigger a condition. If not specified, then a {count: 1} trigger is used.

Link copied to clipboard
data class WindowsBasedSliResponse(val goodBadMetricFilter: String, val goodTotalRatioThreshold: PerformanceThresholdResponse, val metricMeanInRange: MetricRangeResponse, val metricSumInRange: MetricRangeResponse, val windowPeriod: String)

A WindowsBasedSli defines good_service as the count of time windows for which the provided service was of good quality. Criteria for determining if service was good are embedded in the window_criterion.