Project: Grafana Pyroscope (Observability and Analysis / Observability)
File: configure-object-storage-backend.md

title: "Configure Pyroscope object storage backend" menuTitle: "Configure object storage" description: "Learn how to configure Pyroscope to use different object storage backend implementations." weight: 40 aliases: /docs/phlare/latest/configure-server/configure-object-storage-backend/ Pyroscope can use different object storage services to persist blocks containing the profiles data. Blocks are flushed by ingesters first then are uploaded to the object store. The supported backends are: (and compatible implementations like ) Internally, Pyroscope uses [Thanos' object store client] library, so their stated limitations apply. To use an AWS S3 or S3-compatible bucket for long term storage, you can find Pyroscope's configuration parameters . Apart from those parameters, it is also possible to supply configuration parameters using of the AWS SDK. At a minimum, you will need to provide a values for the `bucketname`, `endpoint`, `accesskeyid`, and `secretaccess_key` keys. This how one would configure a bucket in the AWS region `eu-west-2`: ```yaml storage: backend: s3 s3: bucketname: #REPLACEWITHBUCKETNAME region: eu-west-2 endpoint: s3.eu-west-2.amazonaws.com accesskeyid: #REPLACEWITHACCESS_KEY secretaccesskey: #REPLACEWITHSECRET_KEY ``` This how one would configure a bucket on a locally running instance of [MinIO]: ```yaml storage: backend: s3 s3: bucket_name: grafana-pyroscope-data endpoint: localhost:9000 insecure: true accesskeyid: grafana-pyroscope-data secretaccesskey: grafana-pyroscope-data ``` To use a Google Cloud Storage (GCS) bucket for long term storage, you can find Pyroscope's configuration parameters . At a minimum, you will need to provide a values for the `bucket_name` and a service account. To supply the service account there are two ways: Use the `GOOGLEAPPLICATIONCREDENTIALS` environment variable to locate your . Provide the content the service account key within the `service_account` parameter. This how one would configure a GCS bucket using the `service_account` parameter: ```yaml storage: backend: gcs gcs: bucket_name: grafana-pyroscope-data service_account: | { "type": "service_account", "projectid": "PROJECTID", "privatekeyid": "KEY_ID", "privatekey": "--BEGIN PRIVATE KEY--\nPRIVATEKEY\n--END PRIVATE KEY--\n", "clientemail": "SERVICEACCOUNT_EMAIL", "clientid": "CLIENTID", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token", "authproviderx509certurl": "https://www.googleapis.com/oauth2/v1/certs", "clientx509certurl": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICEACCOUNT_EMAIL" } ``` To use an Azure Blob Storage bucket for long term storage, you can find Pyroscope's configuration parameters . If `userassignedid` is used, authentication is done via user-assigned managed identity. To use a Swift (OpenStack Object Storage) bucket for long term storage, you can find Pyroscope's configuration parameters . If the `name` of a user, project or tenant is used one must also specify its domain by ID or name. Various examples for OpenStack authentication can be found in the .