TGViewer
Пых Пых @phpyh · 7.87K subscribers
Post #906 6.81K

Forwarded from Erick's Streams

🖥 Библиотека для сбора метрик Prometheus для PHP.

В пояснительной записке к дипломной работе в колледже, а после и в университете, всегда первыми шли «Анализ существующих аналогов» и «Обоснование выбора языка и сред разработки». В учебное время это были смешные пункты, мол, конечно, есть аналоги лучше моего куска, да и обоснование простое — это надо для учёбы.

Но видит бог, на работе я до последнего сопротивлялся тому, чтобы браться писать свой велосипед. Самая популярная 🖥 библиотека имела ряд фатальных недостатков™, форки не спасали, а альтернативы находились ещё дальше от того, что было нужно для нашей инфраструктуры. Таким образом вывод был однозначен: нужно писать своё 💀

За основу я взял 🖥 форк вышеупомянутой библиотеки, т.к. её интерфейс и архитектура были наиболее удачными, а в форке уже была проделана часть необходимой работы. Чем больше я рефакторил, тем больше я начинал понимать, почему в крупных компаниях есть практика аудита зависимостей 🙃

Вот вам несколько примеров (24 миллиона установок, кстати):
KEYS для сбора метрик.
base64() поверх json_encode().
EVAL для записи метрик.
SISMEMBER перед SADD.
SCAN для очистки хранилища.
❓"Тесты" 😂

// Такс, какие они плохие я написал, теперь нужно рассказать о том, какой я молодец

В моём велосипеде:
⭐️ Реализация на двух хешах Redis.
⭐️ Абстрагированная реализация клиента Redis.
⭐️ Сборка метрик в 2 запроса к Redis.
⭐️ Строгая типизация для PHPStan и Psalm.
⭐️ Реальные тесты (пусть их пока и мало).
⭐️ Гораздо более читаемый код (субъективно).

Библиотека успешно внедрена на моём рабочем проекте и в перспективе заменит statsd на Аккаунтах Ely.by.

Так что прошу любить и жаловать:
🖥 GitHub
🖥 Packagist
GitHub GitHub - erickskrauch/prometheus-php: Prometheus metrics collector and exporter for PHP Prometheus metrics collector and exporter for PHP. Contribute to erickskrauch/prometheus-php development by creating an account on GitHub.
  • 👍 31
  • 🔥 15
  • ❤ 9
More from @phpyh
  1. Sep 15, 2026Сейчас один человек с AI может выполнять работу целого IT-отдела. Только хуёво
  2. Sep 12, 2026Спасибо за заявки! Всем напишу в понедельник. Осталось 1 место.
  3. Sep 11, 2026Хардкорный курс асинхронного PHP https://hardcourse.ru/php/async
  4. Sep 11, 2026Ещё полчасика надо — сайт готов, расписываю программу! 🙏
  5. Sep 10, 2026Краткое содержание: завтра в 12:00 открываю набор на Хардкорный курс асинхронного PHP с уч…
  6. Sep 10, 2026Post #1011
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →