Implement a metrics daemon to expose Prometheus metrics
[quassel.git] / src / common / quassel.cpp
index fdcd052..94c5ba2 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2018 by the Quassel Project                        *
+ *   Copyright (C) 2005-2019 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
@@ -37,7 +37,6 @@
 #include "bufferinfo.h"
 #include "identity.h"
 #include "logger.h"
-#include "logmessage.h"
 #include "message.h"
 #include "network.h"
 #include "peer.h"
@@ -99,7 +98,7 @@ void Quassel::quit()
     // Protect against multiple invocations (e.g. triggered by MainWin::closeEvent())
     if (!_quitting) {
         _quitting = true;
-        quInfo() << "Quitting...";
+        qInfo() << "Quitting...";
         if (_quitHandlers.empty()) {
             QCoreApplication::quit();
         }
@@ -291,9 +290,9 @@ void Quassel::handleSignal(AbstractSignalWatcher::Action action)
     case AbstractSignalWatcher::Action::Reload:
         // Most applications use this as the 'configuration reload' command, e.g. nginx uses it for graceful reloading of processes.
         if (!_reloadHandlers.empty()) {
-            quInfo() << "Reloading configuration";
+            qInfo() << "Reloading configuration";
             if (reloadConfig()) {
-                quInfo() << "Successfully reloaded configuration";
+                qInfo() << "Successfully reloaded configuration";
             }
         }
         break;
@@ -302,7 +301,7 @@ void Quassel::handleSignal(AbstractSignalWatcher::Action action)
             quit();
         }
         else {
-            quInfo() << "Already shutting down, ignoring signal";
+            qInfo() << "Already shutting down, ignoring signal";
         }
         break;
     case AbstractSignalWatcher::Action::HandleCrash:
@@ -337,6 +336,7 @@ void Quassel::setupCliParser()
             {"icontheme", tr("Override the system icon theme ('breeze' is recommended)."), tr("theme")},
             {"qss", tr("Load a custom application stylesheet."), tr("file.qss")},
             {"hidewindow", tr("Start the client minimized to the system tray.")},
+            {"account", tr("Account id to connect to on startup."), tr("account"), "0"},
         };
     }
 
@@ -359,12 +359,16 @@ void Quassel::setupCliParser()
              tr("The port quasselcore will listen at for ident requests. Only meaningful with --ident-daemon."),
              tr("port"),
              "10113"},
+            {"ident-listen", tr("The address(es) quasselcore will listen on for ident requests. Same format as --listen."), tr("<address>[,...]"), "::1,127.0.0.1"},
             {"oidentd", tr("Enable oidentd integration. In most cases you should also enable --strict-ident.")},
             {"oidentd-conffile", tr("Set path to oidentd configuration file."), tr("file")},
 #ifdef HAVE_SSL
             {"require-ssl", tr("Require SSL for remote (non-loopback) client connections.")},
             {"ssl-cert", tr("Specify the path to the SSL certificate."), tr("path"), "configdir/quasselCert.pem"},
             {"ssl-key", tr("Specify the path to the SSL key."), tr("path"), "ssl-cert-path"},
+            {"metrics-daemon", tr("Enable metrics API.")},
+            {"metrics-port", tr("The port quasselcore will listen at for metrics requests. Only meaningful with --metrics-daemon."), tr("port"), "9558"},
+            {"metrics-listen", tr("The address(es) quasselcore will listen on for metrics requests. Same format as --listen."), tr("<address>[,...]"), "::1,127.0.0.1"}
 #endif
         };
     }
@@ -390,6 +394,8 @@ void Quassel::setupCliParser()
         options += {
             {"debug-irc", tr("Enable logging of all raw IRC messages to debug log, including passwords!  In most cases you should also set --loglevel Debug")},
             {"debug-irc-id", tr("Limit raw IRC logging to this network ID.  Implies --debug-irc"), tr("database network ID"), "-1"},
+            {"debug-irc-parsed", tr("Enable logging of all parsed IRC messages to debug log, including passwords!  In most cases you should also set --loglevel Debug")},
+            {"debug-irc-parsed-id", tr("Limit parsed IRC logging to this network ID.  Implies --debug-irc-parsed"), tr("database network ID"), "-1"},
         };
     }