You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Construção inicial de um ambiente de observabilidade para a API utilizando OpenTelemetry e Grafana. Começamos pelos logs pois provavelmente é a etapa que menos exigiria alterações no código.
O fluxo de desenvolvimento será feito utilizando a branch dev como base. Qualquer Pull Request deverá ser feito a partir e para esta branch.
Requisitos
Configuração inicial dos recursos (OpenTelemetry Collector, Grafana + Grafana Loki)
- Dockerfile, arquivos de configuração, variáveis de ambiente, comandos para build e execução no Makefile
- Testes são desejáveis, mas no momento não são obrigatórios, pois a base de testes está defasada
Caso necessário, criação de novas mensagens de log
- Todos os logs da aplicação devem ser exportados, especialmente no fluxo dos pontos de acesso, identificando no mínimo o trecho de código que gerou o log, nível, timestamp e mensagem clara
- Mensagens de log não devem poluir muito o fluxo principal do código, focando em etapas relevantes da execução
Exportação dos logs da API para OTel Collector
- Deve ser possível acessar diretamente os pontos de acesso do OTel Collector para debug
(opcional) Conexão OTel Collector - Grafana
- Deve ser possível acessar o OTel collector como fonte de dados no Grafana
Configuração de visualização de logs no Grafana
- O ambiente dessa prova de conceito não deve considerar que ficará apenas em desenvolvimento, mas que eventualmente irá para produção, ou seja, não usaremos plugin docker do Loki
- Deve ser possível acessar o Loki como fonte de dados no Grafana
- Um protótipo de dashboard baseado nos logs deve ser configurado
Configurando ambiente de desenvolvimento
Mais simples, usando apenas o repo da API e dados fake
Execute make run.
O comando irá levantar opensearch, postgres e tentará levantar o servidor da API, com falha. É necessário criar o índice no opensearch antes de levantar a API.
Execute make load-data
Execute make re-run
Mais completo, usando repo de processamento de dados, raspadores e api, com dados reais
Execute make build-devel && podman pull ghcr.io/okfn-brasil/querido-diario-apache-tika-server:latest no repo querido-diario-data-processing
No Makefile do repo querido-diario-data-processing, mudar variável FULL_PROJECT para true
Execute make setup no repo querido-diario-data-processing
Agora o pod foi criado, assim como vários recursos como Opensearch, Postgres e Minio. Porém, eles ainda estão vazios. Vamos populá-los.
Copie .local.env do repo querido-diario para .env
Configure o ambiente de desenvolvimento do repo querido-diario de acordo com seu README
Execute um raspador no repo querido-diario (ex: scrapy crawl rn_natal -a start_date=2024-03-01)
Execute make re-run no repo querido-diario-data-processing
Agora temos arquivos, tabelas e índices populados. Podemos habilitar a API.
Execute make build && make re-run no repo querido-diario-api
Pronto! Agora o ambiente está todo configurado.
Usando o ambiente
Algumas maneiras úteis de usar o ambiente de desenvolvimento:
Quer acessar o motor de busca para ver os índices textuais de diários e excertos temáticos?
Execute curl -k -u admin:admin -X GET "localhost:9200/_cat/indices?v&pretty=true" (outros endpoints funcionarão igualmente de acordo com a documentação do opensearch).
Quer baixar mais arquivos de diários e processá-los?
Execute outro scrapy crawl no repo querido-diario e então execute make re-run no querido-diario-data-processing novamente.
O live reload não está habilitado na API. Como checar as mudanças?
Execute make re-run novamente.
Como acessar a documentação da API?
Acesse 0.0.0.0:8080/docs.
The text was updated successfully, but these errors were encountered:
Descrição
Construção inicial de um ambiente de observabilidade para a API utilizando OpenTelemetry e Grafana. Começamos pelos logs pois provavelmente é a etapa que menos exigiria alterações no código.
O fluxo de desenvolvimento será feito utilizando a branch
dev
como base. Qualquer Pull Request deverá ser feito a partir e para esta branch.Requisitos
-
Dockerfile
, arquivos de configuração, variáveis de ambiente, comandos para build e execução noMakefile
- Testes são desejáveis, mas no momento não são obrigatórios, pois a base de testes está defasada
- Todos os logs da aplicação devem ser exportados, especialmente no fluxo dos pontos de acesso, identificando no mínimo o trecho de código que gerou o log, nível, timestamp e mensagem clara
- Mensagens de log não devem poluir muito o fluxo principal do código, focando em etapas relevantes da execução
- Deve ser possível acessar diretamente os pontos de acesso do OTel Collector para debug
- Deve ser possível acessar o OTel collector como fonte de dados no Grafana
- O ambiente dessa prova de conceito não deve considerar que ficará apenas em desenvolvimento, mas que eventualmente irá para produção, ou seja, não usaremos plugin docker do Loki
- Deve ser possível acessar o Loki como fonte de dados no Grafana
- Um protótipo de dashboard baseado nos logs deve ser configurado
Configurando ambiente de desenvolvimento
Mais simples, usando apenas o repo da API e dados fake
make run
.O comando irá levantar
opensearch
,postgres
e tentará levantar o servidor da API, com falha. É necessário criar o índice noopensearch
antes de levantar a API.make load-data
make re-run
Mais completo, usando repo de processamento de dados, raspadores e api, com dados reais
make build-devel && podman pull ghcr.io/okfn-brasil/querido-diario-apache-tika-server:latest
no repoquerido-diario-data-processing
querido-diario-data-processing
, mudar variávelFULL_PROJECT
paratrue
make setup
no repoquerido-diario-data-processing
Agora o pod foi criado, assim como vários recursos como Opensearch, Postgres e Minio. Porém, eles ainda estão vazios. Vamos populá-los.
.local.env
do repoquerido-diario
para.env
querido-diario
de acordo com seu READMEquerido-diario
(ex:scrapy crawl rn_natal -a start_date=2024-03-01
)make re-run
no repoquerido-diario-data-processing
Agora temos arquivos, tabelas e índices populados. Podemos habilitar a API.
make build && make re-run
no repoquerido-diario-api
Pronto! Agora o ambiente está todo configurado.
Usando o ambiente
Algumas maneiras úteis de usar o ambiente de desenvolvimento:
Quer acessar o motor de busca para ver os índices textuais de diários e excertos temáticos?
Execute
curl -k -u admin:admin -X GET "localhost:9200/_cat/indices?v&pretty=true"
(outros endpoints funcionarão igualmente de acordo com a documentação do opensearch).Quer baixar mais arquivos de diários e processá-los?
Execute outro
scrapy crawl
no repoquerido-diario
e então executemake re-run
noquerido-diario-data-processing
novamente.O live reload não está habilitado na API. Como checar as mudanças?
Execute
make re-run
novamente.Como acessar a documentação da API?
Acesse
0.0.0.0:8080/docs
.The text was updated successfully, but these errors were encountered: