Streamlit — Runtime de tableaux de bord ADEN¶
Streamlit sert les tableaux de bord auto-générés produits par le pipeline ADEN (AKKO Data-Engine Native). Quand un utilisateur pose une question en langage naturel, ADEN génère du SQL, l'exécute et produit un tableau de bord Streamlit — ce service affiche ces tableaux de bord dans le navigateur.
Architecture¶
Pipeline ADEN
|
| écrit .py + données dans le PVC
|
+--v-------------------+
| akko-aden-reports |
| (PVC partagé) |
+--+-------------------+
|
+--v-----------+
| Streamlit |
| (:8501) |
| sert les .py|
+--------------+
- ADEN écrit les fichiers Streamlit
.pygénérés et les données dans le PVC partagéakko-aden-reports - Streamlit monte ce PVC en lecture seule et sert les tableaux de bord
- Prometheus scrute
/metricsvia ServiceMonitor
URLs¶
| Mode | URL |
|---|---|
| Kubernetes (k3d) | https://reports.<domaine> |
Configuration (valeurs Helm)¶
akko-streamlit:
enabled: true
image:
repository: localhost:5050/akko-streamlit
tag: "2026.04"
replicas: 1
service:
port: 8501
reportsPvc: "akko-aden-reports" # Doit correspondre à akko-aden.reports.pvcName
ingress:
host: "reports.akko.local"
serviceMonitor:
enabled: true
interval: 30s
resources:
requests:
cpu: 50m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
Healthcheck¶
Streamlit répond aux requêtes HTTP sur le port 8501 :
livenessProbe:
httpGet:
path: /healthz
port: 8501
initialDelaySeconds: 10
periodSeconds: 30
readinessProbe:
httpGet:
path: /healthz
port: 8501
initialDelaySeconds: 5
periodSeconds: 10
RBAC (qui peut accéder)¶
Les tableaux de bord Streamlit sont servis via l'ingress et protégés par OAuth2-Proxy (middleware ForwardAuth). Les utilisateurs doivent être authentifiés via Keycloak SSO.
Pour le setup multi-tenant ShinyProxy (recommandé en production), chaque utilisateur obtient un pod Streamlit isolé — voir la documentation ShinyProxy.
Fonctionnalités principales¶
| Fonctionnalité | Description |
|---|---|
| Intégration ADEN | Affiche automatiquement les tableaux de bord générés par le pipeline NL-vers-SQL |
| PVC partagé | Lit les tableaux de bord depuis le volume akko-aden-reports |
| Métriques Prometheus | ServiceMonitor scrute /metrics sur le port 8501 |
| Léger | 128 Mi de RAM de base, dimensionne selon la complexité des tableaux de bord |
Ressources requises¶
| Composant | RAM minimum | Recommandé |
|---|---|---|
| Streamlit | 128 Mi | 512 Mi |
Dépannage¶
Tableau de bord introuvable¶
Symptômes : L'accès à l'URL d'un tableau de bord retourne une 404 ou une page blanche.
Cause : Le pipeline ADEN n'a pas écrit le fichier du tableau de bord dans le PVC, ou le PVC n'est pas monté correctement.
Solution :
# Vérifier que le PVC existe et est lié
kubectl get pvc -n akko akko-aden-reports
# Lister les fichiers dans le PVC reports
kubectl exec -n akko deploy/akko-akko-streamlit -- ls -la /reports/
# Consulter les logs Streamlit
kubectl logs -n akko deploy/akko-akko-streamlit --tail=50
Pod Streamlit en CrashLoopBackOff¶
Symptômes : Le pod Streamlit redémarre en boucle.
Cause : Dépendances Python manquantes dans l'image Streamlit, ou un script de tableau de bord généré contient une erreur de syntaxe.
Solution :