Armazenamento externo

Como alterar o destino de armazenamento padrão das suas gravações.

Armazenamento externo

As gravações de sessões do OpenReplay são armazenadas por padrão na sua instância, mas o destino pode ser alterado para qualquer serviço de armazenamento de objetos compatível com S3, o que permite maior escalabilidade e menores custos de implantação.

Alterar o destino de armazenamento das gravações

Section titled Alterar o destino de armazenamento das gravações

As gravações podem ser persistidas em qualquer destino de armazenamento de objetos, desde que seja compatível com S3, o que torna o OpenReplay compatível com todos os principais serviços de nuvem pública. Abaixo estão os passos para configurar um destino diferente para as suas gravações:

Você deve criar os buckets abaixo no seu serviço de armazenamento de objetos. Os nomes podem ser diferentes, mas usaremos as referências abaixo no restante desta seção:

  • openreplay-recordings: onde as gravações serão persistidas
  • openreplay-assets: onde os assets (como css e fontes) serão copiados
  • openreplay-sourcemaps: para armazenar source maps (veja como fazer o upload deles)
  • openreplay-spots: para armazenar as gravações do Spot

Depois que os buckets forem criados:

  1. Habilite o CORS para cada um dos buckets acima. Se você estiver na AWS, isso fica em ‘Permissions > Cross-origin resource sharing (CORS)’, usando a seguinte configuração:
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": []
    }
]
  1. Habilite o acesso público somente ao bucket openreplay-assets. Este último contém apenas folhas de estilo, ícones e fontes necessários para o session replay funcionar corretamente. Se você estiver na AWS, primeiro acesse ‘Permissions > Block public access (bucket settings)’ e desative essa opção; depois, vá em ‘Permissions > Bucket policy’ e use a seguinte configuração:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AddPerm",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::openreplay-assets/*"
        }
    ]
}
  1. Por fim, gere as chaves de acesso adequadas somente para estes 4 buckets, para que o backend do OpenReplay possa acessá-los programaticamente e fazer upload de arquivos. As permissões S3 necessárias são:
"s3:PutObject",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:GetObjectTagging",
"s3:ListBucket",
"s3:PutObjectTagging",
"s3:GetBucketLocation"

Atualizar os serviços de backend

Section titled Atualizar os serviços de backend
  1. Faça login na sua instância do OpenReplay e execute openreplay -e para atualizar as variáveis de ambiente abaixo na seção s3:
VariávelDescrição
accessKeyA chave de acesso do seu armazenamento de objetos (o seu IAM access key ID se você estiver na AWS; no Google Cloud, seria a sua chave HMAC para conta de serviço)
secretKeyO segredo do seu armazenamento de objetos
endpointA URL (começando com https) do seu serviço de armazenamento de objetos (por exemplo, consulte a lista de endpoints do S3 se você estiver na AWS; no Google Cloud Storage, seria https://storage.googleapis.com)
regionA região (se aplicável) dos seus buckets (por exemplo, se você estiver usando o AWS S3, algo como us-east-1)
assetsBucketO nome do bucket de assets (por exemplo, openreplay-assets)
recordingsBucketO nome do bucket de gravações (por exemplo, openreplay-recordings)
sourcemapsBucketO nome do bucket de sourcemaps (por exemplo, openreplay-sourcemaps)
spotsBucketO nome do bucket de spots (por exemplo, openreplay-spots)
  1. Salve e saia usando :wq para que as alterações entrem em vigor

As sessões gravadas a partir de agora devem ser armazenadas e recuperadas (ao serem reproduzidas) a partir do seu novo destino/serviço de armazenamento de objetos.

Em caso de qualquer problema, conecte-se ao nosso Slack e peça ajuda à nossa comunidade.