菜单
开源

发现Triton

discovery.triton发现Triton容器监控并将其作为目标公开。

用法

alloy
discovery.triton "LABEL" {
	account    = ACCOUNT
	dns_suffix = DNS_SUFFIX
	endpoint   = ENDPOINT
}

参数

以下参数受支持

名称类型描述默认值必填
accountstring用于发现新目标的帐户。
rolestring要发现的类型的目标。"container"
dns_suffixstring应用到的目标DNS后缀。
endpointstringTriton发现端点。
groupslist(string)要获取目标的分组列表。
portint用于发现和指标抓取的端口号。9163
refresh_intervalduration目标的列表刷新间隔。60s
versionintTriton发现API版本。1

role可以设置为

  • "container"以发现运行在Triton上虚拟机(SmartOS区域、lx/KVM/bhyve品牌区域)
  • "cn"以发现组成Triton基础设施的计算节点(服务器/全局区域)

groups仅在role设置为"container"时受支持。如果省略,则抓取请求帐户的所有容器。

以下块在discovery.triton定义内部受支持

层次结构描述必填
tls_configtls_config对Triton API请求的TLS配置。

tls_config块

名称类型描述默认值必填
ca_pemstring用于验证服务器的CA PEM编码文本。
ca_filestring用于验证服务器的CA证书。
cert_pemstring用于客户端认证的证书PEM编码文本。
cert_filestring用于客户端认证的证书文件。
insecure_skip_verifybool禁用服务器证书的验证。
key_filestring用于客户端认证的密钥文件。
key_pemsecret客户端认证的密钥PEM编码文本。
min_versionstring可接受的最低TLS版本。
server_namestring表示服务器名称的服务器名称扩展。

以下参数对互相排斥,不能同时设置

  • ca_pemca_file
  • cert_pemcert_file
  • key_pemkey_file

配置客户端认证时,必须提供客户端证书(使用 cert_pemcert_file)和客户端密钥(使用 key_pemkey_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)

导出字段

以下字段是导出的,可以由其他组件引用

名称类型描述
targetslist(map(string))从Triton API发现的集合的目标。

role 设置为 "container" 时,每个目标包括以下标签

  • __meta_triton_groups:通过逗号分隔符连接的目标所属组列表。
  • __meta_triton_machine_alias:目标容器的别名。
  • __meta_triton_machine_brand:目标容器的品牌。
  • __meta_triton_machine_id:目标容器的UUID。
  • __meta_triton_machine_image:目标容器的镜像类型。
  • __meta_triton_server_id:目标容器正在运行的服务器UUID。

role 设置为 "cn" 时,每个目标包括以下标签

  • __meta_triton_machine_alias:目标的主机名(需要triton-cmon 1.7.0或更高版本)。
  • __meta_triton_machine_id:目标的UUID。

组件健康

discovery.triton 只有在提供无效配置时才报告为不健康。在这种情况下,导出字段保留其最后健康值。

调试信息

discovery.triton 不公开任何特定组件的调试信息。

调试度量

discovery.triton 不公开任何特定组件的调试度量。

示例

alloy
discovery.triton "example" {
	account    = TRITON_ACCOUNT
	dns_suffix = TRITON_DNS_SUFFIX
	endpoint   = TRITON_ENDPOINT
}

prometheus.scrape "demo" {
	targets    = discovery.triton.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
		}
	}
}

替换以下

  • TRITON_ACCOUNT:您的Triton账户。
  • TRITON_DNS_SUFFIX:您的Triton DNS后缀。
  • TRITON_ENDPOINT:您的Triton端点。
  • PROMETHEUS_REMOTE_WRITE_URL:要将度量发送到的Prometheus remote_write兼容服务器的URL。
  • USERNAME:用于对远程_write API进行认证的用户名。
  • PASSWORD:用于对远程_write API进行认证的密码。

兼容组件

discovery.triton 具有以下组件可以使用的导出

注意

连接某些组件可能不合理,或者组件可能需要进一步配置才能正确连接。有关更多详细信息,请参阅链接文档。