mesos-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jie Yu <yujie....@gmail.com>
Subject Re: [1/5] mesos git commit: Added a metric to replicated log.
Date Thu, 16 Jun 2016 17:48:58 GMT
oops! fat fingered. I'll delete the branch.


On Thu, Jun 16, 2016 at 10:47 AM, <jieyu@apache.org> wrote:

> Repository: mesos
> Updated Branches:
>   refs/heads/metrics_replicated_log [created] 07bff092e
>
>
> Added a metric to replicated log.
>
> This is a gauge indicating if the replicated log has recovered or not.
>
> Review: https://reviews.apache.org/r/48801
>
>
> Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
> Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/14858cd2
> Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/14858cd2
> Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/14858cd2
>
> Branch: refs/heads/metrics_replicated_log
> Commit: 14858cd2a2bb55cacf6279059dd913a40971a284
> Parents: 161e049
> Author: Jie Yu <yujie.jay@gmail.com>
> Authored: Wed Jun 15 22:28:02 2016 -0700
> Committer: Jie Yu <yujie.jay@gmail.com>
> Committed: Thu Jun 16 10:28:15 2016 -0700
>
> ----------------------------------------------------------------------
>  include/mesos/log/log.hpp |  6 +++--
>  src/log/log.cpp           | 50 +++++++++++++++++++++++++++++++++++-------
>  src/log/log.hpp           | 22 +++++++++++++++++--
>  3 files changed, 66 insertions(+), 12 deletions(-)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/mesos/blob/14858cd2/include/mesos/log/log.hpp
> ----------------------------------------------------------------------
> diff --git a/include/mesos/log/log.hpp b/include/mesos/log/log.hpp
> index 9c86349..0f69848 100644
> --- a/include/mesos/log/log.hpp
> +++ b/include/mesos/log/log.hpp
> @@ -192,7 +192,8 @@ public:
>    Log(int quorum,
>        const std::string& path,
>        const std::set<process::UPID>& pids,
> -      bool autoInitialize = false);
> +      bool autoInitialize = false,
> +      const Option<std::string>& metricsPrefix = None());
>
>    // Creates a new replicated log that assumes the specified quorum
>    // size, is backed by a file at the specified path, and coordinates
> @@ -204,7 +205,8 @@ public:
>        const Duration& timeout,
>        const std::string& znode,
>        const Option<zookeeper::Authentication>& auth = None(),
> -      bool autoInitialize = false);
> +      bool autoInitialize = false,
> +      const Option<std::string>& metricsPrefix = None());
>
>    ~Log();
>
>
> http://git-wip-us.apache.org/repos/asf/mesos/blob/14858cd2/src/log/log.cpp
> ----------------------------------------------------------------------
> diff --git a/src/log/log.cpp b/src/log/log.cpp
> index c0f1cb3..f8e439f 100644
> --- a/src/log/log.cpp
> +++ b/src/log/log.cpp
> @@ -28,6 +28,8 @@
>  #include <process/process.hpp>
>  #include <process/shared.hpp>
>
> +#include <process/metrics/metrics.hpp>
> +
>  #include <stout/check.hpp>
>  #include <stout/foreach.hpp>
>  #include <stout/lambda.hpp>
> @@ -64,13 +66,15 @@ LogProcess::LogProcess(
>      size_t _quorum,
>      const string& path,
>      const set<UPID>& pids,
> -    bool _autoInitialize)
> +    bool _autoInitialize,
> +    const Option<string>& metricsPrefix)
>    : ProcessBase(ID::generate("log")),
>      quorum(_quorum),
>      replica(new Replica(path)),
>      network(new Network(pids + (UPID) replica->pid())),
>      autoInitialize(_autoInitialize),
> -    group(nullptr) {}
> +    group(nullptr),
> +    metrics(*this, metricsPrefix) {}
>
>
>  LogProcess::LogProcess(
> @@ -80,7 +84,8 @@ LogProcess::LogProcess(
>      const Duration& timeout,
>      const string& znode,
>      const Option<zookeeper::Authentication>& auth,
> -    bool _autoInitialize)
> +    bool _autoInitialize,
> +    const Option<string>& metricsPrefix)
>    : ProcessBase(ID::generate("log")),
>      quorum(_quorum),
>      replica(new Replica(path)),
> @@ -91,7 +96,8 @@ LogProcess::LogProcess(
>          auth,
>          Set<UPID>((UPID) replica->pid()))),
>      autoInitialize(_autoInitialize),
> -    group(new zookeeper::Group(servers, timeout, znode, auth)) {}
> +    group(new zookeeper::Group(servers, timeout, znode, auth)),
> +    metrics(*this, metricsPrefix) {}
>
>
>  void LogProcess::initialize()
> @@ -236,6 +242,12 @@ void LogProcess::_recover()
>  }
>
>
> +double LogProcess::_recovered()
> +{
> +  return recovered.future().isReady() ? 1 : 0;
> +}
> +
> +
>  void LogProcess::watch(
>      const UPID& pid,
>      const set<zookeeper::Group::Membership>& memberships)
> @@ -268,6 +280,23 @@ void LogProcess::discarded()
>  }
>
>
> +LogProcess::Metrics::Metrics(
> +    const LogProcess& process,
> +    const Option<string>& prefix)
> +  : recovered(
> +        prefix.getOrElse("") + "log/recovered",
> +        defer(process, &LogProcess::_recovered))
> +{
> +  process::metrics::add(recovered);
> +}
> +
> +
> +LogProcess::Metrics::~Metrics()
> +{
> +  process::metrics::remove(recovered);
> +}
> +
> +
>  /////////////////////////////////////////////////
>  // Implementation of LogReaderProcess.
>  /////////////////////////////////////////////////
> @@ -610,7 +639,8 @@ Log::Log(
>      int quorum,
>      const string& path,
>      const set<UPID>& pids,
> -    bool autoInitialize)
> +    bool autoInitialize,
> +    const Option<string>& metricsPrefix)
>  {
>    GOOGLE_PROTOBUF_VERIFY_VERSION;
>
> @@ -619,11 +649,13 @@ Log::Log(
>          quorum,
>          path,
>          pids,
> -        autoInitialize);
> +        autoInitialize,
> +        metricsPrefix);
>
>    spawn(process);
>  }
>
> +
>  Log::Log(
>      int quorum,
>      const string& path,
> @@ -631,7 +663,8 @@ Log::Log(
>      const Duration& timeout,
>      const string& znode,
>      const Option<zookeeper::Authentication>& auth,
> -    bool autoInitialize)
> +    bool autoInitialize,
> +    const Option<string>& metricsPrefix)
>  {
>    GOOGLE_PROTOBUF_VERIFY_VERSION;
>
> @@ -643,7 +676,8 @@ Log::Log(
>          timeout,
>          znode,
>          auth,
> -        autoInitialize);
> +        autoInitialize,
> +        metricsPrefix);
>
>    spawn(process);
>  }
>
> http://git-wip-us.apache.org/repos/asf/mesos/blob/14858cd2/src/log/log.hpp
> ----------------------------------------------------------------------
> diff --git a/src/log/log.hpp b/src/log/log.hpp
> index 6e75773..a600025 100644
> --- a/src/log/log.hpp
> +++ b/src/log/log.hpp
> @@ -26,6 +26,8 @@
>  #include <process/process.hpp>
>  #include <process/shared.hpp>
>
> +#include <process/metrics/gauge.hpp>
> +
>  #include <stout/nothing.hpp>
>
>  #include "log/coordinator.hpp"
> @@ -44,7 +46,8 @@ public:
>        size_t _quorum,
>        const std::string& path,
>        const std::set<process::UPID>& pids,
> -      bool _autoInitialize);
> +      bool _autoInitialize,
> +      const Option<std::string>& metricsPrefix);
>
>    LogProcess(
>        size_t _quorum,
> @@ -53,7 +56,8 @@ public:
>        const Duration& timeout,
>        const std::string& znode,
>        const Option<zookeeper::Authentication>& auth,
> -      bool _autoInitialize);
> +      bool _autoInitialize,
> +      const Option<std::string>& metricsPrefix);
>
>    // Recovers the log by catching up if needed. Returns a shared
>    // pointer to the local replica if the recovery succeeds.
> @@ -70,6 +74,9 @@ private:
>    // Continuations.
>    void _recover();
>
> +  // Return true if the log has finished recovery.
> +  double _recovered();
> +
>    // TODO(benh): Factor this out into "membership renewer".
>    void watch(
>        const process::UPID& pid,
> @@ -92,6 +99,17 @@ private:
>    // continually renew the replicas membership (when using ZooKeeper).
>    zookeeper::Group* group;
>    process::Future<zookeeper::Group::Membership> membership;
> +
> +  struct Metrics
> +  {
> +    explicit Metrics(
> +        const LogProcess& process,
> +        const Option<std::string>& prefix);
> +
> +    ~Metrics();
> +
> +    process::metrics::Gauge recovered;
> +  } metrics;
>  };
>
>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message