diff --git a/include/transport/admininterface.h b/include/transport/admininterface.h index 64082dd30200faaaa60b7dabc0bc7768e38d00f4..48f85dc17911cb3e4fa58d0067d5abf0ef173b87 100644 --- a/include/transport/admininterface.h +++ b/include/transport/admininterface.h @@ -48,6 +48,7 @@ class AdminInterface { UserManager *m_userManager; NetworkPluginServer *m_server; UserRegistration *m_userRegistration; + time_t m_start; }; } diff --git a/munin/spectrum2_ b/munin/spectrum2_ index 85e2c98d33c2709d7605337d008668aa383e82e8..7f61eca76dbbf9b9c163c59a562fd024b0f1ac09 100755 --- a/munin/spectrum2_ +++ b/munin/spectrum2_ @@ -105,47 +105,38 @@ if suffix == 'uptime': vlabel = "days" info = '' transformer = lambda value: float(value)/60.0/60.0/24.0 -elif suffix == 'registered': - stat = { 'users/registered': None } - title = "Registered users" - vlabel = "users" - info = 'Total users that registerd with spectrum transports.' elif suffix == 'backends_count': stat = { "backends_count": None } title = "Backends count" vlabel = "backends" info = 'Total number of backends.' elif suffix == 'online': - stat = { 'users/online': None } + stat = { 'online_users_count': None } title = "Online users" vlabel = "users" info = 'Number of users that currently use the spectrum transports.' -elif suffix == 'contacts_total': - stat = { 'contacts/total': None } - title = "Buddies in roster (total)" - vlabel = "users" - info = 'Total number of contacts that the users that registered with spectrum have.' -elif suffix == 'contacts_online': - stat = { 'contacts/online': None } - title = "Buddies online" - vlabel = "users" - info = 'Total number of contacts that are currently online.' elif suffix == 'messages': - stat = { 'messages/in': 'in', 'messages/out': 'out' } + stat = { 'messages_from_xmpp': 'from_xmpp', 'messages_to_xmpp': 'to_xmpp' } title = "Messages send over transport" vlabel = "messages" info = 'Total messages send over spectrum since the last restart.' elif suffix == 'messages_sec': - stat = { 'messages/in': 'in', 'messages/out': 'out' } + stat = { 'messages_from_xmpp': 'from_xmpp', 'messages_to_xmpp': 'to_xmpp' } title = "Messages send over transport per second" vlabel = "messages/sec" info = 'Messages send per second over spectrum transports.' elif suffix == 'memory': - stat = { 'memory-usage': None } + stat = { 'used_memory': None } title = "Memory usage of transports" vlabel = "megabytes" transformer = lambda value: float(value)/1024.0 info = 'Memory usage of spectrum transports.' +elif suffix == 'average_memory_per_user': + stat = { 'average_memory_per_user': None } + title = "Average memory usage per user" + vlabel = "kilobytes" + #transformer = lambda value: float(value)/1024.0 + info = 'Memory usage of spectrum transports.' # handle config if len( sys.argv ) > 1 and sys.argv[1] == 'config': diff --git a/src/admininterface.cpp b/src/admininterface.cpp index 85dca619b4755975f260482516b7a574ffe74d40..18704c93e86c7f3bc8de3a550fed914760625322 100644 --- a/src/admininterface.cpp +++ b/src/admininterface.cpp @@ -50,6 +50,7 @@ AdminInterface::AdminInterface(Component *component, UserManager *userManager, N m_userManager = userManager; m_server = server; m_userRegistration = userRegistration; + m_start = time(NULL); m_component->getStanzaChannel()->onMessageReceived.connect(bind(&AdminInterface::handleMessageReceived, this, _1)); } @@ -67,6 +68,9 @@ void AdminInterface::handleQuery(Swift::Message::ref message) { int backends = m_server->getBackendCount(); message->setBody("Running (" + boost::lexical_cast(users) + " users connected using " + boost::lexical_cast(backends) + " backends)"); } + else if (message->getBody() == "uptime") { + message->setBody(boost::lexical_cast(time(0) - m_start)); + } else if (message->getBody() == "online_users") { std::string lst; const std::map &users = m_userManager->getUsers(); @@ -246,6 +250,9 @@ void AdminInterface::handleQuery(Swift::Message::ref message) { } message->setBody(lst); } + else if (message->getBody() == "crashed_backends_count") { + message->setBody(boost::lexical_cast(m_server->getCrashedBackends().size())); + } else if (message->getBody() == "messages_from_xmpp") { int msgCount = m_userManager->getMessagesToBackend(); message->setBody(boost::lexical_cast(msgCount)); @@ -299,6 +306,7 @@ void AdminInterface::handleQuery(Swift::Message::ref message) { help += "General:\n"; help += " status - shows instance status\n"; help += " reload - Reloads config file\n"; + help += " uptime - returns ptime in seconds\n"; help += "Users:\n"; help += " online_users - returns list of all online users\n"; help += " online_users_count - number of online users\n"; @@ -314,6 +322,7 @@ void AdminInterface::handleQuery(Swift::Message::ref message) { help += "Backends:\n"; help += " backends_count - number of active backends\n"; help += " crashed_backends - returns IDs of crashed backends\n"; + help += " crashed_backends_count - returns number of crashed backends\n"; help += "Memory:\n"; help += " res_memory - Total RESident memory spectrum2 and its backends use in KB\n"; help += " shr_memory - Total SHaRed memory spectrum2 backends share together in KB\n";