Prometheus can only deal with floats written with a dot (2.20 in en_EN for example). However if a project is set to use ru_RU, floats are written with a comma.
<?php
setlocale(LC_NUMERIC, 'en_EN');
printf("%f\n", 2.22); // prints 2.220000 which is correct
setlocale(LC_NUMERIC, 'ru_RU');
printf("%f\n", 2.22); // prints 2,220000 which is not correct
This can be fixed dropping the locale to C and returning it back after stringifying. Symfony guys fixed it in the VarDumper component here https://github.com/symfony/symfony/pull/23575/files .
Of course a project can drop locale when rendering the metrics, but IMO this should be handled by the library.
Prometheus can only deal with floats written with a dot (
2.20inen_ENfor example). However if a project is set to useru_RU, floats are written with a comma.This can be fixed dropping the locale to
Cand returning it back after stringifying. Symfony guys fixed it in the VarDumper component here https://github.com/symfony/symfony/pull/23575/files .Of course a project can drop locale when rendering the metrics, but IMO this should be handled by the library.