Descrição do Problema
Alguns diários oficiais estão falando ao serem processados devido a erro HTTP 413 (Request Entity Too Large) durante a indexação no OpenSearch.
Exemplo de Erro
Failed to process gazette 508688: 5300108/2023-12-27/887e185a5c5c45d145ed17869d88bc6e627e4fa5.pdf
(territory: 5300108, date: 2023-12-27, checksum: beffd3c451eba534f8643a78181423a9).
Error: TransportError: TransportError(413, '')
Possíveis Causas
O erro 413 indica que o tamanho da requisição excede algum limite configurado. As causas mais prováveis são:
- Documento indexado muito grande: O conteúdo extraído do PDF excede o limite de tamanho do documento
- Limite do OpenSearch: Configuração
http.max_content_length (padrão: 100MB)
- Limite de proxy/load balancer: Se houver Nginx, ALB ou outro proxy na frente, pode ter limite menor
- Texto extraído muito extenso: PDFs com muitas páginas ou com OCR podem gerar textos muito longos
Investigação Necessária
Possíveis Soluções
-
Aumentar limite no OpenSearch:
# opensearch.yml
http.max_content_length: 200mb
-
Aumentar limite em proxies (se aplicável):
# nginx.conf
client_max_body_size 200m;
-
Implementar chunking: Dividir documentos muito grandes em partes menores
-
Truncar conteúdo: Limitar o tamanho do texto indexado (menos ideal, pode perder informações)
-
Compressão: Habilitar compressão de requisições HTTP no cliente OpenSearch
Contexto
O código atual já faz retry com exponential backoff (3 tentativas) e loga o tamanho dos documentos. O log está em index/opensearch.py linhas 139-146.
Arquivos Relacionados
index/opensearch.py - Implementação da indexação
monitoring/ - Logs de operações e erros do OpenSearch
Labels Sugeridas
- bug
- opensearch
- infrastructure
Descrição do Problema
Alguns diários oficiais estão falando ao serem processados devido a erro HTTP 413 (Request Entity Too Large) durante a indexação no OpenSearch.
Exemplo de Erro
Possíveis Causas
O erro 413 indica que o tamanho da requisição excede algum limite configurado. As causas mais prováveis são:
http.max_content_length(padrão: 100MB)Investigação Necessária
http.max_content_lengthno OpenSearchdocument_size(já logado no código)Possíveis Soluções
Aumentar limite no OpenSearch:
Aumentar limite em proxies (se aplicável):
Implementar chunking: Dividir documentos muito grandes em partes menores
Truncar conteúdo: Limitar o tamanho do texto indexado (menos ideal, pode perder informações)
Compressão: Habilitar compressão de requisições HTTP no cliente OpenSearch
Contexto
O código atual já faz retry com exponential backoff (3 tentativas) e loga o tamanho dos documentos. O log está em
index/opensearch.pylinhas 139-146.Arquivos Relacionados
index/opensearch.py- Implementação da indexaçãomonitoring/- Logs de operações e erros do OpenSearchLabels Sugeridas