Skip to content

Conversation

@Clemsazert
Copy link
Contributor

@Clemsazert Clemsazert commented Jan 12, 2026

🔎 Détails

  • Remplacement de prometheus-client par flask-prometheus-exporter
  • Ajout d'une configuration fonctionnant avec gunicorn et le multiprocessing activé

Note : il y a potentiellement un impact sur le converter car il faut passer par un partage de fichier entre les différents worker générés par la commande Gunicorn. Normalement la taille de ces fichiers est capée (et géré par la librairie) pour éviter un overflow du file system au sein du container.

  • A déployer en RC pour un test sur les environnement sur une longue période avant de déployer sur environnements aval

✅ Fonctionnement validé

📸 Captures d'écran

Avant Après
Capture d’écran 2026-01-15 à 15 04 48

@github-actions
Copy link

There is no coverage information present for the Files changed

Total Project Coverage 55.22% 🍏

@github-actions
Copy link

There is no coverage information present for the Files changed

Total Project Coverage 55.22% 🍏

@github-actions
Copy link

github-actions bot commented Jan 13, 2026

Coverage

Converter - python code coverage
FileStmtsMissCoverMissing
constants.py40100% 
conversion_mixin.py23195%24
converter.py57394%23, 91–92
logging_config.py35197%29
utils.py164398%57, 108, 120
cisu
   base_cisu_converter.py33390%7, 25, 31
   constants.py40100% 
   identical_cisu_converter.py90100% 
   utils.py150100% 
cisu/create_case
   create_case_cisu_constants.py310100% 
   create_case_cisu_converter.py145199%112
cisu/reference
   reference_converter.py9277%9, 13
cisu/resources_info
   resources_info_cisu_constants.py90100% 
   resources_info_cisu_converter.py680100% 
cisu/resources_status
   resources_status_converter.py190100% 
conversion_strategy
   cisu_conversion_strategy.py47295%63, 90
   conversion_strategy.py60100% 
   health_conversion_strategy.py520100% 
versions
   base_message_converter.py831285%13, 72–74, 86, 98, 102, 106, 110, 114, 118, 124
   error_converter.py5180%7
   identical_message_converter.py150100% 
   utils.py26580%34–37, 43
versions/create_case_health
   constants.py40100% 
   create_case_health_converter.py1780100% 
   create_case_health_update_converter.py50100% 
versions/create_case_health/v1_v2
   constants.py170100% 
   utils.py440100% 
versions/create_case_health/v2_v3
   constants.py290100% 
versions/document_link
   document_link_constants.py20100% 
   document_link_converter.py190100% 
versions/geo_positions_update
   geo_positions_update_constants.py40100% 
   geo_positions_update_converter.py49393%31, 42, 79
versions/geo_resources_details
   geo_resources_details_constants.py40100% 
   geo_resources_details_converter.py270100% 
versions/intervention_report
   intervention_report_constants.py130100% 
   intervention_report_converter.py810100% 
versions/reference
   reference_constants.py20100% 
   reference_converter.py130100% 
versions/resources_engagement
   resources_engagement_constants.py30100% 
   resources_engagement_converter.py220100% 
versions/resources_info
   resources_info_constants.py190100% 
   resources_info_converter.py840100% 
versions/resources_request
   resources_request_constants.py20100% 
   resources_request_converter.py210100% 
versions/resources_response
   resources_response_constants.py40100% 
   resources_response_converter.py160100% 
versions/resources_status
   resources_status_constants.py100100% 
   resources_status_converter.py390100% 
versions/rpis
   rpis_constants.py60100% 
   rpis_converter.py230100% 
TOTAL15993797% 

@github-actions
Copy link

There is no coverage information present for the Files changed

Total Project Coverage 55.22% 🍏

@github-actions
Copy link

There is no coverage information present for the Files changed

Total Project Coverage 55.22% 🍏

@Clemsazert Clemsazert marked this pull request as ready for review January 15, 2026 14:06
return jsonify({"error": message}), code


def extract_message_type_from_paylaod():
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

extract_message_type_from_paylaod --> extract_message_type_from_payload

"The number of seconds it took to the /convert endpoint to answer",
labels={
"status": lambda r: r.status_code,
"message_type": extract_message_type_from_paylaod,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A voir si c'est pertinent mais je ne sais pas a quel fréquence cette méthode va être rappeler par la métrique histograme. Est ce que ce ne serais pas mieux de le faire dans un before_request pour éviter tout appel supplémentaire inutile si on a pas la garantie que la fonction ne sera appeler qu'une seule fois ?

Copy link
Contributor Author

@Clemsazert Clemsazert Jan 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

D'après la lib la fonction est appellée à chaque execution de la méthode décorée. Pourquoi y aurait-il des executions non souhaitées ?

Copy link
Contributor

@issam71100 issam71100 Jan 15, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je ne sais pas exactement comment les métriques sont récolter tout au long de l'exécution de la fonction pour l'histogramme contrairement a d'autre métrique comme le count qui est exécuter qu'une fois par exemple.
Si tu es positif que ce n'est exécuter qu'une fois, c'est ok pour moi

Vu que les labels sont afficher sur chaques métrique lié a l'histogramme, je me demandais si a chaque fois qu'on va récolter une métrique pour l'histogramme, est ce que ça va re-exectuer la méthode pour avoir le message_type.

@github-actions
Copy link

There is no coverage information present for the Files changed

Total Project Coverage 55.22% 🍏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants