pyroscope.write
pyroscope.write
接收来自其他组件的性能配置文件,并使用 Pyroscope 的 Push API 将它们转发到一系列用户提供的端点。
可以通过给它们不同的标签来指定多个 pyroscope.write
组件。
用法
pyroscope.write "LABEL" {
endpoint {
url = PYROSCOPE_URL
...
}
...
}
参数
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
external_labels | map(string) | 要添加到通过网络发送的配置文件的标签。 | no |
阻止
以下是定义 pyroscope.write
时支持的块
层次结构 | 块 | 描述 | 必需 |
---|---|---|---|
endpoint | endpoint | 发送配置文件的地点。 | no |
endpoint > basic_auth | basic_auth | 为访问端点配置基本身份验证。 | no |
endpoint > authorization | authorization | 配置对端点的通用身份验证。 | no |
endpoint > oauth2 | oauth2 | 配置 OAuth2 以用作端点的身份验证。 | no |
endpoint > oauth2 > tls_config | tls_config | 配置连接到端点的 TLS 设置。 | no |
endpoint > tls_config | tls_config | 配置连接到端点的 TLS 设置。 | no |
“>”符号表示更深的嵌套级别。例如,endpoint > basic_auth
指的是定义在 endpoint
块内的 basic_auth
块。
endpoint 块
该 endpoint
块描述了一个要发送配置文件的单个地点。可以通过提供多个 endpoint
块来发送配置文件到多个地点。
支持以下参数
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
url | string | 要发送指标的全网址。 | yes | |
name | string | 识别端点的可选名称。 | no | |
remote_timeout | duration | 对网址发出的请求的超时时间。 | "10s" | no |
headers | map(string) | 随请求发送的额外标题。 | no | |
min_backoff_period | duration | 重试之间的初始回退时间。 | "500ms" | no |
max_backoff_period | duration | 重试之间的最大回退时间。 | "5m" | no |
max_backoff_retries | int | 最多重试次数。0 为无限重试。 | 10 | no |
bearer_token_file | string | 包含要用于身份验证的持有者令牌的文件。 | no | |
bearer_token | secret | 用于身份验证的持有者令牌。 | no | |
enable_http2 | bool | 是否支持请求的 HTTP2。 | true | no |
follow_redirects | bool | 是否应该跟随服务器返回的重定向。 | true | 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 |
以下选项最多只能提供一个
no_proxy
可以包含IP、CIDR表示法和域名。IP和域名可以包含端口号。如果配置了no_proxy
,则必须配置proxy_url
。
proxy_from_environment
使用环境变量HTTP_PROXY、HTTPS_PROXY和NO_PROXY(或其小写版本)。除非NO_PROXY排除,否则请求使用与其方案匹配的环境变量中的代理。如果配置了proxy_from_environment
,则不得配置proxy_url
和no_proxy
。
proxy_connect_header
应仅在配置了proxy_url
或proxy_from_environment
时进行配置。
当提供多个endpoint
块时,配置文件将并发地转发到所有配置位置。
basic_auth 块
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
password_file | string | 包含基本认证密码的文件。 | no | |
password | secret | 基本认证密码。 | no | |
username | string | 基本认证用户名。 | no |
password
和 password_file
互斥,且在一个basic_auth
块中只能提供其中一个。
authorization 块
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
credentials_file | string | 包含密钥值的文件。 | no | |
credentials | secret | 密钥值。 | no | |
type | string | 授权类型,例如,“Bearer”。 | no |
credential
和 credentials_file
互斥,且在一个authorization
块中只能提供其中一个。
oauth2 块
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
client_id | string | OAuth2客户端ID。 | no | |
client_secret_file | string | 包含OAuth2客户端密钥的文件。 | no | |
client_secret | secret | OAuth2客户端密钥。 | no | |
endpoint_params | map(string) | 可选参数,用于附加到令牌URL。 | 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 | |
scopes | list(string) | 认证作用域列表。 | no | |
token_url | string | 提取令牌的URL。 | no |
client_secret
和 client_secret_file
互斥,且在一个oauth2
块中只能提供其中一个。
oauth2
块还可以包含单独的tls_config
子块。
no_proxy
可以包含IP、CIDR表示法和域名。IP和域名可以包含端口号。如果配置了no_proxy
,则必须配置proxy_url
。
proxy_from_environment
使用环境变量HTTP_PROXY、HTTPS_PROXY和NO_PROXY(或其小写版本)。除非NO_PROXY排除,否则请求使用与其方案匹配的环境变量中的代理。如果配置了proxy_from_environment
,则不得配置proxy_url
和no_proxy
。
proxy_connect_header
应仅在配置了proxy_url
或proxy_from_environment
时进行配置。
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)
导出字段
以下字段是导出的,可以被其他组件引用
名称 | 类型 | 描述 |
---|---|---|
receiver | receiver | 其他组件可以使用此值发送配置文件。 |
组件健康状态
pyroscope.write
只有在给出无效配置时才报告为不健康。在这些情况下,导出字段保留其最后健康值。
调试信息
pyroscope.write
不公开任何特定组件的调试信息。
示例
pyroscope.write "staging" {
// Send metrics to a locally running Pyroscope instance.
endpoint {
url = "http://pyroscope:4040"
headers = {
"X-Scope-OrgID" = "squad-1",
}
}
external_labels = {
"env" = "staging",
}
}
pyroscope.scrape "default" {
targets = [
{"__address__" = "pyroscope:4040", "service_name"="pyroscope"},
{"__address__" = "alloy:12345", "service_name"="alloy"},
]
forward_to = [pyroscope.write.staging.receiver]
}
兼容组件
pyroscope.write
有以下导出可以被以下组件消费
注意
连接某些组件可能不合理,或组件可能需要进一步的配置才能正确连接。请参阅相关文档以获取更多详细信息。