菜单
开源

配置对象存储后端

Grafana Pyroscope 可以使用不同的对象存储服务来持久化包含配置文件数据的块。块首先由 Ingesters 刷写到磁盘,然后再上传到对象存储。

支持的后端有

在内部,Pyroscope 使用 Thanos 的对象存储客户端库,因此其声明的限制适用。

Amazon S3

要使用 AWS S3 或 S3 兼容的存储桶进行长期存储,您可以在参考配置中找到 Pyroscope 的配置参数。除了这些参数之外,还可以使用 AWS SDK众所周知的环境变量来提供配置参数。

至少需要提供 bucket_nameendpointaccess_key_idsecret_access_key 的值。

使用 AWS 存储桶的示例

下面是如何在 AWS 区域 eu-west-2 配置存储桶

yaml
storage:
  backend: s3
  s3:
    bucket_name: #REPLACE_WITH_BUCKET_NAME
    region: eu-west-2
    endpoint: s3.eu-west-2.amazonaws.com
    access_key_id: #REPLACE_WITH_ACCESS_KEY
    secret_access_key: #REPLACE_WITH_SECRET_KEY

使用 S3 兼容存储桶的示例

下面是如何在本地运行的 MinIO 实例上配置存储桶

yaml
storage:
  backend: s3
  s3:
    bucket_name: grafana-pyroscope-data
    endpoint: localhost:9000
    insecure: true
    access_key_id: grafana-pyroscope-data
    secret_access_key: grafana-pyroscope-data

Google Cloud Storage

要使用 Google Cloud Storage (GCS) 存储桶进行长期存储,您可以在参考配置中找到 Pyroscope 的配置参数。

至少需要提供 bucket_name 的值和一个服务账户。有两种方式提供服务账户

  • 使用 GOOGLE_APPLICATION_CREDENTIALS 环境变量定位您的应用凭据
  • service_account 参数中提供服务账户密钥的内容。

使用 Google Cloud Storage 存储桶的示例

下面是如何使用 service_account 参数配置 GCS 存储桶

yaml
storage:
  backend: gcs
  gcs:
    bucket_name: grafana-pyroscope-data
    service_account: |
      {
        "type": "service_account",
        "project_id": "PROJECT_ID",
        "private_key_id": "KEY_ID",
        "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n",
        "client_email": "SERVICE_ACCOUNT_EMAIL",
        "client_id": "CLIENT_ID",
        "auth_uri": "https://#/o/oauth2/auth",
        "token_uri": "https://#/o/oauth2/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL"
      }

Azure Blob Storage

要使用 Azure Blob Storage 存储桶进行长期存储,您可以在参考配置中找到 Pyroscope 的配置参数。

如果使用 user_assigned_id,则通过用户分配的托管身份进行身份验证。

Swift (OpenStack 对象存储)

要使用 Swift (OpenStack 对象存储) 存储桶进行长期存储,您可以在参考配置中找到 Pyroscope 的配置参数。

如果使用用户、项目或租户的 name,还必须通过 ID 或名称指定其域。OpenStack 身份验证的各种示例可以在官方文档中找到。