/monitoramento-mongodb

Projeto de api realizado com FastAPI, MongoDB e Docker

Primary LanguagePythonMIT LicenseMIT

FastAPI, MongoDB, Docker

Seu lugar para praticar observabilidade e monitoramento em MongoDB.

GitHub last commit GitHub license

🚧 Em desenvolvimento 🚧

Tabela de conteúdos


💻 Sobre o projeto

Dedici construir esse projeto para treinar com ferramentas que podem estar presentes no dia-a-dia de um engenheiro de dados.


⚙️ Funcionalidades

  • CRUD com api do FastAPI
  • Persistencia dos dados com MongoDB
  • Monitoramento com Prometheus e Grafana (em construção)

🚀 Como executar o projeto

Este projeto é divido em duas partes:

  1. API e MongoDB (imagens docker)
  2. Robo3T (client para o MongoDB)

💡As imagens do Docker que contém a api e o mongodb estão no arquivo docker-compose.yaml . O Robo3T deverá ser instalado direto na máquina.

Pré-requisitos

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Robo3T e Docker. Além disto é bom ter um editor para trabalhar com o código como o VSCode

📦 Rodando o Container

# Clone este repositório
$ git clone https://github.com/IgorFreitasCruz/api-fastapi.git

# Acesse a pasta do projeto no terminal/cmd
$ cd api-fastapi

# Execute a o container com o comando
$ docker-compose up -d

# O servidor inciará na porta:8000 - acesse http://127.0.0.1/docs 

É muito importante acessar a url http://127.0.0.1/docs pois o browser tentará renderizar http://127.0.0.1/ e não encontrará um aquivo do tipo html.

Swagger

Após ter acesso à api basta conectar ao mongo através do nosso client Robo3T. Por padrão, o Robo3T cria uma coneção em localhost na porta 27017. Clique na aba File e selecione connect. Em seguina selecione Create na janela que irá aparecer. Clique em Teste para seguir com a configuração padrão de host e porta e em seguida clique em Save.

Swagger

A api irá cria um database com o nome test e uma coleção com o nome students. Para visualizar o conteúdo da coleção clique com o botão direito do mouse em New Connection e selecione Open Shell. Realize um POST request na api para gerar alguns dados. Após, digite na linha de comando db.getCollection('students').find().

Swagger


🛠 Tecnologias

As seguintes ferramentas foram usadas na construção do projeto:


💪🏻 Como contribuir no projeto

  1. Faça um fork do projeto.
  2. Crie uma nova branch com as suas alterações: git checkout -b my-feature
  3. Salve as alterações e crie uma mensagem de commit contando o que você fez: git commit -m "feature: My new feature"
  4. Envie as suas alterações: git push origin my-feature

Caso tenha alguma dúvida confira este guia de como contribuir no GitHub


🦸 Autor


Igor de Freitas Cruz 🚀

Linkedin Badge Apple Badge


Licença

Este projeto está sobe a licença MIT.

Feito com ❤️ por Igor Cruz 👋🏻 Entre em contato!