发现 scaleway
discovery.scaleway
发现来自 Scaleway 实例 和 裸金属服务 的目标。
用法
discovery.scaleway "LABEL" {
project_id = "SCALEWAY_PROJECT_ID"
role = "SCALEWAY_PROJECT_ROLE"
access_key = "SCALEWAY_ACCESS_KEY"
secret_key = "SCALEWAY_SECRET_KEY"
}
参数
支持以下参数
名称 | 类型 | 描述 | 默认 | 必需 |
---|---|---|---|---|
project_id | string | 目标 Scaleway 项目 ID。 | yes | |
role | string | 要检索的目标的角色。 | yes | |
api_url | string | Scaleway API URL。 | "https://api.scaleway.com" | no |
zone | string | 目标可用区。 | "fr-par-1" | no |
access_key | string | Scaleway API 的访问密钥。 | yes | |
secret_key | secret | Scaleway API 的密钥。 | conditional | |
secret_key_file | string | 包含 Scaleway API 密钥的文件的路径。 | conditional | |
name_filter | string | 应用在列表请求上的名称过滤器。 | no | |
tags_filter | list(string) | 要搜索的标签列表。 | no | |
refresh_interval | duration | 重新发现目标的时间频率。 | "60s" | no |
port | number | 与生成的目标关联的默认端口。 | 80 | no |
proxy_url | string | 通过其发送请求的 HTTP 代理。 | no | |
no_proxy | string | 逗号分隔的 IP 地址、CIDR 表示法和域名列表,排除代理。 | no | |
proxy_from_environment | bool | 使用环境变量指示的代理 URL。 | false | no |
proxy_connect_header | map(list(secret)) | 指定在CONNECT请求期间发送到代理的头部。 | no | |
follow_redirects | bool | 是否应遵循服务器返回的重定向。 | true | no |
enable_http2 | bool | 是否支持请求的HTTP2。 | true | no |
role
参数确定要发现的Scaleway机器的类型。它必须设置为以下之一
可以使用name_filter
和tags_filter
参数来过滤发现的服务器集。name_filter
返回与特定名称匹配的机器,而tags_filter
返回包含所有tags_filter
参数中列出的标签的机器。
no_proxy
可以包含IP、CIDR表示法和域名。IP和域名可以包含端口号。proxy_url
必须在配置了no_proxy
的情况下进行配置。
proxy_from_environment
使用环境变量HTTP_PROXY、HTTPS_PROXY和NO_PROXY(或它们的低版本)。请求使用与其方案匹配的环境变量中的代理,除非被NO_PROXY排除。proxy_url
和no_proxy
必须在配置了proxy_from_environment
的情况下不进行配置。
仅在配置了proxy_url
或proxy_from_environment
的情况下才应配置proxy_connect_header
。
块
以下块在discovery.scaleway
的定义内受支持
层次结构 | 块 | 描述 | 必需 |
---|---|---|---|
tls_config | tls_config | 配置连接到端点的TLS设置。 | no |
>
符号表示更深的嵌套级别。例如,oauth2 > tls_config
指的是在oauth2
块内定义的tls_config
块。
tls_config块
名称 | 类型 | 描述 | 默认 | 必需 |
---|---|---|---|---|
ca_pem | string | 用于验证服务器的CA PEM编码文本。 | no | |
ca_file | string | 用于验证服务器的CA证书。 | no | |
cert_pem | string | 用于客户端认证的证书PEM编码文本。 | no | |
cert_file | string | 用于客户端认证的证书文件。 | no | |
insecure_skip_verify | bool | 禁用服务器证书的验证。 | no | |
key_file | string | 用于客户端认证的密钥文件。 | no | |
key_pem | secret | 用于客户端认证的密钥PEM编码文本。 | no | |
min_version | string | 可接受的最小TLS版本。 | no | |
server_name | string | ServerName扩展以指示服务器名称。 | no |
以下参数对相互排斥,不能同时设置
ca_pem
和ca_file
cert_pem
和cert_file
key_pem
和key_file
在配置客户端认证时,必须提供客户端证书(使用cert_pem
或cert_file
)和客户端密钥(使用key_pem
或key_file
)。
如果没有提供min_version
,则可接受的最小TLS版本继承自Go的默认最小版本,TLS 1.2。如果提供了min_version
,则它必须设置为以下字符串之一
"TLS10"
(TLS 1.0)"TLS11"
(TLS 1.1)"TLS12"
(TLS 1.2)"TLS13"
(TLS 1.3)
导出字段
以下字段被导出,并且可以被其他组件引用
名称 | 类型 | 描述 |
---|---|---|
targets | list(map(string)) | 从Consul目录API发现的目标集合。 |
当role
为baremetal
时,发现的目标包括以下标签
__meta_scaleway_baremetal_id
:服务器的ID。__meta_scaleway_baremetal_public_ipv4
:服务器的公共IPv4地址。__meta_scaleway_baremetal_public_ipv6
:服务器的公共IPv6地址。__meta_scaleway_baremetal_name
:服务器的名称。__meta_scaleway_baremetal_os_name
:服务器的操作系统名称。__meta_scaleway_baremetal_os_version
:服务器的操作系统版本。__meta_scaleway_baremetal_project_id
:服务器所属的项目ID。__meta_scaleway_baremetal_status
:服务器的当前状态。__meta_scaleway_baremetal_tags
:与服务器关联的标签列表,以逗号连接。__meta_scaleway_baremetal_type
:服务器的商业类型。__meta_scaleway_baremetal_zone
:服务器的可用区。
当role
为instance
时,发现的目标包括以下标签
__meta_scaleway_instance_boot_type
:服务器的启动类型。__meta_scaleway_instance_hostname
:服务器的主机名。__meta_scaleway_instance_id
:服务器的ID。__meta_scaleway_instance_image_arch
:服务器正在运行的镜像的架构。__meta_scaleway_instance_image_id
:服务器正在运行的镜像的ID。__meta_scaleway_instance_image_name
:服务器正在运行的镜像的名称。__meta_scaleway_instance_location_cluster_id
:服务器位置所在集群的ID。__meta_scaleway_instance_location_hypervisor_id
:服务器位置所在虚拟化软件的ID。__meta_scaleway_instance_location_node_id
:服务器位置所在节点的ID。__meta_scaleway_instance_name
:服务器的名称。__meta_scaleway_instance_organization_id
:服务器所属的组织ID。__meta_scaleway_instance_private_ipv4
:服务器的私有IPv4地址。__meta_scaleway_instance_project_id
:服务器所属的项目ID。__meta_scaleway_instance_public_ipv4
:服务器的公共IPv4地址。__meta_scaleway_instance_public_ipv6
:服务器的公共IPv6地址。__meta_scaleway_instance_region
:服务器的区域。__meta_scaleway_instance_security_group_id
:服务器分配的安全组的ID。__meta_scaleway_instance_security_group_name
:服务器分配的安全组的名称。__meta_scaleway_instance_status
:服务器的当前状态。__meta_scaleway_instance_tags
:与服务器关联的标签列表,以逗号连接。__meta_scaleway_instance_type
:服务器的商业类型。__meta_scaleway_instance_zone
:服务器的可用区。
组件健康
discovery.scaleway
仅在配置无效时报告为不健康。在这些情况下,导出的字段保留其最后的健康值。
调试信息
discovery.scaleway
不公开任何特定于组件的调试信息。
调试指标
discovery.scaleway
不公开任何特定于组件的调试指标。
示例
discovery.scaleway "example" {
project_id = "SCALEWAY_PROJECT_ID"
role = "SCALEWAY_PROJECT_ROLE"
access_key = "SCALEWAY_ACCESS_KEY"
secret_key = "SCALEWAY_SECRET_KEY"
}
prometheus.scrape "demo" {
targets = discovery.scaleway.example.targets
forward_to = [prometheus.remote_write.demo.receiver]
}
prometheus.remote_write "demo" {
endpoint {
url = PROMETHEUS_REMOTE_WRITE_URL
basic_auth {
username = USERNAME
password = PASSWORD
}
}
}
替换以下内容
SCALEWAY_PROJECT_ID
:您的Scaleway机器的项目ID。SCALEWAY_PROJECT_ROLE
:设置为baremetal
以发现裸金属服务器,或设置为instance
以发现虚拟实例。SCALEWAY_ACCESS_KEY
:您的Scaleway API访问密钥。SCALEWAY_SECRET_KEY
:您的Scaleway API秘密密钥。PROMETHEUS_REMOTE_WRITE_URL
:要发送指标的Prometheus remote_write兼容服务器的URL。USERNAME
:用于对远程_write API进行身份验证的用户名。PASSWORD
:用于对远程_write API进行身份验证的密码。
兼容组件
discovery.scaleway
导出的内容可以被以下组件消费
- 消费目标的组件
注意
连接某些组件可能不合理,或者组件可能需要进一步配置才能正确连接。请参阅相关文档以获取更多详细信息。