You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by id...@apache.org on 2014/06/14 00:32:32 UTC
[2/5] git commit: Introduce a PerfStatistics protobuf.
Introduce a PerfStatistics protobuf.
Review: https://reviews.apache.org/r/21442
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/160e9e0c
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/160e9e0c
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/160e9e0c
Branch: refs/heads/master
Commit: 160e9e0ccaf320c1881036f351d4a08a2542442d
Parents: 2e15bc9
Author: Ian Downes <id...@twitter.com>
Authored: Wed May 14 10:15:12 2014 -0700
Committer: Ian Downes <id...@twitter.com>
Committed: Fri Jun 13 15:32:08 2014 -0700
----------------------------------------------------------------------
include/mesos/mesos.proto | 78 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 78 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/160e9e0c/include/mesos/mesos.proto
----------------------------------------------------------------------
diff --git a/include/mesos/mesos.proto b/include/mesos/mesos.proto
index 8c6933d..709b8b1 100644
--- a/include/mesos/mesos.proto
+++ b/include/mesos/mesos.proto
@@ -405,6 +405,9 @@ message ResourceStatistics {
// TODO(bmahler): Add disk usage.
// TODO(bmahler): Add network usage?
+
+ // Perf statistics.
+ optional PerfStatistics perf = 13;
}
@@ -437,6 +440,81 @@ message ResourceUsage {
/**
+ * Describes a sample of events from "perf stat". Only available on
+ * Linux.
+ *
+ * NOTE: Each optional field matches the name of a perf event (see
+ * "perf list") with the following changes:
+ * 1. Names are downcased.
+ * 2. Hyphens ('-') are replaced with underscores ('_').
+ * 3. Events with alternate names use the name "perf stat" returns,
+ * e.g., for the event "cycles OR cpu-cycles" perf always returns
+ * cycles.
+ */
+message PerfStatistics {
+ required double timestamp = 1; // Start of sample interval, in seconds since the Epoch.
+ required double duration = 2; // Duration of sample interval, in seconds.
+
+ // Hardware event.
+ optional uint64 cycles = 3;
+ optional uint64 stalled_cycles_frontend = 4;
+ optional uint64 stalled_cycles_backend = 5;
+ optional uint64 instructions = 6;
+ optional uint64 cache_references = 7;
+ optional uint64 cache_misses = 8;
+ optional uint64 branches = 9;
+ optional uint64 branch_misses = 10;
+ optional uint64 bus_cycles = 11;
+ optional uint64 ref_cycles = 12;
+
+ // Software event.
+ optional double cpu_clock = 13;
+ optional double task_clock = 14;
+ optional uint64 page_faults = 15;
+ optional uint64 minor_faults = 16;
+ optional uint64 major_faults = 17;
+ optional uint64 context_switches = 18;
+ optional uint64 cpu_migrations = 19;
+ optional uint64 alignment_faults = 20;
+ optional uint64 emulation_faults = 21;
+
+ // Hardware cache event.
+ optional uint64 l1_dcache_loads = 22;
+ optional uint64 l1_dcache_load_misses = 23;
+ optional uint64 l1_dcache_stores = 24;
+ optional uint64 l1_dcache_store_misses = 25;
+ optional uint64 l1_dcache_prefetches = 26;
+ optional uint64 l1_dcache_prefetch_misses = 27;
+ optional uint64 l1_icache_loads = 28;
+ optional uint64 l1_icache_load_misses = 29;
+ optional uint64 l1_icache_prefetches = 30;
+ optional uint64 l1_icache_prefetch_misses = 31;
+ optional uint64 llc_loads = 32;
+ optional uint64 llc_load_misses = 33;
+ optional uint64 llc_stores = 34;
+ optional uint64 llc_store_misses = 35;
+ optional uint64 llc_prefetches = 36;
+ optional uint64 llc_prefetch_misses = 37;
+ optional uint64 dtlb_loads = 38;
+ optional uint64 dtlb_load_misses = 39;
+ optional uint64 dtlb_stores = 40;
+ optional uint64 dtlb_store_misses = 41;
+ optional uint64 dtlb_prefetches = 42;
+ optional uint64 dtlb_prefetch_misses = 43;
+ optional uint64 itlb_loads = 44;
+ optional uint64 itlb_load_misses = 45;
+ optional uint64 branch_loads = 46;
+ optional uint64 branch_load_misses = 47;
+ optional uint64 node_loads = 48;
+ optional uint64 node_load_misses = 49;
+ optional uint64 node_stores = 50;
+ optional uint64 node_store_misses = 51;
+ optional uint64 node_prefetches = 52;
+ optional uint64 node_prefetch_misses = 53;
+}
+
+
+/**
* Describes a request for resources that can be used by a framework
* to proactively influence the allocator. If 'slave_id' is provided
* then this request is assumed to only apply to resources on that