Веб-версияОткрыть в Telegram

Пост🔥 Сбор профайлов в PHP через excimer и как их отправлять 🚀

8 июля 2025
D
Ссылка
нажмите — покажем
🔥 Сбор профайлов в PHP через excimer и как их отправлять 🚀 В продолжение темы про #observability решил рассказать, как отправлять данные профайлов, собранные через excimer. Надо сказать, что это не самый популярный модуль для сбора профайлов — и, как по мне, совершенно зря. Потому что это расширение максимально тесно интегрируется в PHP и даёт минимум нагрузки на процессор ⚡ Минусы? Конечно — отсутствие визуализации из коробки. Но визуализаторов полно: Pyroscope от Grafana, например. Или Speedscope. Проблема в другом — как туда всё это отправить, ведь excimer не умеет ни в OpenTelemetry, ни в какой-нибудь другой удобный формат. Что делать? А ничего — написать враппер и адаптеры самому 😎 Чем я и занялся. В итоге появился open source пакет 👩‍💻 https://github.com/excimetry/excimetry Получился, как по мне, весьма удобный. Я сразу добавил интеграцию с клиентами по OpenTelemetry, данные идут в бинарном формате через protobuf. Есть поддержка: ✅ Pyroscope ✅ Speedscope ✅ Выгрузка на файл ✅ Профайлинг консольных команд Вот пример использования use Excimetry\Profiler\ExcimerProfiler; use Excimetry\Exporter\CollapsedExporter; use Excimetry\Backend\PyroscopeBackend; // Create a profiler $profiler = new ExcimerProfiler(); // Start profiling $profiler->start(); // Your code to profile here // ... // Stop profiling $profiler->stop(); // Get the profile $log = $profiler->getLog(); // Send to Pyroscope $exporter = new CollapsedExporter(); $backend = new PyroscopeBackend( 'http://localhost:4040', // Pyroscope server URL 'my-application', // Application name ['env' => 'production'] // Labels ); // Send the profile to Pyroscope $backend->send($log); // You can also set the backend to send asynchronously $backend->setAsync(true); $backend->send($log); // Returns immediately, sends in background // Add custom labels $backend->addLabel('version', '1.0.0'); $backend->addLabel('region', 'us-west'); Честно, не знаю, насколько далеко это всё зайдёт — но идея мне реально нравится 💡 Возможно, excimer станет чуточку популярнее благодаря excimetry. Буду рад звёздочкам на GitHub ⭐️, репостам и вашим комментариям ❤️ ⸻ Давайте оставаться на связи ☄️
5 · 861 ·

Рядом в ленте

ААлексей roxblnfkВо время сегодняшнего стрима обнаружилось, что под свеженький RoadRunner 2025 не все PHP-пакеты обновлены. Нужно в composer.json для зависимости spiral/roadrunnDDmitriiВ PHP-CS-Fixer смержили мой фиксер new_expression_parentheses! Позавчера состоялся релиз v3.76.0 Kids Playground, туда наконец-то попал фиксер new_expression_pa
это сообщение
DDmitrii🌙 Проект: MoonShine 🛠 Задача: Миграция с @popperjs/core на @floating-ui в MoonShine (4.x) Описание: Библиотека @popperjs/core, используемая в MoonShine для позиDDmitriiBen Ramsey предлагает обновить лицензию PHP. Вместо старых кастомок перевести Zend на BSD-3, а PHP на BSD-4. Думаю, Ben Ramsey многим из нас известен благодаря
OOpen Source: PHPOpen Source: PHP@open_source_php · канал · Технологии
421подписчиков280средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем