Targets Config (v0.14.0)


| Language: |

cloudprober.targets.DNSOptions #


# DNS server to use for DNS resolution, instead of system's default. Server # can be specified in the following format: [network://]ip[:port] # where network is one of udp, tcp, tcp4, tcp6, udp4, udp6, tls. # Example: # - "1.1.1.1" // Use default network and port (53) # - "tcp://1.1.1.1" // Use tcp network and default port (53) # - "tcp://1.1.1.1:513 // Use tcp network and port 513 # - "tls://8.8.8.8" // Use tls network and default dot port (853) # - "tls://8.8.8.8:8443" // Use tls network and port 8443
server: <string>
# DNS TTL (time to live). This controls how often backend DNS server will be # queried.
ttl_sec: <int32> | default: 300
# This option controls for how long cached IP can be used in case of resolve # errors. Default value for this is set to ttl_sec. It should never be # lower than dns_ttl_sec.
max_cache_age_sec: <int32>
# Backend timeout in milliseconds. This option controls how long we'll wait # for the backend DNS server to respond. Note that DNS resolution happens # asynchronously, so DNS resolve time should never really affect the probe. # This timeout affects how soon DNS resolution is retried, if it's hanging.
backend_timeout_msec: <int32> | default: 5000

cloudprober.targets.DummyTargets #


cloudprober.targets.Endpoint #


# Endpoint name. Metrics for a target are identified by a combination of # endpoint name and port name, if specified.
name: <string>
# Optional IP address. If not specified, endpoint name is DNS resolved.
ip: <string>
# Endpoint port. If specified, this port will be used by the port-based # probes (e.g. TCP, HTTP), if probe's configuration doesn't specify a port.
port: <int32>
# HTTP probe URL. If provided, this field is used by the HTTP probe, if # probe configuration itself doesn't specify URL fields.
url: <string>
# Endpoint labels. These labels can be exported as metrics labels using the # `additional_label` field in the probe configuration.
labels: <cloudprober.targets.Endpoint.LabelsEntry>

cloudprober.targets.Endpoint.LabelsEntry #


key: <string>

value: <string>

cloudprober.targets.GlobalTargetsOptions #


# RDS server address # Deprecated: This option is now deprecated, please use rds_server_options # instead.
rds_server_address: <string>
# RDS server options, for example: # rds_server_options { # server_address: "rds-server.xyz:9314" # oauth_config: { # ... # } # }
rds_server_options: <cloudprober.rds.ClientConf.ServerOptions>
# GCE targets options.
global_gce_targets_options: <cloudprober.targets.gce.GlobalOptions>
# Lame duck options. If provided, targets module checks for the lame duck # targets and removes them from the targets list.
lame_duck_options: <cloudprober.targets.lameduck.Options>

cloudprober.targets.K8sTargets #


# Targets namespace. If this field is unset, we select resources from all # namespaces.
namespace: <string>
# labelSelector uses the same format as kubernetes API calls. # Example: # labelSelector: "k8s-app" # label k8s-app exists # labelSelector: "role=frontend" # label role=frontend # labelSelector: "!canary" # canary label doesn't exist
labelSelector: <string>
# Which resources to target. If value is not empty (""), we use it as a # regex for resource names. # Example: # services: "" // All services. # endpoints: ".*-service" // Endpoints ending with "service".
[services <string> | endpoints <string> |  ingresses <string> | pods <string>]: <oneof>
# portFilter can be used to filter resources by port name. This is useful # for resources like endpoints and services, where each resource may have # multiple ports, and we may hit just a subset of those ports. portFilter # takes a regex -- we apply it on port names if port name is available, # otherwise we apply it port numbers. # Example: ".*-dns", "metrics", ".*-service", etc.
portFilter: <string>
# How often to re-check k8s API servers. Note this field will be irrelevant # when (and if) we move to the watch API. Default is 30s.
re_eval_sec: <int32> rds_server_options: <cloudprober.rds.ClientConf.ServerOptions>

cloudprober.targets.RDSTargets #


# RDS server options, for example: # rds_server_options { # server_address: "rds-server.xyz:9314" # oauth_config: { # ... # } # }
rds_server_options: <cloudprober.rds.ClientConf.ServerOptions>
# Resource path specifies the resources to return. Resources paths have the # following format: # <resource_provider>://<resource_type>/<additional_params> # # Examples: # For GCE instances in projectA: "gcp://gce_instances/<projectA>" # Kubernetes Pods : "k8s://pods"
resource_path: <string>
# Filters to filter resources by.
filter: <cloudprober.rds.Filter>
# IP config to specify the IP address to pick for a resource.
ip_config: <cloudprober.rds.IPConfig>

cloudprober.targets.TargetsDef #


[host_names <string> | shared_targets <string> | 
 gce_targets <cloudprober.targets.gce.TargetsConf> | rds_targets <cloudprober.targets.RDSTargets> | 
 file_targets <cloudprober.targets.file.TargetsConf> | k8s <cloudprober.targets.K8sTargets> | 
 dummy_targets <cloudprober.targets.DummyTargets>]: <oneof>

# Static endpoints. These endpoints are merged with the resources returned # by the targets type above. # Example: # endpoint { # name: "service-gtwy-1" # ip: "10.1.18.121" # port: 8080 # labels { # key: "service" # value: "products-service" # } # } # endpoint { # name: "frontend-url1" # url: "https://frontend.example.com/url1" # }
endpoint: <cloudprober.targets.Endpoint>
# Regex to apply on the targets.
regex: <string>
# Exclude lameducks. Lameduck targets can be set through RTC (realtime # configurator) service. This functionality works only if lame_duck_options # are specified.
exclude_lameducks: <bool> | default: true
# Options to control DNS resolution behavior if using Cloudprober's DNS # resolver, which get triggered only if you're setting `resolve_first` probe # setting to true.
dns_options: <cloudprober.targets.DNSOptions>
# Provide a dns resolver override instead of using the default dns resolver. # Deprecated: This option is now deprecated, please use dns_options instead.
dns_server: <string>

cloudprober.targets.file.TargetsConf #


# File that contains resources in either textproto or json format. # Example in textproto format: # # resource { # name: "switch-xx-01" # ip: "10.11.112.3" # port: 8080 # labels { # key: "device_type" # value: "switch" # } # } # resource { # name: "switch-yy-01" # ip: "10.16.110.12" # port: 8080 # }
file_path: <string> filter: <cloudprober.rds.Filter> format: (UNSPECIFIED|TEXTPB|JSON|YAML): <enum>
# If specified, file will be re-read at the given interval.
re_eval_sec: <int32>

cloudprober.targets.gce.ForwardingRules #


# Important: if multiple probes use forwarding_rules targets, only the # settings in the definition will take effect. # TODO(manugarg): Fix this behavior. # # For regional forwarding rules, regions to return forwarding rules for. # Default is to return forwarding rules from the region that the VM is # running in. To return forwarding rules from all regions, specify region as # "all".
region: <string>
# For global forwarding rules, if it is set to true, it will ignore # the value for the above region property.
global_rule: <bool> | default: false

cloudprober.targets.gce.GlobalOptions #


# How often targets should be evaluated/expanded
re_eval_sec: <int32> | default: 900
# Compute API version.
api_version: <string> | default: v1

cloudprober.targets.gce.Instances #


# Use DNS to resolve target names (instances). If set to false (default), # IP addresses specified in the compute.Instance resource is used. If set # to true all the other resolving options are ignored.
use_dns_to_resolve: <bool> | default: false network_interface: <cloudprober.targets.gce.Instances.NetworkInterface>
# Labels to filter instances by ("key:value-regex" format).
label: <string>

cloudprober.targets.gce.Instances.NetworkInterface #


index: <int32> | default: 0

ip_type: (PRIVATE|PUBLIC|ALIAS): <enum>

cloudprober.targets.gce.TargetsConf #


# If running on GCE, this defaults to the local project. # Note: Multiple projects support in targets is experimental and may go away # with future iterations.
project: <string> [instances <cloudprober.targets.gce.Instances> | forwarding_rules <cloudprober.targets.gce.ForwardingRules>]: <oneof>

cloudprober.targets.lameduck.Options #


# How often to check for lame-ducked targets
re_eval_sec: <int32> | default: 10
# Runtime config project. If running on GCE, this defaults to the project # containing the VM.
runtimeconfig_project: <string>
# Lame duck targets runtime config name. An operator will create a variable # here to mark a target as lame-ducked.
runtimeconfig_name: <string> | default: lame-duck-targets
# Lame duck targets pubsub topic name. An operator will create a message # here to mark a target as lame-ducked.
pubsub_topic: <string>
# Lame duck expiration time. We ignore variables (targets) that have been # updated more than these many seconds ago. This is a safety mechanism for # failing to cleanup. Also, the idea is that if a target has actually # disappeared, automatic targets expansion will take care of that some time # during this expiration period.
expiration_sec: <int32> | default: 300
# Use an RDS client to get lame-duck-targets. # This option is always true now and will be removed after v0.10.7.
use_rds: <bool>
# RDS server options, for example: # rds_server_options { # server_address: "rds-server.xyz:9314" # oauth_config: { # ... # }
rds_server_options: <cloudprober.rds.ClientConf.ServerOptions>