-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/20398/#review40606
-----------------------------------------------------------



src/main/java/org/apache/aurora/scheduler/sla/MetricCalculator.java
<https://reviews.apache.org/r/20398/#comment73638>

    How about Multimap, ImmutableMultimap.Builder?



src/main/java/org/apache/aurora/scheduler/sla/MetricCalculator.java
<https://reviews.apache.org/r/20398/#comment73635>

    I would find median really useful too.



src/main/java/org/apache/aurora/scheduler/sla/MetricCalculator.java
<https://reviews.apache.org/r/20398/#comment73636>

    Does it make sense to just replace this with AtomicDouble?  Seems like it 
would simplify code, and forcing integer-supplying metrics to use double 
shouldn't be a problem.



src/main/java/org/apache/aurora/scheduler/sla/MetricCalculator.java
<https://reviews.apache.org/r/20398/#comment73648>

    You probably want to initialize stats with a non-default value, to avoid 
transient zeros.



src/main/java/org/apache/aurora/scheduler/sla/MetricCalculator.java
<https://reviews.apache.org/r/20398/#comment73639>

    checkNotNull, ditto for statsProvider



src/main/java/org/apache/aurora/scheduler/sla/MetricCalculator.java
<https://reviews.apache.org/r/20398/#comment73634>

    This log line and the one below will result in log spam, consider dropping.



src/main/java/org/apache/aurora/scheduler/sla/MetricCalculator.java
<https://reviews.apache.org/r/20398/#comment73640>

    How about intervalStartMs?  lastRunMs is slightly weird for run zero.



src/main/java/org/apache/aurora/scheduler/sla/MetricCalculator.java
<https://reviews.apache.org/r/20398/#comment73650>

    Have you considered inverting this, to pass the algorithm implementations a 
reference to the metric cache (possibly in a scoped way so they are guaranteed 
to not collide)?  This would help you avoid the return value gymnastics to 
support things like multi-valued outputs.



src/main/java/org/apache/aurora/scheduler/sla/SlaAlgorithm.java
<https://reviews.apache.org/r/20398/#comment73655>

    Is this used other than to just provide a name prefix?  Grouping them with 
an enum doesn't seem to be offering much over something like a List.



src/main/java/org/apache/aurora/scheduler/sla/SlaAlgorithm.java
<https://reviews.apache.org/r/20398/#comment73662>

    If you take the advice above to invert the calls (pass the SlaAlgorithm a 
thing through which it can update metrics), you can simplify the uptime metric 
computation and require fewer passes over all tasks.  You end up with a single 
JobUptime instance that filters, sorts, and picks items at the desired 
percentiles.



src/main/java/org/apache/aurora/scheduler/sla/SlaAlgorithm.java
<https://reviews.apache.org/r/20398/#comment73659>

    Seems like it would be fairly straightforward to retrofit this for median 
as opposed to mean.  How would you feel about doing that?



src/main/java/org/apache/aurora/scheduler/sla/SlaAlgorithm.java
<https://reviews.apache.org/r/20398/#comment73656>

    fits on one line



src/main/java/org/apache/aurora/scheduler/sla/SlaAlgorithm.java
<https://reviews.apache.org/r/20398/#comment73661>

    I find myself having to read aloud "Mean time to assigned" when i see Mtta. 
 How about embracing the verbosity for readability and calling it 
MeanTimeToAssigned?  Ditto elsewhere.



src/main/java/org/apache/aurora/scheduler/sla/SlaInstance.java
<https://reviews.apache.org/r/20398/#comment73652>

    It's not clear to me that this class is worth having, does it make sense to 
consider removing it?



src/main/java/org/apache/aurora/scheduler/sla/SlaModule.java
<https://reviews.apache.org/r/20398/#comment73643>

    The triggering of this fits in nicely with AsyncStatsModule.  Have you 
considered kicking off SLA computation there?



src/main/java/org/apache/aurora/scheduler/sla/SlaModule.java
<https://reviews.apache.org/r/20398/#comment73633>

    remove extra WS



src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java
<https://reviews.apache.org/r/20398/#comment73632>

    Does this need to be static?  Prefer non-static.


- Bill Farner


On April 16, 2014, 1:39 a.m., Maxim Khutornenko wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/20398/
> -----------------------------------------------------------
> 
> (Updated April 16, 2014, 1:39 a.m.)
> 
> 
> Review request for Aurora, Kevin Sweeney, Bill Farner, and Brian Wickman.
> 
> 
> Bugs: AURORA-293
>     https://issues.apache.org/jira/browse/AURORA-293
> 
> 
> Repository: aurora
> 
> 
> Description
> -------
> 
> High level overview:
> - MetricCalculator runs periodically (every minute), pulls all task history, 
> packages it into SlaInstance list and updates stats;
> - Stat calculation is handled by a pair of: SlaAlgorithm and a set of 
> applicable SlaGroups (logical groupings by job, cluster, resource and etc.);
> - Stat name is generated by combining group and algorithm name parts.
> 
> 
> Diffs
> -----
> 
>   src/main/java/org/apache/aurora/scheduler/app/AppModule.java 
> eeafc784e915137cacd5f64df1252ccbaf6c0f6c 
>   src/main/java/org/apache/aurora/scheduler/async/RescheduleCalculator.java 
> bc77bf2e6fbc1ff4159d049b0c28afd6832499ef 
>   src/main/java/org/apache/aurora/scheduler/base/Tasks.java 
> fae2d237d18f945d4dd73ec56cd42981359bea46 
>   src/main/java/org/apache/aurora/scheduler/sla/MetricCalculator.java 
> PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/sla/SlaAlgorithm.java 
> PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/sla/SlaGroup.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/sla/SlaInstance.java PRE-CREATION 
>   src/main/java/org/apache/aurora/scheduler/sla/SlaModule.java PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/sla/MetricCalculatorTest.java 
> PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/sla/SlaAlgorithmTest.java 
> PRE-CREATION 
>   src/test/java/org/apache/aurora/scheduler/sla/SlaTestUtil.java PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/20398/diff/
> 
> 
> Testing
> -------
> 
> gradle build
> gradle run
> 
> Sample from local scheduler:
> 
> sla_cluster_mtta 3271.493
> sla_cluster_mttr 3273.497
> sla_cluster_platform_uptime_percent 100.0
> sla_cpu_small_mtta 3271.493
> sla_cpu_small_mttr 3273.497
> sla_disk_small_mtta 3271.493
> sla_disk_small_mttr 3273.497
> sla_mesos_test_serviceJob0_job_uptime_75_00_sec 0
> sla_mesos_test_serviceJob0_job_uptime_90_00_sec 0
> sla_mesos_test_serviceJob0_job_uptime_95_00_sec 0
> sla_mesos_test_serviceJob0_job_uptime_99_00_sec 0
> sla_mesos_test_serviceJob0_mtta 0.0
> sla_mesos_test_serviceJob0_mttr 0.0
> sla_mesos_test_serviceJob0_platform_uptime_percent 100.0
> sla_mesos_test_serviceJob10_job_uptime_75_00_sec 0
> sla_mesos_test_serviceJob10_job_uptime_90_00_sec 0
> sla_mesos_test_serviceJob10_job_uptime_95_00_sec 0
> sla_mesos_test_serviceJob10_job_uptime_99_00_sec 0
> sla_mesos_test_serviceJob10_mtta 0.0
> sla_mesos_test_serviceJob10_mttr 0.0
> sla_mesos_test_serviceJob10_platform_uptime_percent 100.0
> sla_mesos_test_serviceJob12_job_uptime_75_00_sec 0
> sla_mesos_test_serviceJob12_job_uptime_90_00_sec 0
> sla_mesos_test_serviceJob12_job_uptime_95_00_sec 0
> sla_mesos_test_serviceJob12_job_uptime_99_00_sec 0
> sla_mesos_test_serviceJob12_mtta 0.0
> sla_mesos_test_serviceJob12_mttr 0.0
> sla_mesos_test_serviceJob12_platform_uptime_percent 100.0
> sla_mesos_test_serviceJob14_job_uptime_75_00_sec 0
> sla_mesos_test_serviceJob14_job_uptime_90_00_sec 0
> sla_mesos_test_serviceJob14_job_uptime_95_00_sec 0
> sla_mesos_test_serviceJob14_job_uptime_99_00_sec 0
> sla_mesos_test_serviceJob14_mtta 0.0
> sla_mesos_test_serviceJob14_mttr 0.0
> sla_mesos_test_serviceJob14_platform_uptime_percent 100.0
> sla_mesos_test_serviceJob16_job_uptime_75_00_sec 0
> sla_mesos_test_serviceJob16_job_uptime_90_00_sec 0
> sla_mesos_test_serviceJob16_job_uptime_95_00_sec 0
> sla_mesos_test_serviceJob16_job_uptime_99_00_sec 0
> sla_mesos_test_serviceJob16_mtta 0.0
> sla_mesos_test_serviceJob16_mttr 0.0
> sla_mesos_test_serviceJob16_platform_uptime_percent 100.0
> sla_mesos_test_serviceJob18_job_uptime_75_00_sec 0
> sla_mesos_test_serviceJob18_job_uptime_90_00_sec 0
> sla_mesos_test_serviceJob18_job_uptime_95_00_sec 0
> sla_mesos_test_serviceJob18_job_uptime_99_00_sec 0
> sla_mesos_test_serviceJob18_mtta 0.0
> sla_mesos_test_serviceJob18_mttr 0.0
> sla_mesos_test_serviceJob18_platform_uptime_percent 100.0
> sla_mesos_test_serviceJob2_job_uptime_75_00_sec 0
> sla_mesos_test_serviceJob2_job_uptime_90_00_sec 0
> sla_mesos_test_serviceJob2_job_uptime_95_00_sec 0
> sla_mesos_test_serviceJob2_job_uptime_99_00_sec 0
> sla_mesos_test_serviceJob2_mtta 0.0
> sla_mesos_test_serviceJob2_mttr 0.0
> sla_mesos_test_serviceJob2_platform_uptime_percent 100.0
> sla_mesos_test_serviceJob4_job_uptime_75_00_sec 0
> sla_mesos_test_serviceJob4_job_uptime_90_00_sec 0
> sla_mesos_test_serviceJob4_job_uptime_95_00_sec 0
> sla_mesos_test_serviceJob4_job_uptime_99_00_sec 0
> sla_mesos_test_serviceJob4_mtta 0.0
> sla_mesos_test_serviceJob4_mttr 0.0
> sla_mesos_test_serviceJob4_platform_uptime_percent 100.0
> sla_mesos_test_serviceJob6_job_uptime_75_00_sec 7125
> sla_mesos_test_serviceJob6_job_uptime_90_00_sec 7125
> sla_mesos_test_serviceJob6_job_uptime_95_00_sec 7125
> sla_mesos_test_serviceJob6_job_uptime_99_00_sec 7125
> sla_mesos_test_serviceJob6_mtta 3271.493
> sla_mesos_test_serviceJob6_mttr 3273.497
> sla_mesos_test_serviceJob6_platform_uptime_percent 100.0
> sla_mesos_test_serviceJob8_job_uptime_75_00_sec 0
> sla_mesos_test_serviceJob8_job_uptime_90_00_sec 0
> sla_mesos_test_serviceJob8_job_uptime_95_00_sec 0
> sla_mesos_test_serviceJob8_job_uptime_99_00_sec 0
> sla_mesos_test_serviceJob8_mtta 0.0
> sla_mesos_test_serviceJob8_mttr 0.0
> sla_mesos_test_serviceJob8_platform_uptime_percent 100.0
> sla_ram_small_mtta 3271.493
> sla_ram_small_mttr 3273.497
> 
> 
> File Attachments
> ----------------
> 
> Coverage report
>   
> https://reviews.apache.org/media/uploaded/files/2014/04/16/ffe00c63-bb3a-4b90-95f8-f23878b0fdab__SLA_coverage_report.png
> 
> 
> Thanks,
> 
> Maxim Khutornenko
> 
>

Reply via email to