菜单
开源

pyroscope.write

pyroscope.write 接收来自其他组件的性能配置文件,并使用 Pyroscope 的 Push API 将它们转发到一系列用户提供的端点。

可以通过给它们不同的标签来指定多个 pyroscope.write 组件。

用法

alloy
pyroscope.write "LABEL" {
  endpoint {
    url = PYROSCOPE_URL

    ...
  }

  ...
}

参数

支持以下参数

名称类型描述默认值必需
external_labelsmap(string)要添加到通过网络发送的配置文件的标签。no

阻止

以下是定义 pyroscope.write 时支持的块

层次结构描述必需
endpointendpoint发送配置文件的地点。no
endpoint > basic_authbasic_auth为访问端点配置基本身份验证。no
endpoint > authorizationauthorization配置对端点的通用身份验证。no
endpoint > oauth2oauth2配置 OAuth2 以用作端点的身份验证。no
endpoint > oauth2 > tls_configtls_config配置连接到端点的 TLS 设置。no
endpoint > tls_configtls_config配置连接到端点的 TLS 设置。no

“>”符号表示更深的嵌套级别。例如,endpoint > basic_auth 指的是定义在 endpoint 块内的 basic_auth 块。

endpoint 块

endpoint 块描述了一个要发送配置文件的单个地点。可以通过提供多个 endpoint 块来发送配置文件到多个地点。

支持以下参数

名称类型描述默认值必需
urlstring要发送指标的全网址。yes
namestring识别端点的可选名称。no
remote_timeoutduration对网址发出的请求的超时时间。"10s"no
headersmap(string)随请求发送的额外标题。no
min_backoff_periodduration重试之间的初始回退时间。"500ms"no
max_backoff_periodduration重试之间的最大回退时间。"5m"no
max_backoff_retriesint最多重试次数。0 为无限重试。10no
bearer_token_filestring包含要用于身份验证的持有者令牌的文件。no
bearer_tokensecret用于身份验证的持有者令牌。no
enable_http2bool是否支持请求的 HTTP2。trueno
follow_redirectsbool是否应该跟随服务器返回的重定向。trueno
proxy_urlstring发送请求通过的 HTTP 代理。no
no_proxystring逗号分隔的 IP 地址、CIDR 表示法和域名列表,以排除从代理中。no
proxy_from_environmentbool使用环境变量指示的代理URL。falseno
proxy_connect_headermap(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_urlno_proxy

proxy_connect_header 应仅在配置了proxy_urlproxy_from_environment时进行配置。

当提供多个endpoint块时,配置文件将并发地转发到所有配置位置。

basic_auth 块

名称类型描述默认值必需
password_filestring包含基本认证密码的文件。no
passwordsecret基本认证密码。no
usernamestring基本认证用户名。no

passwordpassword_file 互斥,且在一个basic_auth块中只能提供其中一个。

authorization 块

名称类型描述默认值必需
credentials_filestring包含密钥值的文件。no
credentialssecret密钥值。no
typestring授权类型,例如,“Bearer”。no

credentialcredentials_file 互斥,且在一个authorization块中只能提供其中一个。

oauth2 块

名称类型描述默认值必需
client_idstringOAuth2客户端ID。no
client_secret_filestring包含OAuth2客户端密钥的文件。no
client_secretsecretOAuth2客户端密钥。no
endpoint_paramsmap(string)可选参数,用于附加到令牌URL。no
proxy_urlstring发送请求通过的 HTTP 代理。no
no_proxystring逗号分隔的 IP 地址、CIDR 表示法和域名列表,以排除从代理中。no
proxy_from_environmentbool使用环境变量指示的代理URL。falseno
proxy_connect_headermap(list(secret))指定在CONNECT请求期间发送给代理的头信息。no
scopeslist(string)认证作用域列表。no
token_urlstring提取令牌的URL。no

client_secretclient_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_urlno_proxy

proxy_connect_header 应仅在配置了proxy_urlproxy_from_environment时进行配置。

tls_config 块

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

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

  • 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)

导出字段

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

名称类型描述
receiverreceiver其他组件可以使用此值发送配置文件。

组件健康状态

pyroscope.write只有在给出无效配置时才报告为不健康。在这些情况下,导出字段保留其最后健康值。

调试信息

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

示例

alloy
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 有以下导出可以被以下组件消费

注意

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