Commit 1b7cc5fc authored by Pavel Vainerman's avatar Pavel Vainerman

(LogDB): добавил префиксы для настроечных параметров

--prefix-db-xxx - для настроек касающихся БД --prefix-ls-xxx - для настроек касающихся работы с логсерверами --prefix-ws-xxx - для настроек касающихся websocket-ов
parent c5dd0f7f
...@@ -83,15 +83,15 @@ LogDB::LogDB( const string& name, int argc, const char* const* argv, const strin ...@@ -83,15 +83,15 @@ LogDB::LogDB( const string& name, int argc, const char* const* argv, const strin
UniXML::iterator it(cnode); UniXML::iterator it(cnode);
qbufSize = uniset::getArgPInt("--" + prefix + "buffer-size", argc, argv, it.getProp("bufferSize"), qbufSize); qbufSize = uniset::getArgPInt("--" + prefix + "db-buffer-size", argc, argv, it.getProp("dbBufferSize"), qbufSize);
maxdbRecords = uniset::getArgPInt("--" + prefix + "max-records", argc, argv, it.getProp("maxRecords"), qbufSize); maxdbRecords = uniset::getArgPInt("--" + prefix + "db-max-records", argc, argv, it.getProp("dbMaxRecords"), qbufSize);
maxwsocks = uniset::getArgPInt("--" + prefix + "max-websockets", argc, argv, it.getProp("maxWebsockets"), maxwsocks); maxwsocks = uniset::getArgPInt("--" + prefix + "ws-max", argc, argv, it.getProp("wsMax"), maxwsocks);
double checkConnection_sec = atof( uniset::getArg2Param("--" + prefix + "check-connection-sec", argc, argv, it.getProp("checkConnectionSec"), "5").c_str()); double checkConnection_sec = atof( uniset::getArg2Param("--" + prefix + "ls-check-connection-sec", argc, argv, it.getProp("lsCheckConnectionSec"), "5").c_str());
int bufSize = uniset::getArgPInt("--" + prefix + "read-buffer-size", argc, argv, it.getProp("readBufferSize"), 10001); int bufSize = uniset::getArgPInt("--" + prefix + "ls-read-buffer-size", argc, argv, it.getProp("lsReadBufferSize"), 10001);
std::string s_overflow = uniset::getArg2Param("--" + prefix + "overflow-factor", argc, argv, it.getProp("overflowFactor"), "1.3"); std::string s_overflow = uniset::getArg2Param("--" + prefix + "db-overflow-factor", argc, argv, it.getProp("dbOverflowFactor"), "1.3");
float ovf = atof(s_overflow.c_str()); float ovf = atof(s_overflow.c_str());
numOverflow = lroundf( (float)maxdbRecords * ovf ); numOverflow = lroundf( (float)maxdbRecords * ovf );
...@@ -368,15 +368,19 @@ void LogDB::help_print() ...@@ -368,15 +368,19 @@ void LogDB::help_print()
cout << "Default: prefix='logdb'" << endl; cout << "Default: prefix='logdb'" << endl;
cout << "--prefix-single-confile conf.xml - Отдельный конфигурационный файл (не требующий структуры uniset)" << endl; cout << "--prefix-single-confile conf.xml - Отдельный конфигурационный файл (не требующий структуры uniset)" << endl;
cout << "--prefix-name name - Имя. Для поиска настроечной секции в configure.xml" << endl; cout << "--prefix-name name - Имя. Для поиска настроечной секции в configure.xml" << endl;
cout << "--prefix-buffer-size sz - Размер буфера (до скидывания в БД)." << endl; cout << "database: " << endl;
cout << "--prefix-max-records sz - Максимальное количество записей в БД. При превышении, старые удаляются. 0 - не удалять" << endl; cout << "--prefix-db-buffer-size sz - Размер буфера (до скидывания в БД)." << endl;
cout << "--prefix-overflow-factor float - Коэффициент переполнения, после которого запускается удаление старых записей. По умолчанию: 1.3" << endl; cout << "--prefix-db-max-records sz - Максимальное количество записей в БД. При превышении, старые удаляются. 0 - не удалять" << endl;
cout << "--prefix-max-websockets num - Максимальное количество websocket-ов" << endl; cout << "--prefix-db-overflow-factor float - Коэффициент переполнения, после которого запускается удаление старых записей. По умолчанию: 1.3" << endl;
cout << "--prefix-check-connection-sec sec - Период проверки соединения с логсервером" << endl;
cout << "--prefix-read-buffer-size num - Размер буфера для чтения сообщений от логсервера. Deault: 10001" << endl;
cout << "--prefix-db-disable - Отключить запись в БД" << endl; cout << "--prefix-db-disable - Отключить запись в БД" << endl;
cout << "websockets: " << endl;
cout << "--prefix-ws-max num - Максимальное количество websocket-ов" << endl;
cout << "logservers: " << endl;
cout << "--prefix-ls-check-connection-sec sec - Период проверки соединения с логсервером" << endl;
cout << "--prefix-ls-read-buffer-size num - Размер буфера для чтения сообщений от логсервера. Deault: 10001" << endl;
cout << "http: " << endl; cout << "http: " << endl;
cout << "--prefix-httpserver-max-queued num - Размер очереди запросов к http серверу. Default: 100" << endl; cout << "--prefix-httpserver-max-queued num - Размер очереди запросов к http серверу. Default: 100" << endl;
cout << "--prefix-httpserver-max-threads num - Разрешённое количество потоков для http-сервера. Default: 3" << endl; cout << "--prefix-httpserver-max-threads num - Разрешённое количество потоков для http-сервера. Default: 3" << endl;
......
...@@ -90,10 +90,10 @@ namespace uniset ...@@ -90,10 +90,10 @@ namespace uniset
\section sec_LogDB_DB LogDB Работа с БД \section sec_LogDB_DB LogDB Работа с БД
Для оптимизации, запись в БД сделана не по каждому сообщению, а через промежуточнй буффер. Для оптимизации, запись в БД сделана не по каждому сообщению, а через промежуточнй буффер.
Т.е. только после того как в буфере скапливается \a qbufSize сообщений (строк) буфер скидывается в базу. Т.е. только после того как в буфере скапливается \a qbufSize сообщений (строк) буфер скидывается в базу.
Помимо этого, встроен механизм "ротации БД". Если задан параметр maxRecords (--prefix-max-records), Помимо этого, встроен механизм "ротации БД". Если задан параметр maxRecords (--prefix-db-max-records),
то в БД будет поддерживаться ограниченное количество записей. При этом введён "гистерезис", то в БД будет поддерживаться ограниченное количество записей. При этом введён "гистерезис",
т.е. фактически удаление старых записей начинается при переполнении БД определяемом коэффициентом т.е. фактически удаление старых записей начинается при переполнении БД определяемом коэффициентом
переполнения overflowFactor (--prefix-overflow-factor). По умолчанию 1.3. переполнения overflowFactor (--prefix-db-overflow-factor). По умолчанию 1.3.
\section sec_LogDB_REST LogDB REST API \section sec_LogDB_REST LogDB REST API
LogDB предоставляет возможность получения логов через REST API. Для этого запускается LogDB предоставляет возможность получения логов через REST API. Для этого запускается
...@@ -130,7 +130,7 @@ namespace uniset ...@@ -130,7 +130,7 @@ namespace uniset
\endcode \endcode
Где \a logname - это имя логсервера от которого мы хотим получать логи (см. \ref sec_LogDB_Conf). Где \a logname - это имя логсервера от которого мы хотим получать логи (см. \ref sec_LogDB_Conf).
Количество создаваемых websocket-ов можно ограничить при помощи параметр maxWebsockets (--prefix-max-websockets). Количество создаваемых websocket-ов можно ограничить при помощи параметр maxWebsockets (--prefix-ws-max).
\section sec_LogDB_DETAIL LogDB Технические детали \section sec_LogDB_DETAIL LogDB Технические детали
......
...@@ -6,8 +6,8 @@ ulimit -Sc 1000000 ...@@ -6,8 +6,8 @@ ulimit -Sc 1000000
./uniset2-logdb --confile test.xml --logdb-name LogDB \ ./uniset2-logdb --confile test.xml --logdb-name LogDB \
--logdb-log-add-levels any \ --logdb-log-add-levels any \
--logdb-dbfile ./test.db \ --logdb-dbfile ./test.db \
--logdb-buffer-size 5 \ --logdb-db-buffer-size 5 \
--logdb-httpserver-port 8888 \ --logdb-httpserver-port 8888 \
--logdb-max-records 20000 \ --logdb-db-max-records 20000 \
$* $*
...@@ -5,8 +5,8 @@ ulimit -Sc 1000000 ...@@ -5,8 +5,8 @@ ulimit -Sc 1000000
#uniset2-start.sh -g \ #uniset2-start.sh -g \
./uniset2-logdb --logdb-single-confile logdb-conf.xml --logdb-name LogDB --logdb-db-disable \ ./uniset2-logdb --logdb-single-confile logdb-conf.xml --logdb-name LogDB --logdb-db-disable \
--logdb-log-add-levels any \ --logdb-log-add-levels any \
--logdb-dbfile ./test.db \ --logdb-db-dbfile ./test.db \
--logdb-buffer-size 5 \ --logdb-db-buffer-size 5 \
--logdb-httpserver-port 8888 \ --logdb-httpserver-port 8888 \
--logdb-max-records 20000 \ --logdb-db-max-records 20000 \
$* $*
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment