import { ServiceType } from "@protobuf-ts/runtime-rpc"; import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; import type { IBinaryWriter } from "@protobuf-ts/runtime"; import type { BinaryReadOptions } from "@protobuf-ts/runtime"; import type { IBinaryReader } from "@protobuf-ts/runtime"; import type { PartialMessage } from "@protobuf-ts/runtime"; import { MessageType } from "@protobuf-ts/runtime"; import { Timestamp } from "../../protobuf/timestamp"; import { Distribution_BucketOptions } from "../../api/distribution"; import { MetricDescriptor } from "../../api/metric"; /** * Describes a logs-based metric. The value of the metric is the number of log * entries that match a logs filter in a given time interval. * * Logs-based metrics can also be used to extract values from logs and create a * distribution of the values. The distribution records the statistics of the * extracted values along with an optional histogram of the values as specified * by the bucket options. * * @generated from protobuf message google.logging.v2.LogMetric */ export interface LogMetric { /** * Required. The client-assigned metric identifier. * Examples: `"error_count"`, `"nginx/requests"`. * * Metric identifiers are limited to 100 characters and can include only the * following characters: `A-Z`, `a-z`, `0-9`, and the special characters * `_-.,+!*',()%/`. The forward-slash character (`/`) denotes a hierarchy of * name pieces, and it cannot be the first character of the name. * * This field is the `[METRIC_ID]` part of a metric resource name in the * format "projects/[PROJECT_ID]/metrics/[METRIC_ID]". Example: If the * resource name of a metric is * `"projects/my-project/metrics/nginx%2Frequests"`, this field's value is * `"nginx/requests"`. * * @generated from protobuf field: string name = 1; */ name: string; /** * Optional. A description of this metric, which is used in documentation. * The maximum length of the description is 8000 characters. * * @generated from protobuf field: string description = 2; */ description: string; /** * Required. An [advanced logs * filter](https://cloud.google.com/logging/docs/view/advanced_filters) which * is used to match log entries. Example: * * "resource.type=gae_app AND severity>=ERROR" * * The maximum length of the filter is 20000 characters. * * @generated from protobuf field: string filter = 3; */ filter: string; /** * Optional. If set to True, then this metric is disabled and it does not * generate any points. * * @generated from protobuf field: bool disabled = 12; */ disabled: boolean; /** * Optional. The metric descriptor associated with the logs-based metric. * If unspecified, it uses a default metric descriptor with a DELTA metric * kind, INT64 value type, with no labels and a unit of "1". Such a metric * counts the number of log entries matching the `filter` expression. * * The `name`, `type`, and `description` fields in the `metric_descriptor` * are output only, and is constructed using the `name` and `description` * field in the LogMetric. * * To create a logs-based metric that records a distribution of log values, a * DELTA metric kind with a DISTRIBUTION value type must be used along with * a `value_extractor` expression in the LogMetric. * * Each label in the metric descriptor must have a matching label * name as the key and an extractor expression as the value in the * `label_extractors` map. * * The `metric_kind` and `value_type` fields in the `metric_descriptor` cannot * be updated once initially configured. New labels can be added in the * `metric_descriptor`, but existing labels cannot be modified except for * their description. * * @generated from protobuf field: google.api.MetricDescriptor metric_descriptor = 5; */ metricDescriptor?: MetricDescriptor; /** * Optional. A `value_extractor` is required when using a distribution * logs-based metric to extract the values to record from a log entry. * Two functions are supported for value extraction: `EXTRACT(field)` or * `REGEXP_EXTRACT(field, regex)`. The argument are: * 1. field: The name of the log entry field from which the value is to be * extracted. * 2. regex: A regular expression using the Google RE2 syntax * (https://github.com/google/re2/wiki/Syntax) with a single capture * group to extract data from the specified log entry field. The value * of the field is converted to a string before applying the regex. * It is an error to specify a regex that does not include exactly one * capture group. * * The result of the extraction must be convertible to a double type, as the * distribution always records double values. If either the extraction or * the conversion to double fails, then those values are not recorded in the * distribution. * * Example: `REGEXP_EXTRACT(jsonPayload.request, ".*quantity=(\d+).*")` * * @generated from protobuf field: string value_extractor = 6; */ valueExtractor: string; /** * Optional. A map from a label key string to an extractor expression which is * used to extract data from a log entry field and assign as the label value. * Each label key specified in the LabelDescriptor must have an associated * extractor expression in this map. The syntax of the extractor expression * is the same as for the `value_extractor` field. * * The extracted value is converted to the type defined in the label * descriptor. If the either the extraction or the type conversion fails, * the label will have a default value. The default value for a string * label is an empty string, for an integer label its 0, and for a boolean * label its `false`. * * Note that there are upper bounds on the maximum number of labels and the * number of active time series that are allowed in a project. * * @generated from protobuf field: map label_extractors = 7; */ labelExtractors: { [key: string]: string; }; /** * Optional. The `bucket_options` are required when the logs-based metric is * using a DISTRIBUTION value type and it describes the bucket boundaries * used to create a histogram of the extracted values. * * @generated from protobuf field: google.api.Distribution.BucketOptions bucket_options = 8; */ bucketOptions?: Distribution_BucketOptions; /** * Output only. The creation timestamp of the metric. * * This field may not be present for older metrics. * * @generated from protobuf field: google.protobuf.Timestamp create_time = 9; */ createTime?: Timestamp; /** * Output only. The last update timestamp of the metric. * * This field may not be present for older metrics. * * @generated from protobuf field: google.protobuf.Timestamp update_time = 10; */ updateTime?: Timestamp; /** * Deprecated. The API version that created or updated this metric. * The v2 format is used by default and cannot be changed. * * @deprecated * @generated from protobuf field: google.logging.v2.LogMetric.ApiVersion version = 4 [deprecated = true]; */ version: LogMetric_ApiVersion; } /** * Logging API version. * * @generated from protobuf enum google.logging.v2.LogMetric.ApiVersion */ export declare enum LogMetric_ApiVersion { /** * Logging API v2. * * @generated from protobuf enum value: V2 = 0; */ V2 = 0, /** * Logging API v1. * * @generated from protobuf enum value: V1 = 1; */ V1 = 1 } /** * The parameters to ListLogMetrics. * * @generated from protobuf message google.logging.v2.ListLogMetricsRequest */ export interface ListLogMetricsRequest { /** * Required. The name of the project containing the metrics: * * "projects/[PROJECT_ID]" * * @generated from protobuf field: string parent = 1; */ parent: string; /** * Optional. If present, then retrieve the next batch of results from the * preceding call to this method. `pageToken` must be the value of * `nextPageToken` from the previous response. The values of other method * parameters should be identical to those in the previous call. * * @generated from protobuf field: string page_token = 2; */ pageToken: string; /** * Optional. The maximum number of results to return from this request. * Non-positive values are ignored. The presence of `nextPageToken` in the * response indicates that more results might be available. * * @generated from protobuf field: int32 page_size = 3; */ pageSize: number; } /** * Result returned from ListLogMetrics. * * @generated from protobuf message google.logging.v2.ListLogMetricsResponse */ export interface ListLogMetricsResponse { /** * A list of logs-based metrics. * * @generated from protobuf field: repeated google.logging.v2.LogMetric metrics = 1; */ metrics: LogMetric[]; /** * If there might be more results than appear in this response, then * `nextPageToken` is included. To get the next set of results, call this * method again using the value of `nextPageToken` as `pageToken`. * * @generated from protobuf field: string next_page_token = 2; */ nextPageToken: string; } /** * The parameters to GetLogMetric. * * @generated from protobuf message google.logging.v2.GetLogMetricRequest */ export interface GetLogMetricRequest { /** * Required. The resource name of the desired metric: * * "projects/[PROJECT_ID]/metrics/[METRIC_ID]" * * @generated from protobuf field: string metric_name = 1; */ metricName: string; } /** * The parameters to CreateLogMetric. * * @generated from protobuf message google.logging.v2.CreateLogMetricRequest */ export interface CreateLogMetricRequest { /** * Required. The resource name of the project in which to create the metric: * * "projects/[PROJECT_ID]" * * The new metric must be provided in the request. * * @generated from protobuf field: string parent = 1; */ parent: string; /** * Required. The new logs-based metric, which must not have an identifier that * already exists. * * @generated from protobuf field: google.logging.v2.LogMetric metric = 2; */ metric?: LogMetric; } /** * The parameters to UpdateLogMetric. * * @generated from protobuf message google.logging.v2.UpdateLogMetricRequest */ export interface UpdateLogMetricRequest { /** * Required. The resource name of the metric to update: * * "projects/[PROJECT_ID]/metrics/[METRIC_ID]" * * The updated metric must be provided in the request and it's * `name` field must be the same as `[METRIC_ID]` If the metric * does not exist in `[PROJECT_ID]`, then a new metric is created. * * @generated from protobuf field: string metric_name = 1; */ metricName: string; /** * Required. The updated metric. * * @generated from protobuf field: google.logging.v2.LogMetric metric = 2; */ metric?: LogMetric; } /** * The parameters to DeleteLogMetric. * * @generated from protobuf message google.logging.v2.DeleteLogMetricRequest */ export interface DeleteLogMetricRequest { /** * Required. The resource name of the metric to delete: * * "projects/[PROJECT_ID]/metrics/[METRIC_ID]" * * @generated from protobuf field: string metric_name = 1; */ metricName: string; } declare class LogMetric$Type extends MessageType { constructor(); create(value?: PartialMessage): LogMetric; internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: LogMetric): LogMetric; private binaryReadMap7; internalBinaryWrite(message: LogMetric, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; } /** * @generated MessageType for protobuf message google.logging.v2.LogMetric */ export declare const LogMetric: LogMetric$Type; declare class ListLogMetricsRequest$Type extends MessageType { constructor(); create(value?: PartialMessage): ListLogMetricsRequest; internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListLogMetricsRequest): ListLogMetricsRequest; internalBinaryWrite(message: ListLogMetricsRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; } /** * @generated MessageType for protobuf message google.logging.v2.ListLogMetricsRequest */ export declare const ListLogMetricsRequest: ListLogMetricsRequest$Type; declare class ListLogMetricsResponse$Type extends MessageType { constructor(); create(value?: PartialMessage): ListLogMetricsResponse; internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListLogMetricsResponse): ListLogMetricsResponse; internalBinaryWrite(message: ListLogMetricsResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; } /** * @generated MessageType for protobuf message google.logging.v2.ListLogMetricsResponse */ export declare const ListLogMetricsResponse: ListLogMetricsResponse$Type; declare class GetLogMetricRequest$Type extends MessageType { constructor(); create(value?: PartialMessage): GetLogMetricRequest; internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetLogMetricRequest): GetLogMetricRequest; internalBinaryWrite(message: GetLogMetricRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; } /** * @generated MessageType for protobuf message google.logging.v2.GetLogMetricRequest */ export declare const GetLogMetricRequest: GetLogMetricRequest$Type; declare class CreateLogMetricRequest$Type extends MessageType { constructor(); create(value?: PartialMessage): CreateLogMetricRequest; internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CreateLogMetricRequest): CreateLogMetricRequest; internalBinaryWrite(message: CreateLogMetricRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; } /** * @generated MessageType for protobuf message google.logging.v2.CreateLogMetricRequest */ export declare const CreateLogMetricRequest: CreateLogMetricRequest$Type; declare class UpdateLogMetricRequest$Type extends MessageType { constructor(); create(value?: PartialMessage): UpdateLogMetricRequest; internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: UpdateLogMetricRequest): UpdateLogMetricRequest; internalBinaryWrite(message: UpdateLogMetricRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; } /** * @generated MessageType for protobuf message google.logging.v2.UpdateLogMetricRequest */ export declare const UpdateLogMetricRequest: UpdateLogMetricRequest$Type; declare class DeleteLogMetricRequest$Type extends MessageType { constructor(); create(value?: PartialMessage): DeleteLogMetricRequest; internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DeleteLogMetricRequest): DeleteLogMetricRequest; internalBinaryWrite(message: DeleteLogMetricRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter; } /** * @generated MessageType for protobuf message google.logging.v2.DeleteLogMetricRequest */ export declare const DeleteLogMetricRequest: DeleteLogMetricRequest$Type; /** * @generated ServiceType for protobuf service google.logging.v2.MetricsServiceV2 */ export declare const MetricsServiceV2: ServiceType; export {};