Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request timeout no endpoint deputados/{id}/discursos #354

Open
felipelmc opened this issue Sep 16, 2024 · 15 comments
Open

Request timeout no endpoint deputados/{id}/discursos #354

felipelmc opened this issue Sep 16, 2024 · 15 comments
Labels

Comments

@felipelmc
Copy link

Caros, estou extraindo os discursos de deputados federais usando a API de dados abertos mas o endpoint de discursos retorna request timeout para todas as minhas requisições. Fiz uma série de testes no "Try out" da página, além de requests via Python, mas o resultado é sempre o mesmo.

Captura de tela 2024-09-16 115806

image

O código que estou usando para fazer a extração dos dados está aqui: https://github.com/felipelmc/PoliSpeechBR/blob/main/extract_speeches.ipynb

@EquipeDadosAbertosCD
Copy link
Member

EquipeDadosAbertosCD commented Sep 17, 2024

Olá, Felipe!

Acredito que pode ter havido um problema temporário em um proxy intermediário da nossa rede. Não consegui reproduzir o problema, usando os mesmos ou diferentes parâmetros de tempo. Por favor avise se você ainda estiver tendo o problema: caso prefira, pode escrever para [email protected] , e informe se possível o IP e o user agent usados pela sua aplicação para que consigamos procurar dados nos sistemas de monitoramento da nossa infraestrutura.

Quanto ao código, eu lhe sugeriria incluir um delay de 200ms, com uma chamada a sleep(), entre as requisições. Sem isso, você provavelmente vai receber erros 429 ("too many requests") com frequência. Você também pode economizar requisições se aumentar o número de itens retornados a cada requisição (com itens=50, por exemplo) e, em vez de buscar novas páginas por um loop que verifica se a resposta veio vazia, você pode simplesmente buscar novas páginas enquanto houver uma URL com rel=next na seção links das respostas.

Obrigado pelo interesse no Dados Abertos e grande abraço!

Fabricio Rocha
Equipe Dados Abertos - Câmara

@felipelmc
Copy link
Author

Muito obrigado pela pronta resposta, Fabricio! Infelizmente continuo tendo o mesmo problema. Vou escrever para o e-mail indicado.

No mais, obrigado pelas sugestões em relação ao código! Não tinha me atentado para essa maneira de buscar novas páginas.

Grande abraço!

@paulopha
Copy link

Bom dia Pessoal !
Mesmo problema por aqui.

image

Estou em um processo que busca ingestionar os dados de forma diaria.
Nessa situação sei que o erro começou a surgir no dia a partir do dia 30-08.

Conseguem ajudar ?

@EquipeDadosAbertosCD
Copy link
Member

Olá, pessoal.

Vocês podem por favor testar se a situação foi normalizada?

Obrigado e abraços!

Fabricio Rocha
Equipe Dados Abertos - Câmara

@felipelmc
Copy link
Author

Oi, Fabricio! Fiz alguns testes no próprio site e programaticamente e parece estar funcionando perfeitamente. Muito obrigado!

@paulopha
Copy link

Boa Tarde Fabricio!

Problema ainda persiste por aqui.

image
image

curl -X 'GET' \
  'https://dadosabertos.camara.leg.br/api/v2/deputados/220588/discursos?dataInicio=2024-08-16&ordenarPor=dataHoraInicio&ordem=ASC&itens=50' \
  -H 'accept: application/json'

Consegue auxiliar ?

@felipelmc
Copy link
Author

De fato, @paulopha, testei esse id aqui e também não funcionou

@EquipeDadosAbertosCD
Copy link
Member

Salve, pessoal.

Estamos detectando que o limite de acessos à base de discursos estão sendo atingidos muito rapidamente. É possível que alguma aplicação esteja bombardeando da API de requisições.

Sugerimos que entre cada requisição seja inserido um atraso de 200ms, para evitar a sobrecarga no servidor e assim permitir que todos os usuários sejam atendidos. Vamos verificar também se podemos aumentar a velocidade de resposta deste endpoint, mas isso não é algo que podemos resolver de imediato.

Enquanto isso, peço desculpas e a compreensão de todos, e agradeço por alertarem sobre o problema.

Fabricio Rocha
Equipe Dados Abertos - Câmara

@paulopha
Copy link

Bom dia Fabricio.

Como tal falha impossibilida a obtenção de informação, e não sabemos quem são os clientes alem de nos mesmos que podem estar a agredir o endpoint.

Sabe me dizer se existe outra forma, paleativa, de obtenção dos dados em questão ?

@EquipeDadosAbertosCD
Copy link
Member

Salve, @paulopha .

Ainda não há. Temos um plano antigo de fornecer os discursos como arquivos TXT referenciados pelos Arquivos do Dados Abertos, mas ainda não conseguimos implementar por diversas razões.

Vamos nos concentrar em resolver o problema da API nesta quinta-feira.

Fabricio Rocha
Equipe Dados Abertos - Câmara

@paulopha
Copy link

Bom dia pessoal ?

Temos algum retorno com relação a situação ?

Muito Obrigado !

@leticialino
Copy link

Olá, pessoal!

Mesmo problema por aqui. Temos alguma atualização? Obrigada!

@EquipeDadosAbertosCD
Copy link
Member

Olá, pessoal.

Ficamos até semana passada tomando uma surra es-pe-ta-cu-lar desse problema. Mas chegamos a algumas soluções que, se não resolveram, pelo menos diminuíram sensivelmente a ocorrência.

Peço-lhes que verifiquem como o endpoint está respondendo agora. Mas peço parcimônia. O problema foi relacionado à necessidade de um processamento meio complicado e longo dos textos.

Não ocorria antes. Mas uma ou mais aplicação(ções) que não temos como identificar iniciou(aram) um consumo absurdo do endpoint de algumas semanas para cá. A cerca de 660 requisições por segundo, não tem API que dê jeito. Para comparação, o endpoint /deputados, na última semana, teve como pico de consumo 1,16 requisições por segundo. O segundo endpoint mais requisitado nesse período foi /proposicao/{id}/autores, com 69 requisições por segundo. Ou seja: o de discursos foi bombardeado com quase 10x isso.

APIs são recursos limitados. Não tem outro jeito.

Obrigado e abraços!

Fabricio Rocha
Equipe Dados Abertos - Câmara

@felipelmc
Copy link
Author

Olá, Fabrício!

Muito obrigado por terem se dedicado a esse problema. Ontem mesmo executei o código para extrair os discursos via API e funcionou perfeitamente - não obtive um erro sequer.

Parabéns pelo trabalho!

Forte abraço,
Felipe

@leticialino
Copy link

leticialino commented Oct 25, 2024

Olá Fabrício!

Agradeço os esforços e o retorno da equipe! Consegui extrair os discursos pela API, entretanto, me restou uma dúvida: esses discursos ainda são referente a eventos diversos? ou apenas aos realizados em plenário?

Agradeço novamente pela ajuda,
Letícia

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants