Контролировать разные вещи

В моем приложении я хочу отслеживать различные сервисы одновременно и, в лучшем случае, одним способом.

Приложение использует NodeJS в качестве веб-сервера, а также средство просмотра WebPack. Есть также PHP-часть приложения, которая использует Workerman и другие модули — и я хотел бы собрать статистику по всем из них.

Для меньшего представления давайте представим, что у меня есть два сценария: app.js а также backend.php, Файл JS представляет собой небольшой веб-сервер, который обслуживает страницы с React и прочим, а скрипт PHP служит способом доступа к базе данных через AJAX и выполнения других, более совершенных в PHP вещей.

То, что я хочу сделать сейчас, это собирать статистику. Например, когда кто-то подключается к серверу nodejs, я хочу увеличить счетчик, называемый «запросы», на один, а когда к PHP обращаются к чему-то конкретному в базе данных, я хочу также выставить счетчик.

Какие существуют системы, которые позволят мне собирать статистику по языкам? Мой стек программного обеспечения: Redis, MySQL, PHP, NodeJS.

2

Решение

Ты можешь попробовать База данных временных рядов Axibase Community Edition. Это бесплатно. В него встроен механизм правил для предупреждений и графики для визуализации. Есть PHP-клиент и драйвер хранилища statsd

Раскрытие: я работаю на Axibase.

1

Другие решения

Два варианта — использовать базу данных (MySQL?) Или использовать инструмент мониторинга / аналитики.

Первый вариант даст вам гибкость, но потребует от вас некоторой работы разработчика.

Второй вариант потребует развертывания инструмента мониторинга и реализации событий. Для этого вы можете использовать инструмент веб-аналитики (хорошо, потому что вы можете использовать его для мониторинга внутренних процессов, событий на стороне клиента и событий, связанных с продуктом, если это необходимо, и все в одном месте), таких как Google Analytics или http://piwik.org/… или вы можете использовать что-то вроде графита http://graphite.wikidot.com/ (графит довольно странный по сравнению с другими аналитическими инструментами, но он служит цели), также для него вы должны использовать библиотеки libs для передачи статистики, например statsd: https://github.com/etsy/statsd

Любое из перечисленного позволит вам приятно следить за вещами …

В случае веб-аналитики с API javascript, вы должны создать оболочку в узле с маршрутом для PHP, чтобы пинговать и отправлять имя события … VOILA

0

Вы всегда можете реализовать какое-то индивидуальное отслеживание и сохранить данные в существующих хранилищах данных. Но правильное оснащение не так просто.

Я бы не рекомендовал использовать MySql в качестве хранилища. Производительность MySql для вставок не так хороша, так что это может замедлить работу вашего приложения и привести к большим накладным расходам.

Redis быстр, но не очень хорошо структурирован для временных событий и серий.

Существуют некоторые специальные базы данных временных рядов, предназначенные для работы с журналами, метриками и временными рядами: https://influxdb.com, http://graphite.wikidot.com/, http://elastic.co, …

Но, на самом деле, есть некоторые инструменты, которые будут соответствовать вашим потребностям из коробки. Кроме того, вы можете выбрать некоторые из сервисов SAAS для журналов и метрик.
Существуют сервисы, которые предоставляют как хорошие библиотеки для nodejs / php, так и размещенный стек подходящих инструментов для хранения данных и их анализа.
Хотя у вас менее 10 000 запросов в день, это должно быть дешево / бесплатно.

Для инструментария с открытыми исходными кодами lib и размещенного стека effxdb + grafana или ELK взгляните http://devmetrics.io/logslib и журналы / руководство по метрикам: http://www.devmetrics.io/blog/post/logs-vs-metrics-best-practices

Для проприетарных инструментов взгляните на http://datadoghq.com, http://newrelic.com, http://boundary.com

0
По вопросам рекламы [email protected]