Repository: mesos Updated Branches: refs/heads/master c010c5c93 -> c8847ac92
Added support for disabling glog initialization for drivers. Review: https://reviews.apache.org/r/24687 Project: http://git-wip-us.apache.org/repos/asf/mesos/repo Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/c8847ac9 Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/c8847ac9 Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/c8847ac9 Branch: refs/heads/master Commit: c8847ac92030c9910998344e800651c4ade6aa19 Parents: c010c5c Author: Vinod Kone <[email protected]> Authored: Tue Aug 12 10:51:36 2014 -0700 Committer: Vinod Kone <[email protected]> Committed: Fri Aug 15 10:36:35 2014 -0700 ---------------------------------------------------------------------- include/mesos/executor.hpp | 7 +++++++ include/mesos/scheduler.hpp | 7 +++++++ src/exec/exec.cpp | 19 ++++++++++++++++++- .../org/apache/mesos/MesosExecutorDriver.java | 8 ++++++++ .../org/apache/mesos/MesosSchedulerDriver.java | 8 ++++++++ src/logging/flags.hpp | 7 +++++++ src/sched/sched.cpp | 7 ++++++- src/scheduler/scheduler.cpp | 7 ++++++- 8 files changed, 67 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/mesos/blob/c8847ac9/include/mesos/executor.hpp ---------------------------------------------------------------------- diff --git a/include/mesos/executor.hpp b/include/mesos/executor.hpp index ed2330f..07a468d 100644 --- a/include/mesos/executor.hpp +++ b/include/mesos/executor.hpp @@ -228,6 +228,13 @@ public: * MesosExecutorDriver::join) doesn't affect the executor callbacks in * anyway because they are handled by a different thread. * + * Note that the driver uses GLOG to do its own logging. GLOG flags can + * be set via environment variables, prefixing the flag name with + * "GLOG_", e.g., "GLOG_v=1". For Mesos specific logging flags see + * src/logging/flags.hpp. Mesos flags can also be set via environment + * variables, prefixing the flag name with "MESOS_", e.g., + * "MESOS_QUIET=1". + * * See src/examples/test_executor.cpp for an example of using the * MesosExecutorDriver. */ http://git-wip-us.apache.org/repos/asf/mesos/blob/c8847ac9/include/mesos/scheduler.hpp ---------------------------------------------------------------------- diff --git a/include/mesos/scheduler.hpp b/include/mesos/scheduler.hpp index 8027272..42e4e27 100644 --- a/include/mesos/scheduler.hpp +++ b/include/mesos/scheduler.hpp @@ -339,6 +339,13 @@ public: * MesosSchedulerDriver::join) doesn't affect the scheduler callbacks * in anyway because they are handled by a different thread. * + * Note that the driver uses GLOG to do its own logging. GLOG flags can + * be set via environment variables, prefixing the flag name with + * "GLOG_", e.g., "GLOG_v=1". For Mesos specific logging flags see + * src/logging/flags.hpp. Mesos flags can also be set via environment + * variables, prefixing the flag name with "MESOS_", e.g., + * "MESOS_QUIET=1". + * * See src/examples/test_framework.cpp for an example of using the * MesosSchedulerDriver. */ http://git-wip-us.apache.org/repos/asf/mesos/blob/c8847ac9/src/exec/exec.cpp ---------------------------------------------------------------------- diff --git a/src/exec/exec.cpp b/src/exec/exec.cpp index 15d41eb..36d1778 100644 --- a/src/exec/exec.cpp +++ b/src/exec/exec.cpp @@ -48,6 +48,7 @@ #include "common/protobuf_utils.hpp" #include "common/type_utils.hpp" +#include "logging/flags.hpp" #include "logging/logging.hpp" #include "messages/messages.hpp" @@ -581,6 +582,17 @@ MesosExecutorDriver::MesosExecutorDriver(Executor* _executor) { GOOGLE_PROTOBUF_VERIFY_VERSION; + // Load any logging flags from the environment. + logging::Flags flags; + + Try<Nothing> load = flags.load("MESOS_"); + + if (load.isError()) { + status = DRIVER_ABORTED; + executor->error(this, load.error()); + return; + } + // Create mutex and condition variable pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); @@ -592,7 +604,12 @@ MesosExecutorDriver::MesosExecutorDriver(Executor* _executor) // Initialize libprocess. process::initialize(); - // TODO(benh): Initialize glog. + // Initialize logging. + if (flags.initialize_driver_logging) { + logging::initialize("mesos", flags); + } else { + VLOG(1) << "Disabling initialization of GLOG logging"; + } } http://git-wip-us.apache.org/repos/asf/mesos/blob/c8847ac9/src/java/src/org/apache/mesos/MesosExecutorDriver.java ---------------------------------------------------------------------- diff --git a/src/java/src/org/apache/mesos/MesosExecutorDriver.java b/src/java/src/org/apache/mesos/MesosExecutorDriver.java index 910548c..1b5ed60 100644 --- a/src/java/src/org/apache/mesos/MesosExecutorDriver.java +++ b/src/java/src/org/apache/mesos/MesosExecutorDriver.java @@ -33,6 +33,14 @@ import org.apache.mesos.Protos.*; * #join}) doesn't affect the executor callbacks in anyway because * they are handled by a different thread. * <p> + * <p> + * Note that the driver uses GLOG to do its own logging. GLOG flags can + * be set via environment variables, prefixing the flag name with + * "GLOG_", e.g., "GLOG_v=1". For Mesos specific logging flags see + * src/logging/flags.hpp. Mesos flags can also be set via environment + * variables, prefixing the flag name with "MESOS_", e.g., + * "MESOS_QUIET=1". + * <p> * See src/examples/java/TestExecutor.java for an example of using the * MesosExecutorDriver. */ http://git-wip-us.apache.org/repos/asf/mesos/blob/c8847ac9/src/java/src/org/apache/mesos/MesosSchedulerDriver.java ---------------------------------------------------------------------- diff --git a/src/java/src/org/apache/mesos/MesosSchedulerDriver.java b/src/java/src/org/apache/mesos/MesosSchedulerDriver.java index afdbbbc..6ad03ce 100644 --- a/src/java/src/org/apache/mesos/MesosSchedulerDriver.java +++ b/src/java/src/org/apache/mesos/MesosSchedulerDriver.java @@ -45,6 +45,14 @@ import java.util.Map; * #join}) doesn't affect the scheduler callbacks in anyway because * they are handled by a different thread. * <p> + * <p> + * Note that the driver uses GLOG to do its own logging. GLOG flags can + * be set via environment variables, prefixing the flag name with + * "GLOG_", e.g., "GLOG_v=1". For Mesos specific logging flags see + * src/logging/flags.hpp. Mesos flags can also be set via environment + * variables, prefixing the flag name with "MESOS_", e.g., + * "MESOS_QUIET=1". + * <p> * See src/examples/java/TestFramework.java for an example of using * the MesosSchedulerDriver. */ http://git-wip-us.apache.org/repos/asf/mesos/blob/c8847ac9/src/logging/flags.hpp ---------------------------------------------------------------------- diff --git a/src/logging/flags.hpp b/src/logging/flags.hpp index d30a706..11efb84 100644 --- a/src/logging/flags.hpp +++ b/src/logging/flags.hpp @@ -55,12 +55,19 @@ public: "logbufsecs", "How many seconds to buffer log messages for", 0); + + add(&Flags::initialize_driver_logging, + "initialize_driver_logging", + "Whether to automatically initialize google logging of scheduler\n" + "and/or executor drivers.", + true); } bool quiet; std::string logging_level; Option<std::string> log_dir; int logbufsecs; + bool initialize_driver_logging; }; } // namespace logging { http://git-wip-us.apache.org/repos/asf/mesos/blob/c8847ac9/src/sched/sched.cpp ---------------------------------------------------------------------- diff --git a/src/sched/sched.cpp b/src/sched/sched.cpp index cbc5291..447b96f 100644 --- a/src/sched/sched.cpp +++ b/src/sched/sched.cpp @@ -1090,8 +1090,13 @@ void MesosSchedulerDriver::initialize() { // Initialize libprocess. process::initialize(schedulerId); + // Initialize logging. // TODO(benh): Replace whitespace in framework.name() with '_'? - logging::initialize(framework.name(), flags); + if (flags.initialize_driver_logging) { + logging::initialize(framework.name(), flags); + } else { + VLOG(1) << "Disabling initialization of GLOG logging"; + } // Initialize mutex and condition variable. TODO(benh): Consider // using a libprocess Latch rather than a pthread mutex and http://git-wip-us.apache.org/repos/asf/mesos/blob/c8847ac9/src/scheduler/scheduler.cpp ---------------------------------------------------------------------- diff --git a/src/scheduler/scheduler.cpp b/src/scheduler/scheduler.cpp index 498d6aa..b7ce4de 100644 --- a/src/scheduler/scheduler.cpp +++ b/src/scheduler/scheduler.cpp @@ -127,7 +127,12 @@ public: // want to use flags to initialize libprocess). process::initialize(); - logging::initialize("mesos", flags); + // Initialize logging. + if (flags.initialize_driver_logging) { + logging::initialize("mesos", flags); + } else { + VLOG(1) << "Disabling initialization of GLOG logging"; + } LOG(INFO) << "Version: " << MESOS_VERSION;
