Skip to content
This repository has been archived by the owner on Sep 26, 2024. It is now read-only.

Medir o tempo em serviço dos portais // Measure portals' uptime #41

Open
bcbernardo opened this issue Dec 23, 2020 · 3 comments · May be fixed by #71
Open

Medir o tempo em serviço dos portais // Measure portals' uptime #41

bcbernardo opened this issue Dec 23, 2020 · 3 comments · May be fixed by #71
Assignees
Labels
analysis Issues related to the analysis of official gazettes portals report Issues related to the production of reports on the Census collected data

Comments

@bcbernardo
Copy link
Collaborator

Em português

Durante a fase de coleta do censo, algumas pessoas voluntárias relataram que os portais de diários oficiais estavam fora do ar. A confiabilidade do serviço é uma dimiensão importante a se tomar em conta ao avaliar se um dado está acessível para os cidadãos.

O projeto Colaboradados já faz um acompanhamento similar com a ferramenta Colaborabot, embora essa seja atualmente direcionada a portais de transparência. Uma solução simples seria abrir um pull request no projeto e adicionar todos os portais mapeados no Censo à lista de portais deles.

Porém, a solução deles é bastante simplista tecnologicamente, e não escalaria bem para um número maior de requisições - de modo que pudéssemos gerar uma métrica de tempo de serviço (% do tempo que o portal fica online), por exemplo. Para isso, precisaríamos de uma ferramenta que também:

  • Faça requisições do tipo HEAD (cabeçalhos) a todos os portais (ao invés de requsições GET que também solicitam o corpo inteiro da página, como o Colaborabot faz)
  • Consiga lidar com requisições assíncronas, tornando o processamento mais rápido (por exemplo, usando o pacote HTTPX)
  • Possa ser implementado na nuvem - por exemplo, no AWS Lambda ou no Azure Functions etc. -, de modo que as requisições sejam feitas periodicamente, sem intervenção humana e até fora do horário comercial
  • Salve os dados em um armazenamento mais confiável (idealmente, um banco de dados propriamente dito; mas também poderia ser um conjunto de dados no Kaggle, por meio da API deles e do limite de 100GB para conjuntos de dados públicos, por exemplo)

Nenhum desses deveria tomar muito tempo para ser desenvolvido. Mas, ainda assim, não está claro se essa deveria ser uma prioridade. Afinal, poderíamos pelo menos obter uma métrica menos robusta (dias fora de serviço) usando apenas a infraestrutura já existente do Colaborabot. O que acham?

In english

During the data collection phase of the Census, some of the vonlunteers have reported downtimes in the official gazettes portals. Service reliability is an important dimension to take into account when evaluating if some data is available to the citiziens.

The Colaboradados project already does a similar monitoring with the Colaborabot tool, even though it is currently dedicated to transparency portals. A simple solution would be simply to open a pull request and add all portals mapped in the Census to their portal list.

However, their solution is technically quite naïve, and should not escalate well for more requests - so that we could get a time of service metric (in % of the total time), for example. For that, we would need a tool that also:

  • Makes HEAD requests to all the portals (instead of full GET requests, as Colaborabot does)
  • Can handle asynchronous requests, to make them faster (for example, using the HTTPX package)
  • Can be deployed to the cloud - for example, using AWS Lambda, Azure Functions and so on -, so that requests can be made periodically with no human intervention and outside business hours
  • Saves the data to a more reliable storage (ideally, a proper database; but could also be a dataset in Kaggle through their API and 100GB free tier for public datasets, for example)

None of these should take too much time to develop. But, still, it is not clear whether this should be a priority. After all, we could at least get a less robust reliability metric (days out of service) using only Colaborabot's existing infrastructure. What do you think?

@bcbernardo bcbernardo added the analysis Issues related to the analysis of official gazettes portals label Dec 23, 2020
@bcbernardo bcbernardo self-assigned this Jan 14, 2021
@bcbernardo bcbernardo changed the title Desenvolver ferramenta para determinar o tempo em serviço // Develop a tool for determining the time out of service Medir o tempo em serviço dos portais // Measure portals' time out of service Jan 21, 2021
@bcbernardo bcbernardo changed the title Medir o tempo em serviço dos portais // Measure portals' time out of service Medir o tempo em serviço dos portais // Measure portals' uptime Jan 24, 2021
@bcbernardo bcbernardo added the report Issues related to the production of reports on the Census collected data label Jan 24, 2021
@bcbernardo bcbernardo linked a pull request Feb 17, 2021 that will close this issue
@ArianeCamilo
Copy link
Collaborator

Oi, @bcbernardo! Entramos na fase de sistematização das análises e estamos encaminhando os ajustes finais. Devemos levar mais algumas semanas nessa etapa, então queríamos saber como está o volume e a qualidade dos dados gerados nesta issue. Seria interessante estimar o tempo de análise dessa base para entendermos quando você deve parar a coleta.

@bcbernardo
Copy link
Collaborator Author

Olás!

Primeiro, desculpem o silêncio aqui nesta issue. Estava buscando um tempo para trabalhar nela e ainda não encontrei.

A situação é o seguinte: cheguei a abrir um PR (#71) com o código para salvar o status dos endereços registrados no Censo a cada período de tempo usando o Azure Functions e o Kaggle como suporte de armazenamento.

O PR ficou pendente de algumas pequenas revisões para entrar no repositório principal. Mais grave do que isso é que o armazenamento no Kaggle parece não estar funcionando por alguma razão que não sei bem qual é. Nos logs aparece tudo direitinho, mas o dataset não atualizava nos testes que fiz.

Acabei deixando desligada a função até conseguir verificar o problema ou trocar o armazenamento - o que não consegui fazer até agora, nem consigo dar uma previsão de quando conseguiria.

Vi que vocês decidiram limitar um pouco o escopo das análises que vão entrar no relatório. Acho bom e acho que esta issua seria uma boa candidata a ficar de fora, já que ainda têm pendências e, principalmente, depende de criar uma série histórica que atrasaria o calendário de todo o relatório.

@ArianeCamilo
Copy link
Collaborator

Entendi, @bcbernardo. Concordo em deixarmos essa de fora também e juntá-la ao grupo das que foram excluídas por exigirem uma coleta além da base gerada pelo formulário. O restante está contemplado, então vamos em frente! :)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
analysis Issues related to the analysis of official gazettes portals report Issues related to the production of reports on the Census collected data
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants