Перейти к содержимому
SDV

Библиотека мониторинга lua-программ в реальном времени

Рекомендуемые сообщения

[OC] Библиотека мониторинга lua-программ в реальном времени

Версия: 0.0.4

Последнее обновление версии в шапке 05.09.2015

 

cover.png

Описание:

[OC] Библиотека мониторинга lua-программ в реальном времени - библиотека для OC-устройств, оснащенных интернет-картами, для отправки статистики работы на сервер с дальнейшем его сохранении. Результат работы программы Вы можете видеть в реальном времени в панели управлении (dashboard).

 

Инструкция как пользоваться библиотекой:

 

  • Для использования библиотеки monitoring() необходимо создать токен для сохранения и вывода результатов работы lua-программ на сайте.
  • Затем Вам необходимо закачать на OC-компьютер (робот или планшет) библиотеку monitoring() любым из предложенных способов:

    1. Ввести команду pastebin run UYuriRia на OC-устройстве (необходимо наличие на OC-устройстве интернет-карты)

    2. Использовать команду wget -f http://pastebin.com/raw.php?i=UYuriRia monitoring.lua на OC-устройстве (необходимо наличие на OC-устройстве интернет-карты)

    3. Скачать с сайта pastebin.com и перенести файл на OC-устройство (например путем копирования).

  • Создайте lua-файл. И подключите библиотеку monitoring().

    Листинг кода:

    require("monitoring") -- подключаем библиотеку (при условии того что название файла библиотеки monitoring.lua)
    
    monitoring(token, email, data, debug) -- отправка данных (data) на сервис
    token - уникальный код доступа, генерируемый (или лично создаваемый пользователем) при создании нового токена.

    email - e-mail указанный при регистрации токена.

    data - данные (строка, которые будут передаваться на сервер (можно передавать что угодно, любые данные. Это желание самого программиста. Вас никто ни в чем не ограничивает )

    debug - необязательный параметр, отвечающий за вывод ответа сервера в OC-программе (может принимать 2 значения - true (показывать) и false (не показывать)). Если не указан данный параметр, то он по-умолчанию false (не показывать ответ сервера).

    ВНИМАНИЕ! Данный параметр не отключает вывод ошибок сервера в случаи отказа в подключении (неверный токен или e-mail).

  • Авторизуйтесь в панели управления, используя токен и e-mail.
  • Следите за работой lua-программы в реальном времени. При необходимости Вы можете сохранить лог работы lua-программы себе на компьютер.
  • При желании Вы можете получать новые обновления для библиотеки monitoring().

    Для обновления библиотеки введите в консоле: monitoring upgrade

 

 

Практическое применение библиотеки (самый простой пример с роботом):

 

 

local robot = require("robot")

loca m = require("monitoring")

local token = 'nametoken'

local email = 'email@mail.com'

i = 0

while true do

i = i + 1

robot.forward()

m.send(token, email, 'Робот прошел '..i..' шагов')

if i = 10 then

m.send(token, email, 'Робот прошел '..i..' шагов и остановился')

break

end

end

 

 

Функция clear():

 

 

Данная функция очищает лог-файл, делая его чистым для повторного использования.

Его структура:

local m = require("monitoring")

m.clear(token, email, debug)
Также есть эквивалент консольной очистки: monitoring clear [имя_токена]

Есть еще один 4-й аргумент debug, если он true, то в консоли выведется сообщение о успешной очистке лог-файла.

 

 

 

Все функции и консольные команды библиотеки:

 

 

Функции:

local m = require("monitoring")

m.send(token, email, data, debug)

m.clear(token, email, debug)

m.register(token, email, author, description, temporary, public)

m.echo(token, email)

m.delete(token, email)
Консольные команды:

monitoring send [имя_токена] [данные которые будут передаваться. данный аргумент должен быть в кавычках] [debug-аргумент (необязательный)]

Команда для отправки сообщения (data). Аргумент debug не обязателен, по-умолчанию он false.

 

monitoring clear [имя_токена] [debug-аргумент (необязательный)]

Команда для очистки лог-файла для повторного использования

 

monitoring register [имя_токена] [имя_автора] [описание_для_токена] [временный_токен?] [публичный_токен?]

Команда для регистрации нового токена. Необязательными аргументами являются [временный_токен] и [публичный_токен]. Если не указан true, то токен НЕ временный и НЕ публичный

 

monitoring echo [имя_токена]

Команда для вывода лог-файла в OC.

 

monitoring delete [имя_токена]

Команда для удаления токена. В дальнейшем можно будет заново создать токен с тем же именем (при условии что они не будет занято)

 

monitoring upgrade

Команда для обновления библиотеки (скачивает последнюю версию с пастебина)

 

 

 

ChangeLog:

 

 

# ChangeLog
Все заметные изменения в этом проекте будут отражены в этом файле.
Этот проект придерживается [Semantic Versioning](semver.org).

## [Невыпущенный] [неизданные]
### Добавлено
- Генератор имени токенов для lua-библиотеки.

## [0.0.4] - 2015-09-04
### Добавлено
- Консольные команды и API для lua-библиотеки, добавляющая функции регистрации, вывода, удаления токена (register, echo, delete)).

## [0.0.3] - 2015-09-04
### Добавлено
- Добавлена кнопка очистки лог-файла (также добавлена функция в библиотеку clear(token, email) надо лишь обновить библиотеку: monitoring upgrade). По просьбе AlexCC
- Публичные токены. Теперь если хотите можете показывать работу своих программ всем. Публичность устанавливается при регистрации токена. Все публичные токены есть в этом списке. По просьбе AlexCC

### Изменено
- Настройка цвета поля лог-файла. Добавлены 2 кнопки ниже поля лога-файла (в правом углу где кнопка сохранить). Левая изменяет цвет текста, правая - цвет фона. По просьбе AlexCC

### Исправлено
- Нормальная AJAX загрузка контента. Теперь можно спокойно листать лог-файл, в том числе и вбок. AJAX подрузка теперь не мешает читать. По просьбе Fingercomp

## [0.0.2] - 2015-09-03
### Добавлено
- Регистрация в базу данных SQL.
- API для отправки lua-библиотекой данных send().
- Консольная команда send.
- Консольная команда upgrade для обновления библиотеки.

## [0.0.1] - 2015-09-03
### Добавлено
- Базовый сайт и lua-библиотека, отправляющая данные и сохраняющая их в лог-файле.

 

 

Скачать:

Библиотека версии 0.0.4 pastebin.com/UYuriRia

 

Изменено пользователем TuxShot

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В чем практическое использование программы? Скидывать на свой сайтик инфу о там как твой робот напоролся на лавовое озеро и ему срочно нужны криперовы какашки чтобы заделать лаву?

И где скрины?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В чем практическое использование программы? Скидывать на свой сайтик инфу о там как твой робот напоролся на лавовое озеро и ему срочно нужны криперовы какашки чтобы заделать лаву?

И где скрины?

Ага именно [emoji41]

 

Какие скрины? На главной сайта есть скрин. Больше там ничего особенного нет.

Были бы чанклоадеры у всех, то эта либа очень помогла бы им (не надо заходить в игру чтобы посмотреть что делает роботик или комп)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Крутая штука!

 

А нет ли возможности там сделать еще мониторилку с паблик доступом? Чтобы к ней мог  подключиться и посмотреть каждый, но создать ее мог только админ? Типа админ-трынделки, объявления, какой онлайн, какие-то игровые события и прочее, вплоть до того. что админ туда админчатбоксом ретранслирует чуть-ли не игровой чат(сообщения игроков) и прочее, но чтобы его можно только было посмотреть по ссылочке, но не редачить и тем более удалить комнатку (файл-токен) и т.п.? И время там в строке по умолчанию аттачится?

 

И  есть хотелка передавать еще одним аргументом цвет сообщения. Это можно там как-то реализовать или нет? И какой предел сообщений (размер файла), если есть, то какой? Будет ли кнопка "Очистить файл"? Что такое аргумент debug, куда он передается, это аргумент для тебя для отладки вебки? Юзверю он не обязателен? Будет ли когда-то метод m.clear(token, email), который позволит очистить файл из игрового пространства? В аяксе это жестко зашито,  апдейтилка контента 1 миллисекунда? Или это настраивается? 

 

П.С. Дима! И с кодировкой глянь, пжлст, что там за попка. Если сендить рус., вылезает вот это. (http://puu.sh/jZngK/65721cd621.png)

И может токен убрать с панели, чтобы "палева" не было?

Изменено пользователем AlexCC

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сайтик классный, мне нравится дизайн. Аккуратный и красивый.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Вот скриншотик ситуации (text-wrap какой-то нужно ставить нормальный, без полосочек этих) + демонстрация отличной работы кодировочных элементов (отправлено через прямой пост-запрос хтпэсовский с компьютера)

 

 

yKdQfD6.png

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Нельзя посмотреть потому что textarea грузиться через AJAX с 1 мс. обновлением (я уже говорил).

Можно конечно выключить обновление, тогда спокойно можно будет смотреть логи, но придется в ручную обновлять страницу, чтобы посмотреть новые результаты.

Насчет выехавших полей могу лишь сделать перенос в textarea.

 

Сайтик классный, мне нравится дизайн. Аккуратный и красивый.

Спасибо третьему bootstrap-у за это :-) (радует что хоть адаптивный дизайн для мобилок есть)

 

А нет ли возможности там сделать еще мониторилку с паблик доступом? Чтобы к ней мог подключиться и посмотреть каждый, но создать ее мог только админ? Типа админ-трынделки, объявления, какой онлайн, какие-то игровые события и прочее, вплоть до того. что админ туда админчатбоксом ретранслирует чуть-ли не игровой чат(сообщения игроков) и прочее, но чтобы его можно только было посмотреть по ссылочке, но не редачить и тем более удалить комнатку (файл-токен) и т.п.? И время там в строке по умолчанию аттачится?

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

Но можно сделать и публичные. При регистрации еще поставить галочку "Публичный токен".

То есть в нем будет светиться только название токена и его содержимое (e-mail как раз будет логином для публикации, чтобы никто другой не смог на публичный токен что-нибудь залить).

 

И есть хотелка передавать еще одним аргументом цвет сообщения. Это можно там как-то реализовать или нет? И какой предел сообщений (размер файла), если есть, то какой? Будет ли кнопка "Очистить файл"? Что такое аргумент debug, куда он передается, это аргумент для тебя для отладки вебки? Юзверю он не обязателен? Будет ли когда-то метод m.clear(token, email), который позволит очистить файл из игрового пространства? В аяксе это жестко зашито, апдейтилка контента 1 миллисекунда? Или это настраивается?

Хм, можно и цвет, тем более это не надо на сервер отправлять, это клиентская фича :)

Размер файла да безлимитный вроде, все упрется в хостинг c9.io в 1 Гб. на репу.

Насчет очистки файла спасибо за совет, надо добавить. (над функцией clear() надо тоже подумать).

Насчет AJAX я уже выше ответил @@Fingercomp. Я не знаю надо почитать как сделать div с прокруткой, раз с textarea фокус не проходит.

Насчет кодировки я не понял в чем проблема. Стоит везде и на пыхе и апаче utf-8. У тебя в браузере автодетект кодировки?

А про параметр debug я написал на сайте что он не обязателен, просто если он true, то он тупо выводит то что он отправил на сервер на экран OC и все (тупо фича показывает что функция отправляет данные успешно).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нельзя посмотреть потому что textarea грузиться через AJAX с 1 мс. обновлением (я уже говорил).

Можно конечно выключить обновление, тогда спокойно можно будет смотреть логи, но придется в ручную обновлять страницу, чтобы посмотреть новые результаты.

Насчет выехавших полей могу лишь сделать перенос в textarea.

хм...

А фокус со считыванием scrollTop/scrollLeft, обновлением и записыванием обратно в scrollTop/scrollLeft не катит?

П.С. Дима! И с кодировкой глянь, пжлст, что там за попка. Если сендить рус., вылезает вот это. (http://puu.sh/jZngK/65721cd621.png)

С кодировкой проблема ЯВНО не на дашборде) Проблема с сервером Майнача (ну, это ж Винда, конечно же она с UTF-8 нормально не работала никогда на моей памяти) или с кодировкой файлов. На виндосервере Файна на тесте Дримса я отсылал на пастбин прогу, когда скачал на хосте текущем — там ненормаль творилась.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Насчёт проблемы с прокруткой. Что если после Аякс запроса сравнивать информацию которая пришла и которая была. Если они отличаются то заменять ту которая была той которая пришла.

 

ПС: Извините за мой французский.

Изменено пользователем LeshaInc

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

С кодировкой проблема ЯВНО не на дашборде) Проблема с сервером Майнача (ну, это ж Винда, конечно же она с UTF-8 нормально не работала никогда на моей памяти) или с кодировкой файлов. На виндосервере Файна на тесте Дримса я отсылал на пастбин прогу, когда скачал на хосте текущем — там ненормаль творилась.

да при чем тут виндовс? И когда это винда не работала с UTF-8?  Это что-то новенькое :o

 

Скачал файл. Файл там изначально в кодировке ANSI  http://puu.sh/jZwL3/db399dcc2b.png  Если его конвертировать в UTF,

то вот - http://puu.sh/jZwLL/0c3b6cdebd.png

Там где-то каша с кодировками какая-то. Я понимаю черную зависть линуксоидов с выходом win10, но не надо же так люто и еще больше теперь за это ненавидеть винду :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

да при чем тут виндовс? И когда это винда не работала с UTF-8?  Это что-то новенькое :o

 

Скачал файл. Файл там изначально в кодировке ANSI  http://puu.sh/jZwL3/db399dcc2b.png  Если его конвертировать в UTF,

то вот - http://puu.sh/jZwLL/0c3b6cdebd.png

Там где-то каша с кодировками какая-то. Я понимаю черную зависть линуксоидов с выходом win10, но не надо же так люто и еще больше теперь за то ненавидеть винду :D

Тогда почему скачанный мною файл ИЗНАЧАЛЬНО был в кодировочке UTF-8 и отображался нормально?..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тогда почему скачанный мною файл ИЗНАЧАЛЬНО был в кодировочке UTF-8 и отображался нормально?..

Вот это я и хочу узнать у Димы!)))), а не переустанавливать ОS, чтобы читать смс-ки с дашборда)))

Оно должно читаться на всех ОS и как минимум всех популярных браузерах, учитывая то, что 99,99% юзают винду.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кстати, TuhShot, вот тебе идея. Что если сделать так, чтобы компы не просто смс-ки кидали на дэшбоард, а всякую зашифрованный информацию. Например какому-нибудь счётчика отправляют число которое нужно указать на панельке, или данные диаграмме отправляют. Это могло-бы выглядеть так:

181.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тогда почему скачанный мною файл ИЗНАЧАЛЬНО был в кодировочке UTF-8 и отображался нормально?..

Вот именно, что я сторонник UTF-8. Только ЮНИКОД, только ХАРДКОР.

 

Вот это я и хочу узнать у Димы!)))), а не переустанавливать ОS, чтобы читать смс-ки с дашборда)))

Оно должно читаться на всех ОS и как минимум всех популярных браузерах, учитывая то, что 99,99% юзают винду.

Не знаю у меня все норма :-) Потому что мы с Fingercomp юзаем пингвина, а вы нет :-D

А что если на винде открыть этот файл в notepad++ что она скажет?

 

Кстати, TuhShot, вот тебе идея. Что если сделать так, чтобы компы не просто смс-ки кидали на дэшбоард, а всякую зашифрованный информацию. Например какому-нибудь счётчика отправляют число которое нужно указать на панельке, или данные диаграмме отправляют. Это могло-бы выглядеть так:

Это надо уже юзать базу и все там хранить.

Я пошел от простого.

 

Пожалуйста, c9.io вам в помощь склепайте то что вы предложили :)

Мне сейчас просто мало времени остается на кодинг...

Учеба...Магистр...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это надо уже юзать базу и все там хранить.Я пошел от простого.Пожалуйста, c9.io вам в помощь склепайте то что вы предложили :)Мне сейчас просто мало времени остается на кодинг...Учеба...Магистр...

А я попробую... Если время будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

UPD:

Патчи лля программы и сервиса:

  • Нормальная AJAX загрузка контента. Теперь можно спокойно листать лог-файл, в том числе и вбок. AJAX подрузка теперь не мешает читать. По просьбе @Fingercomp
  • Добавлена кнопка очистки лог-файла (также добавлена функция в программу clear(token, email) надо лишь обновить библиотеку: monitoring upgrade). По просьбе
  • Публичные токены. Теперь если хотите можете показывать работу своих программ всем. Публичность устанавливается при регистрации токена. Все публичные токены есть в этом списке. По просьбе
  • Настройка цвета поля лог-файла. Добавлены 2 кнопки ниже поля лога-файла (в правом углу где кнопка сохранить). Левая изменяет цвет текста, правая - цвет фона. По просьбе
P.S. Из-за введения публичных токенов мне пришлось дропать базу, поэтому все ранее созданные токены были удалены (я конечно знаю кто их создал, но ни имена, ни тем более e-mail-ы их говорить я не буду :) ).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
e-mail-ы

 

Я вообще зарегестрировал токен на псевдо-имэйл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я вообще зарегестрировал токен на псевдо-имэйл.

А я сразу догадался, кто создал мегасуперсложный токен, состоящий только из одних чисел :-D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А я сразу догадался, кто создал мегасуперсложный токен, состоящий только из одних чисел :-D

B-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

...

 

Так и должно быть (см. кол-во строк)?

 

 

PXATfwA.png

 

 

 

P. S. Только заметил (см. вр. обн.). При удалении токена в лог сыпятся ошибки стэктрейсовые (не успел разглядеть). Что-то в пхп напортачено.

 

P. P. S. Лучше для публичных токенов делать указываемое ИМЯ, а не использовать название токена заместо него. email легко узнать, я бы сказал, СЛИШКОМ легко.

Изменено пользователем Fingercomp

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...