Projet

Général

Profil

Development #22270

uwsgi avec que des threads

Ajouté par Frédéric Péters il y a environ 6 ans. Mis à jour il y a environ 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
05 mars 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

processes = 1
threads = 5 (?)

Ça aiderait pour prometheus qui vit mieux sa vie en mode threads. (le module python a un mode "multiprocess" qui demande du code en plus).

Historique

#1

Mis à jour par Frédéric Péters il y a environ 6 ans

  • Description mis à jour (diff)
#2

Mis à jour par Frédéric Péters il y a environ 6 ans

(pour info j'ai fait ça sur la recette via le uwsgi-local.ini)

#3

Mis à jour par Thomas Noël il y a environ 6 ans

On se donne un peu de temps de vie en recette, puis en prod dans un local.ini identique, avant de patcher ?

#4

Mis à jour par Frédéric Péters il y a environ 6 ans

Yes. (et en attendant on peut préparer le passage d'autres briques à uwsgi)

#5

Mis à jour par Thomas Noël il y a environ 6 ans

A jouer avec ça, je suis pas très à l'aise : un seul processus je ne sais pas comment ça va se comporter par rapport à la gestion harakiri et ce genre de choses dans uwsgi. On perd aussi pas mal de visibilité via uwsgitop.

#6

Mis à jour par Benjamin Dauvergne il y a environ 6 ans

Ouaip je suis pas chaud bouillant non plus, qu'est-ce qui embête prometheus dans le fait d'avoir des process ?

#7

Mis à jour par Emmanuel Cazenave il y a environ 6 ans

De base pas de gestion mutliprocess dans https://github.com/prometheus/client_python#multiprocess-mode-gunicorn : les stats ne sont pas agrégées entre les processus.
Une requête de demande de stats aura pas les même résultats si elle est servie par le processus X versus processus Y.

Moi aussi je trouve ça un peu violent de passer à un seul processus, mais contourner le problème comme décrit dans la doc semble un peu pénible aussi.

#8

Mis à jour par Thomas Noël il y a environ 6 ans

Lu ailleurs (https://hynek.me/talks/prometheus/), mais je ne sais pas si c'est pertinent pour nous : « Another approach is to expose your metrics per process. In uWSGI you can use uwsgi.worker_id() as a label »

#9

Mis à jour par Frédéric Péters il y a environ 6 ans

Lu ailleurs (https://hynek.me/talks/prometheus/), mais je ne sais pas si c'est pertinent pour nous : « Another approach is to expose your metrics per process. In uWSGI you can use uwsgi.worker_id() as a label »

Oui c'est une bonne approche, de manière apparentée inclure le pid dans les paramètres de la métrique (pour que ça soit ok aussi avec gunicorn). (et côté graphe ça accumulera les valeurs).

#10

Mis à jour par Frédéric Péters il y a environ 3 ans

  • Statut changé de Nouveau à Fermé
  • Planning mis à Non

Oublions tout ça.

Formats disponibles : Atom PDF