> On Feb. 29, 2016, 11:48 p.m., Alexander Rojas wrote: > > src/master/allocator/mesos/hierarchical.cpp, lines 413-418 > > <https://reviews.apache.org/r/43880/diff/9/?file=1273635#file1273635line413> > > > > This is really unreadable. I wasn't unsure of what it was happening > > here. I felt like an `std::initializer_list` was being created with two > > elements of complete different types. > > > > Then I realized that it was called implicitly the constructor of > > `process::metrics::Gauge`. So there are some fixes I feel these lines need: > > > > 1. No implicit constructor calls, let's not make it hard for people > > reading the code so that they will need to jump back to see the declaration > > of `metrics.allocated`. > > 2. There aren't many constructors in this file, but the few there use > > parenthesis instead of brackets. Let's aim for consistency and readability > > instead of brace-initialization lets use parenthesis. > > 3. I think creating the deferred object outside will improve > > readability. > > > > All in all, I would go for code that looks like: > > > > ```c++ > > Deferred<Future<double>()> totalGenerator = > > process::defer(self(), [this, name]() { > > Option<Value::Scalar> value = > > this->roleSorter->totalScalars().get<Value::Scalar>(name); > > return value.isSome() ? value.get().value() ? 0.0; > > }); > > > > metrics.allocated.put( > > name, > > process::metrics::Gauge( > > strings::join("/", "allocator/allocated", name), > > totalGenerator)); > > > > ```
To make this more readable and obvious I introduced getters analoguous to `HierarchicalAllocatorProcess::_event_queue_dispatches`. - Benjamin ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/43880/#review121330 ----------------------------------------------------------- On March 2, 2016, 11:35 a.m., Benjamin Bannier wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/43880/ > ----------------------------------------------------------- > > (Updated March 2, 2016, 11:35 a.m.) > > > Review request for mesos, Alexander Rukletsov and Ben Mahler. > > > Bugs: MESOS-4720 > https://issues.apache.org/jira/browse/MESOS-4720 > > > Repository: mesos > > > Description > ------- > > Added allocator metrics for total and allocated scalar resources. > > > Diffs > ----- > > docs/monitoring.md 827f7073204fcf8575ca980a5571c8be4f5e4110 > src/master/allocator/mesos/hierarchical.hpp > 3043888630b066505410d3b32c5b3f813cc458c1 > src/master/allocator/mesos/hierarchical.cpp > 24fa50f62dec10ed43089297473cc386d6ba2f78 > src/master/allocator/mesos/metrics.hpp PRE-CREATION > src/tests/hierarchical_allocator_tests.cpp > 5f771f02db9bd098f3cd36730cd84bf2f5e87a33 > > Diff: https://reviews.apache.org/r/43880/diff/ > > > Testing > ------- > > make check (OS X) > > I confirmed that this does not lead to general performance regressions in the > allocator; this is partially expected since the added code only inserts > metrics in the allocator while the actual work is perform asynchronously. > These tests where performed with > `HierarchicalAllocator_BENCHMARK_Test.DeclineOffers` on an optimized build > under OS X using clang(trunk) as compiler. > > > Thanks, > > Benjamin Bannier > >
