cdktf-crd
Version:
655 lines (654 loc) • 45.5 kB
TypeScript
import { Manifest, type ManifestConfig } from "@cdktf/provider-kubernetes/lib/manifest";
import { Construct } from "constructs";
export declare class KubernetesScrapeConfigV1alpha1Manifest extends Manifest {
constructor(scope: Construct, id: string, config: KubernetesScrapeConfigV1alpha1ManifestConfig);
}
export interface KubernetesScrapeConfigV1alpha1ManifestConfig extends ManifestConfig {
manifest: {
apiVersion?: "monitoring.coreos.com/v1alpha1";
kind?: "ScrapeConfig";
metadata: {
annotations?: {
[key: string]: string;
};
labels?: {
[key: string]: string;
};
name: string;
namespace?: string;
};
/** @description ScrapeConfigSpec is a specification of the desired configuration for a scrape configuration. */
spec: {
/** @description Authorization header to use on every scrape request. */
authorization?: {
/** @description Selects a key of a Secret in the namespace that contains the credentials for authentication. */
credentials?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
/** @description Defines the authentication type. The value is case-insensitive.
* "Basic" is not a supported value.
* Default: "Bearer" */
type?: string;
};
/** @description AzureSDConfigs defines a list of Azure service discovery configurations. */
azureSDConfigs?: {
/**
* @description # The authentication method, either OAuth or ManagedIdentity. See https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/overview
* @enum {string}
*/
authenticationMethod?: "OAuth" | "ManagedIdentity";
/** @description Optional client ID. Only required with the OAuth authentication method. */
clientID?: string;
/** @description Optional client secret. Only required with the OAuth authentication method. */
clientSecret?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
/** @description The Azure environment. */
environment?: string;
/** @description The port to scrape metrics from. If using the public IP address, this must instead be specified in the relabeling rule. */
port?: number;
/** @description RefreshInterval configures the refresh interval at which Prometheus will re-read the instance list. */
refreshInterval?: string;
/** @description Optional resource group name. Limits discovery to this resource group. */
resourceGroup?: string;
/** @description The subscription ID. Always required. */
subscriptionID: string;
/** @description Optional tenant ID. Only required with the OAuth authentication method. */
tenantID?: string;
}[];
/** @description BasicAuth information to use on every scrape request. */
basicAuth?: {
/** @description `password` specifies a key of a Secret containing the password for authentication. */
password?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
/** @description `username` specifies a key of a Secret containing the username for authentication. */
username?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
};
/** @description ConsulSDConfigs defines a list of Consul service discovery configurations. */
consulSDConfigs?: {
/** @description Allow stale Consul results (see https://www.consul.io/api/features/consistency.html). Will reduce load on Consul. If unset, Prometheus uses its default value. */
allowStale?: boolean;
/** @description Authorization header configuration to authenticate against the Consul Server. */
authorization?: {
/** @description Selects a key of a Secret in the namespace that contains the credentials for authentication. */
credentials?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
/** @description Defines the authentication type. The value is case-insensitive.
* "Basic" is not a supported value.
* Default: "Bearer" */
type?: string;
};
/** @description BasicAuth information to authenticate against the Consul Server. More info: https://prometheus.io/docs/operating/configuration/#endpoints */
basicAuth?: {
/** @description `password` specifies a key of a Secret containing the password for authentication. */
password?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
/** @description `username` specifies a key of a Secret containing the username for authentication. */
username?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
};
/** @description Consul Datacenter name, if not provided it will use the local Consul Agent Datacenter. */
datacenter?: string;
/** @description Whether to enable HTTP2. If unset, Prometheus uses its default value. */
enableHTTP2?: boolean;
/** @description Configure whether HTTP requests follow HTTP 3xx redirects. If unset, Prometheus uses its default value. */
followRedirects?: boolean;
/** @description Namespaces are only supported in Consul Enterprise. */
namespace?: string;
/** @description Comma-separated string that can contain IPs, CIDR notation, domain names that should be excluded from proxying. IP and domain names can contain port numbers. */
noProxy?: string;
/** @description Node metadata key/value pairs to filter nodes for a given service. */
nodeMeta?: {
[key: string]: string;
};
/** @description Optional OAuth 2.0 configuration. */
oauth2?: {
/** @description `clientId` specifies a key of a Secret or ConfigMap containing the OAuth2 client's ID. */
clientId: {
/** @description ConfigMap containing data to use for the targets. */
configMap?: {
/** @description The key to select. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the ConfigMap or its key must be defined */
optional?: boolean;
};
/** @description Secret containing data to use for the targets. */
secret?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
};
/** @description `clientSecret` specifies a key of a Secret containing the OAuth2 client's secret. */
clientSecret: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
/** @description `endpointParams` configures the HTTP parameters to append to the token URL. */
endpointParams?: {
[key: string]: string;
};
/** @description `scopes` defines the OAuth2 scopes used for the token request. */
scopes?: string[];
/** @description `tokenURL` configures the URL to fetch the token from. */
tokenUrl: string;
};
/** @description Admin Partitions are only supported in Consul Enterprise. */
partition?: string;
/** @description Specifies headers to send to proxies during CONNECT requests. */
proxyConnectHeader?: {
[key: string]: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
};
/** @description Use proxy URL indicated by environment variables (HTTP_PROXY, https_proxy, HTTPs_PROXY, https_proxy, and no_proxy) If unset, Prometheus uses its default value. */
proxyFromEnvironment?: boolean;
/** @description Optional proxy URL. */
proxyUrl?: string;
/** @description The time after which the provided names are refreshed. On large setup it might be a good idea to increase this value because the catalog will change all the time. If unset, Prometheus uses its default value. */
refreshInterval?: string;
/**
* @description HTTP Scheme default "http"
* @enum {string}
*/
scheme?: "HTTP" | "HTTPS";
/** @description A valid string consisting of a hostname or IP followed by an optional port number. */
server: string;
/** @description A list of services for which targets are retrieved. If omitted, all services are scraped. */
services?: string[];
/** @description The string by which Consul tags are joined into the tag label. If unset, Prometheus uses its default value. */
tagSeparator?: string;
/** @description An optional list of tags used to filter nodes for a given service. Services must contain all tags in the list. */
tags?: string[];
/** @description TLS Config */
tlsConfig?: {
/** @description Certificate authority used when verifying server certificates. */
ca?: {
/** @description ConfigMap containing data to use for the targets. */
configMap?: {
/** @description The key to select. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the ConfigMap or its key must be defined */
optional?: boolean;
};
/** @description Secret containing data to use for the targets. */
secret?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
};
/** @description Client certificate to present when doing client-authentication. */
cert?: {
/** @description ConfigMap containing data to use for the targets. */
configMap?: {
/** @description The key to select. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the ConfigMap or its key must be defined */
optional?: boolean;
};
/** @description Secret containing data to use for the targets. */
secret?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
};
/** @description Disable target certificate validation. */
insecureSkipVerify?: boolean;
/** @description Secret containing the client key file for the targets. */
keySecret?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
/** @description Used to verify the hostname for the targets. */
serverName?: string;
};
/** @description Consul ACL TokenRef, if not provided it will use the ACL from the local Consul Agent. */
tokenRef?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
}[];
/** @description DNSSDConfigs defines a list of DNS service discovery configurations. */
dnsSDConfigs?: {
/** @description A list of DNS domain names to be queried. */
names: string[];
/** @description The port number used if the query type is not SRV Ignored for SRV records */
port?: number;
/** @description RefreshInterval configures the time after which the provided names are refreshed. If not set, Prometheus uses its default value. */
refreshInterval?: string;
/**
* @description The type of DNS query to perform. One of SRV, A, AAAA or MX. If not set, Prometheus uses its default value.
* @enum {string}
*/
type?: "SRV" | "A" | "AAAA" | "MX";
}[];
/** @description EC2SDConfigs defines a list of EC2 service discovery configurations. */
ec2SDConfigs?: {
/** @description AccessKey is the AWS API key. */
accessKey?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
/** @description Filters can be used optionally to filter the instance list by other criteria. Available filter criteria can be found here: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeInstances.html Filter API documentation: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_Filter.html */
filters?: {
name: string;
values: string[];
}[];
/** @description The port to scrape metrics from. If using the public IP address, this must instead be specified in the relabeling rule. */
port?: number;
/** @description RefreshInterval configures the refresh interval at which Prometheus will re-read the instance list. */
refreshInterval?: string;
/** @description The AWS region */
region?: string;
/** @description AWS Role ARN, an alternative to using AWS API keys. */
roleARN?: string;
/** @description SecretKey is the AWS API secret. */
secretKey?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
}[];
/** @description FileSDConfigs defines a list of file service discovery configurations. */
fileSDConfigs?: {
/** @description List of files to be used for file discovery. Recommendation: use absolute paths. While relative paths work, the prometheus-operator project makes no guarantees about the working directory where the configuration file is stored. Files must be mounted using Prometheus.ConfigMaps or Prometheus.Secrets. */
files: string[];
/** @description RefreshInterval configures the refresh interval at which Prometheus will reload the content of the files. */
refreshInterval?: string;
}[];
/** @description GCESDConfigs defines a list of GCE service discovery configurations. */
gceSDConfigs?: {
/** @description Filter can be used optionally to filter the instance list by other criteria Syntax of this filter is described in the filter query parameter section: https://cloud.google.com/compute/docs/reference/latest/instances/list */
filter?: string;
/** @description The port to scrape metrics from. If using the public IP address, this must instead be specified in the relabeling rule. */
port?: number;
/** @description The Google Cloud Project ID */
project: string;
/** @description RefreshInterval configures the refresh interval at which Prometheus will re-read the instance list. */
refreshInterval?: string;
/** @description The tag separator is used to separate the tags on concatenation */
tagSeparator?: string;
/** @description The zone of the scrape targets. If you need multiple zones use multiple GCESDConfigs. */
zone: string;
}[];
/** @description HonorLabels chooses the metric's labels on collisions with target labels. */
honorLabels?: boolean;
/** @description HonorTimestamps controls whether Prometheus respects the timestamps present in scraped data. */
honorTimestamps?: boolean;
/** @description HTTPSDConfigs defines a list of HTTP service discovery configurations. */
httpSDConfigs?: {
/** @description Authorization header configuration to authenticate against the target HTTP endpoint. */
authorization?: {
/** @description Selects a key of a Secret in the namespace that contains the credentials for authentication. */
credentials?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
/** @description Defines the authentication type. The value is case-insensitive.
* "Basic" is not a supported value.
* Default: "Bearer" */
type?: string;
};
/** @description BasicAuth information to authenticate against the target HTTP endpoint. More info: https://prometheus.io/docs/operating/configuration/#endpoints */
basicAuth?: {
/** @description `password` specifies a key of a Secret containing the password for authentication. */
password?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
/** @description `username` specifies a key of a Secret containing the username for authentication. */
username?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
};
/** @description RefreshInterval configures the refresh interval at which Prometheus will re-query the endpoint to update the target list. */
refreshInterval?: string;
/** @description TLS configuration applying to the target HTTP endpoint. */
tlsConfig?: {
/** @description Certificate authority used when verifying server certificates. */
ca?: {
/** @description ConfigMap containing data to use for the targets. */
configMap?: {
/** @description The key to select. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the ConfigMap or its key must be defined */
optional?: boolean;
};
/** @description Secret containing data to use for the targets. */
secret?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
};
/** @description Client certificate to present when doing client-authentication. */
cert?: {
/** @description ConfigMap containing data to use for the targets. */
configMap?: {
/** @description The key to select. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the ConfigMap or its key must be defined */
optional?: boolean;
};
/** @description Secret containing data to use for the targets. */
secret?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
};
/** @description Disable target certificate validation. */
insecureSkipVerify?: boolean;
/** @description Secret containing the client key file for the targets. */
keySecret?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
/** @description Used to verify the hostname for the targets. */
serverName?: string;
};
/** @description URL from which the targets are fetched. */
url: string;
}[];
/**
* Format: int64
* @description Per-scrape limit on the number of targets dropped by relabeling that will be kept in memory. 0 means no limit.
* It requires Prometheus >= v2.47.0.
*/
keepDroppedTargets?: number;
/** @description KubernetesSDConfigs defines a list of Kubernetes service discovery configurations. */
kubernetesSDConfigs?: {
/**
* @description Role of the Kubernetes entities that should be discovered.
* @enum {string}
*/
role: "Node" | "node" | "Service" | "service" | "Pod" | "pod" | "Endpoints" | "endpoints" | "EndpointSlice" | "endpointslice" | "Ingress" | "ingress";
/** @description Selector to select objects. */
selectors?: {
field?: string;
label?: string;
/**
* @description Role is role of the service in Kubernetes.
* @enum {string}
*/
role: "Node" | "node" | "Service" | "service" | "Pod" | "pod" | "Endpoints" | "endpoints" | "EndpointSlice" | "endpointslice" | "Ingress" | "ingress";
}[];
}[];
/**
* Format: int64
* @description Per-scrape limit on number of labels that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
*/
labelLimit?: number;
/**
* Format: int64
* @description Per-scrape limit on length of labels name that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
*/
labelNameLengthLimit?: number;
/**
* Format: int64
* @description Per-scrape limit on length of labels value that will be accepted for a sample. Only valid in Prometheus versions 2.27.0 and newer.
*/
labelValueLengthLimit?: number;
/** @description MetricRelabelConfigs to apply to samples before ingestion. */
metricRelabelings?: {
/**
* @description Action to perform based on the regex matching.
* `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
* Default: "Replace"
* @default replace
* @enum {string}
*/
action: "replace" | "Replace" | "keep" | "Keep" | "drop" | "Drop" | "hashmod" | "HashMod" | "labelmap" | "LabelMap" | "labeldrop" | "LabelDrop" | "labelkeep" | "LabelKeep" | "lowercase" | "Lowercase" | "uppercase" | "Uppercase" | "keepequal" | "KeepEqual" | "dropequal" | "DropEqual";
/**
* Format: int64
* @description Modulus to take of the hash of the source label values.
* Only applicable when the action is `HashMod`.
*/
modulus?: number;
/** @description Regular expression against which the extracted value is matched. */
regex?: string;
/** @description Replacement value against which a Replace action is performed if the regular expression matches.
* Regex capture groups are available. */
replacement?: string;
/** @description Separator is the string between concatenated SourceLabels. */
separator?: string;
/** @description The source labels select values from existing labels. Their content is concatenated using the configured Separator and matched against the configured regular expression. */
sourceLabels?: string[];
/** @description Label to which the resulting string is written in a replacement.
* It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions.
* Regex capture groups are available. */
targetLabel?: string;
}[];
/** @description MetricsPath HTTP path to scrape for metrics. If empty, Prometheus uses the default value (e.g. /metrics). */
metricsPath?: string;
/** @description Optional HTTP URL parameters */
params?: {
[key: string]: string[];
};
/** @description RelabelConfigs defines how to rewrite the target's labels before scraping. Prometheus Operator automatically adds relabelings for a few standard Kubernetes fields. The original scrape job's name is available via the `__tmp_prometheus_job_name` label. More info: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config */
relabelings?: {
/**
* @description Action to perform based on the regex matching.
* `Uppercase` and `Lowercase` actions require Prometheus >= v2.36.0. `DropEqual` and `KeepEqual` actions require Prometheus >= v2.41.0.
* Default: "Replace"
* @default replace
* @enum {string}
*/
action: "replace" | "Replace" | "keep" | "Keep" | "drop" | "Drop" | "hashmod" | "HashMod" | "labelmap" | "LabelMap" | "labeldrop" | "LabelDrop" | "labelkeep" | "LabelKeep" | "lowercase" | "Lowercase" | "uppercase" | "Uppercase" | "keepequal" | "KeepEqual" | "dropequal" | "DropEqual";
/**
* Format: int64
* @description Modulus to take of the hash of the source label values.
* Only applicable when the action is `HashMod`.
*/
modulus?: number;
/** @description Regular expression against which the extracted value is matched. */
regex?: string;
/** @description Replacement value against which a Replace action is performed if the regular expression matches.
* Regex capture groups are available. */
replacement?: string;
/** @description Separator is the string between concatenated SourceLabels. */
separator?: string;
/** @description The source labels select values from existing labels. Their content is concatenated using the configured Separator and matched against the configured regular expression. */
sourceLabels?: string[];
/** @description Label to which the resulting string is written in a replacement.
* It is mandatory for `Replace`, `HashMod`, `Lowercase`, `Uppercase`, `KeepEqual` and `DropEqual` actions.
* Regex capture groups are available. */
targetLabel?: string;
}[];
/**
* Format: int64
* @description SampleLimit defines per-scrape limit on number of scraped samples that will be accepted.
*/
sampleLimit?: number;
/** @description Configures the protocol scheme used for requests. If empty, Prometheus uses HTTP by default. */
scheme?: string;
/** @description ScrapeInterval is the interval between consecutive scrapes. */
scrapeInterval?: string;
/** @description ScrapeTimeout is the number of seconds to wait until a scrape request times out. */
scrapeTimeout?: string;
/** @description StaticConfigs defines a list of static targets with a common label set. */
staticConfigs?: {
/** @description Labels assigned to all metrics scraped from the targets. */
labels?: {
[key: string]: string;
};
/** @description List of targets for this static configuration. */
targets?: string[];
}[];
/**
* Format: int64
* @description TargetLimit defines a limit on the number of scraped targets that will be accepted.
*/
targetLimit?: number;
/** @description TLS configuration to use on every scrape request */
tlsConfig?: {
/** @description Certificate authority used when verifying server certificates. */
ca?: {
/** @description ConfigMap containing data to use for the targets. */
configMap?: {
/** @description The key to select. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the ConfigMap or its key must be defined */
optional?: boolean;
};
/** @description Secret containing data to use for the targets. */
secret?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
};
/** @description Client certificate to present when doing client-authentication. */
cert?: {
/** @description ConfigMap containing data to use for the targets. */
configMap?: {
/** @description The key to select. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the ConfigMap or its key must be defined */
optional?: boolean;
};
/** @description Secret containing data to use for the targets. */
secret?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
};
/** @description Disable target certificate validation. */
insecureSkipVerify?: boolean;
/** @description Secret containing the client key file for the targets. */
keySecret?: {
/** @description The key of the secret to select from. Must be a valid secret key. */
key: string;
/** @description Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid? */
name?: string;
/** @description Specify whether the Secret or its key must be defined */
optional?: boolean;
};
/** @description Used to verify the hostname for the targets. */
serverName?: string;
};
/** @description TrackTimestampsStaleness whether Prometheus tracks staleness of the metrics that have an explicit timestamp present in scraped data. Has no effect if `honorTimestamps` is false. It requires Prometheus >= v2.48.0. */
trackTimestampsStaleness?: boolean;
};
};
}