// codeart.ru / Офтопик / Пассивный заработок в сети для программистов. Система сбора статистики. Форум

Пассивный заработок в сети для программистов. Система сбора статистики. rss подписка

Автор: Evgeniy Sergeev

В серии постов я хочу рассказать о системе пассивного заработка, которую я создаю и развиваю в последний год. Идея в том, чтобы постоянно наращивать объемы пассивного заработка. Даже если начать с пустякового дохода и постоянно его увеличивать, то можно получить неплохие результаты. В этом посте расскажу о концепции системы сбора данных. Поехали.
[social_lock]
Краеугольным камнем моей системы пассивного заработка является — система сбора статистики. Она состоит из следующих компонент:

— Grafana (подсистема визуализации);
— Prometheus.io + PushGateWay (подсистема сбора и анализа);
— PhantomJS+Selenium (сборщик данных).

Для того чтобы оценить прогресс в достижении поставленной задачи, нужно выявить какие-либо измеримые показатели данного успеха и заняться улучшением этих показателей. Примерно так я формулирую для себя основную задачу для подсистемы статистики.

Сейчас я собираю две группы данных:

Экономические данные: поступления реферальных (деньги, которые я получаю если кто-то подпишется по моей реферальной ссылке), прямые поступления от продажи моего софта (пока я продаю только плагины для MetaTrader), доходы от прямых продаж сервисов (когда кто-то подписывается на мои сервисы);
Технические данные: количество посетителей, подписчиков, переходов по ссылкам. Эта информация мне нужно чтобы посчитать ROI и определиться с целями.

Огромное количество статистики нужно получать из веб-интерфейса сайта. Например, информацию о реферальных поступлениях от большинства сервисов можно получить только из веб-интерфейса. Обходить все сервисы вручную — нереально. Поэтому с помощью Selenium я записываю сценарии, которые «выдирают» нужные показатели из HTML и передают в виде метрик.

Все сценарии собираются в единый пул и запускаются один раз в сутки по расписанию. Визуализацию я делаю с помощью отдельного дашборда в Grafan-е.

Кроме этого есть набор метрик, которые можно получить через API. Но подключать API к системе статистики — это отдельная песня, поэтому в целях экономии времени на разработку я делаю все по-старому — через PhantomJS+Selenium.

По времени последовательный сбор 120-150 метрик занимает около 40 минут, но так сбор происходит в фоне, меня это сильно не беспокоит. Сбор происходит с помощью bash-скрипта.

Команды по сбору html-метрик имеют следующий вид:

node http_metric_mql5.js | curl —silent —data-binary @- http://localhost:9091/metrics/job/econimic_metrics > /dev/null

Где http_metric_mql5.js имеет следующий вид:

var wd = require('selenium-webdriver');
//var assert = require('assert');

var URL = 'https://www.url.com/ru/auth_login';

var client = new wd.Builder()
.withCapabilities(wd.Capabilities.phantomjs())
.build();
client.getWindowHandle();

client.get(URL).then(function() {
client.findElement({ name: 'Login' }).sendKeys('login');
client.findElement({ name: 'Password' }).sendKeys('password');
client.findElement({ css: '.button_yellow' }).click();
client.get('https://www.mql5.com/ru/users/saltrade/accounting');
client.findElement({css:"em.realBalance"}).getText().then(function (text) {
console.log("real_mql_balance "+parseInt(text));
});

client.quit();
});

Команды по сбору метрик из журнального файла имеею такой вид:

grep -c «email=» /home/sal/www/services/log/production.log | awk ‘{ print «mails_count», $0; fflush() }’ | curl —silent —data-binary @- http://localhost:9091/metrics/job/performance

Таким образом, можно собирать абсолютно любые метрики для анализа.

Благодаря системе сбора статистики я могу определить наиболее эффективные направления для развития и оценить динамику развития. Если кому-то интересно более подробно узнать как устроена данная система, то пишите в комментарии и я сделаю видео на эту тему.
[/social_lock]

  1. О, да! Статистика — это круть.

Leave a Reply

« »