Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ronihdzz/fastapi-jaeger-opentelemetry
This project is a test of how to integrate OpenTelemetry and Jaeger into a FastAPI application.
https://github.com/ronihdzz/fastapi-jaeger-opentelemetry
docker docker-compose fastapi jaeger opentelemetry
Last synced: 3 days ago
JSON representation
This project is a test of how to integrate OpenTelemetry and Jaeger into a FastAPI application.
- Host: GitHub
- URL: https://github.com/ronihdzz/fastapi-jaeger-opentelemetry
- Owner: ronihdzz
- License: cc0-1.0
- Created: 2025-01-04T22:57:13.000Z (5 days ago)
- Default Branch: main
- Last Pushed: 2025-01-05T20:00:08.000Z (4 days ago)
- Last Synced: 2025-01-05T21:17:01.389Z (4 days ago)
- Topics: docker, docker-compose, fastapi, jaeger, opentelemetry
- Language: Python
- Homepage:
- Size: 12.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.es.md
- License: LICENSE
Awesome Lists containing this project
README
# FastAPI con OpenTelemetry y Jaeger
![Jaeger](docs/architecture.png)
Este proyecto es una prueba de como se puede integrar OpenTelemetry y Jaeger en una aplicación FastAPI.
## Prerequisitos
- Docker
- Docker Compose (para ejecutar jaeger)
- Python (para ejecutar la API)
- virtualenv o venv (para crear el entorno virtual)## Ejecutar jaeger con docker-compose
```
docker-compose up jaeger
```## Crear el entorno virtual
Para instalar las dependencias necesarias, se debe crear un entorno virtual con python.
* A continuación se muestra como hacerlo con venv
```
python -m venv nombre_del_entorno
```* Una alternativa a venv es virtualenv, a continuacion se muestra como hacerlo con virtualenv
con una python 3.11```
virtualenv nombre_del_entorno -p=3.11
```## Activar el entorno virtual
Para activar el entorno virtual, desde tu consola en linux o mac, ejecuta el siguiente comando:
```
source nombre_del_entorno/bin/activate
```## Instalar las dependencias
Para instalar las dependencias necesarias, se debe ejecutar el siguiente comando:
```
pip install -r requirements_with_versions.txt
```## Diferentes formas de ejecutar el proyecto
### Ejecutar el proyecto desde consola:
Para ejecutar el proyecto, se debe ejecutar el siguiente comando:
```
uvicorn main:app --port 9000 --reload
```### Ejecutar el proyecto desde docker-compose:
Para ejecutar el proyecto, se debe ejecutar el siguiente comando:
```
docker-compose up troni-api
```### Ejecutar el proyecto con vscode debugger
Debes tener vscode instalado y el debugger de python instalado.
En la pestaña de la izquierda, en la sección de "Debug", haz click en el icono de "Run and Debug" y selecciona "Python Debugger: FastAPI" esta configuración esta en el archivo .vscode/launch.json
## Probar que funciona
Para probar el funcionamiento de la integracion, deberas hacer peticiones a la API, a continuacion te muestro diferentes formas de hacerlo.
### Petición a la API
Con ayuda de curl, puedes hacer peticiones a la API desde la consola, por ejemplo:
```
curl http://localhost:9000/health
```Si no tienes curl instalado, puedes simplemente visitar la siguiente url en tu navegador:
```
http://localhost:9000/health
```Si prefieres hacer las peticiones de una forma mas visual, puedes visitar la siguiente la docs que genera fastapi en ´http://localhost:9000/docs´ y desde la documentación que se muestra con swagger puedes probar los endpoints de la API
### Ver los datos en jaeger
Ya que hiciste diversas peticiones a la API, deberias ver los datos en jaeger, para ello, puedes visitar la siguiente url:
```
http://localhost:16686/
```