Простий збір статистики використовуючи Counter

    Ця стаття може бути вам цікава, якщо ви шукайте простий спосіб моніторингу стану вашого невеликого проекту і відомі засоби збору статистики не дуже підходять.
 
Отже, у вас є невеликий проект. Зазвичай у проекту є деякі характеристики, які можна виміряти. Крім вимірювання часто буває корисно подивитися зміна характеристики за деякий час. Це може допомогти виявити проблеми на початковій стадії. Наприклад, спостерігаючи за залишком вільного місця на сервері можна прогрозіровать аварійну зупинку сервісів. Аналогічно можна моніторити інші ресурси — наявність вільної пам'яті, завантаження процесорів.
 
 
(Спробуйте здогадатися, що це за графік — відповідь знаходиться в кінці статті)
 
 
 
Для вимірювання загальних характеристик існує досить багато рішень. Munin, Zabbix, Cacti, Nagios — для моніторингу серверів, Google Analytics — для збору статистики сайтів. Однак застосування цих рішень для конкретного проекту неминуче супроводжується ситуацією, коли стандартні характеристики вимірюють і логіруются вздовж і поперек, а от моніторинг специфічних для проекту характеристик вимірюється недостатньо добре.
 
Звичайно така ситуація невипадкова — про особливості вашого проекту розробники готових рішень не обізнані і максимум, що можуть запропонувати, це документацію з написання власних лічильників. Часто це пов'язано з внесенням змін в конфігураційні файли і з'ясування нюансів роботи конкретної системи.
 
Це якраз та ситуація, в якій на виручку приходить Counter — сервіс збору даних, основна мета якого — зробити створення лічильників і управління ними настільки простим, наскільки це тільки можливо. Зняття бар'єрів на шляху створення та управління лічильниками призводить до того, що їх стає можливо впроваджувати навіть на етапі прототипирования, що, в кінцевому рахунку, підвищує успішність реалізації.
 
Новий лічильник в сервісі Counter можна створити на сайті http://countersrv.com в один клік мишкою або безпосередньо з командного рядка:
 
 
$ curl http://countersrv.com/new -d ''
    { "edit" : "xEXbyBgEoW", "view" : "...", "update" : "..." }

 
За допомогою curl відправляється POST запит на сервер. Сервер створює лічильник і повертає ідентифікатори трьох точок доступу: edit — для редагування, view — для перегляду і update — для зміни. У режимі зміни можна тільки поміняти значення лічильника, але не можна прочитати поточне значення чи історію змін. Змінити історію лічильника неможливо в будь-якому режимі.
 
Основні команди лічильника:
 
 
POST /new - создать счетчик
    POST /{EDIT_ID} value={NUMBER} - установить значение в {NUMBER}
    POST /{EDIT_ID} title={TEXT} - установить новый заголовок
    POST /{UPDATE_ID} add={NUMBER} - добавить {NUMBER} к текущему значению
    POST /{UPDATE_ID} sub={NUMBER} - вычесть {NUMBER} из текущего значения
    GET /{VIEW_ID}/updates?from={FROM}&to={TO} - прочитать историю изменений
    GET /{VIEW_ID}/info - прочитать название, доступные точки доступа и значение

 
Для прикладу розглянемо такий вимір поведінки користувача, як натискання на елементі меню в настільки модних зараз односторінкових додатках. Для початку вимірювань досить зробити новий лічильник і додати відправку POST запиту на точку доступу update:
 
 
<li><a href="..." class="menu-item1">Заказы</a></li>

    $('.menu-item1').click(function () {
        $.post('http://countersrv.com/{UPDATE_ID}', { add : '1' },
            function (data) { console.log(data.updated); });
    });

 
Важливо використовувати адресу update-only точки доступу при зміні значення і read-only при поширенні посилання на графік.
 
Ну і перед початком роботи над цією статтею я виконав в терміналі свого макбуки наступну команду:
 
 
while [ 1 == 1 ]
    do
        curl http://countersrv.com/{UPDATE_ID} -d value=`wc -c counter.md | awk -F ' ' '{print $1}'`
        sleep 60
    done

 
і тепер у мене є цікава статистика процесу написання статті, подивитися на яку можна за посиланням http://countersrv.com/QGBdE7PNsy (це view id).
 
Осудна технічна підтримка доступна за адресою countersrv@gmail.com
 
Вдалих проектів!
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.