Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(453)

Side by Side Diff: remoting/client/chromoting_stats.h

Issue 1181743005: Report video and network stats averaged over 1s, and create corresponding UMA metrics. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Set bandwidth histogram minimum to 0. Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | remoting/client/chromoting_stats.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // ChromotingStats defines a bundle of performance counters and statistics 5 // ChromotingStats defines a bundle of performance counters and statistics
6 // for chromoting. 6 // for chromoting.
7 7
8 #ifndef REMOTING_CLIENT_CHROMOTING_STATS_H_ 8 #ifndef REMOTING_CLIENT_CHROMOTING_STATS_H_
9 #define REMOTING_CLIENT_CHROMOTING_STATS_H_ 9 #define REMOTING_CLIENT_CHROMOTING_STATS_H_
10 10
11 #include "remoting/base/rate_counter.h" 11 #include "remoting/base/rate_counter.h"
12 #include "remoting/base/running_average.h" 12 #include "remoting/base/running_average.h"
13 13
14 namespace remoting { 14 namespace remoting {
15 15
16 class ChromotingStats { 16 class ChromotingStats {
17 public: 17 public:
18 ChromotingStats(); 18 ChromotingStats();
19 virtual ~ChromotingStats(); 19 virtual ~ChromotingStats();
20 20
21 // Constant used to calculate the average for rate metrics and used by the
22 // plugin for the frequency at which stats should be updated.
23 static const int kStatsUpdateFrequencyInSeconds = 1;
24
25 // The video and packet rate metrics below are updated per video packet
26 // received and then, for reporting, averaged over a 1s time-window.
27 // Bytes per second for non-empty video-packets.
21 RateCounter* video_bandwidth() { return &video_bandwidth_; } 28 RateCounter* video_bandwidth() { return &video_bandwidth_; }
29
30 // Frames per second for non-empty video-packets.
22 RateCounter* video_frame_rate() { return &video_frame_rate_; } 31 RateCounter* video_frame_rate() { return &video_frame_rate_; }
32
33 // Video packets per second, including empty video-packets.
34 // This will be greater than the frame rate, as individual frames are
35 // contained in packets, some of which might be empty (e.g. when there are no
36 // screen changes).
37 RateCounter* video_packet_rate() { return &video_packet_rate_; }
38
39 // The latency metrics below are recorded per video packet received and, for
40 // reporting, averaged over the N most recent samples.
41 // N is defined by kLatencySampleSize.
23 RunningAverage* video_capture_ms() { return &video_capture_ms_; } 42 RunningAverage* video_capture_ms() { return &video_capture_ms_; }
24 RunningAverage* video_encode_ms() { return &video_encode_ms_; } 43 RunningAverage* video_encode_ms() { return &video_encode_ms_; }
25 RunningAverage* video_decode_ms() { return &video_decode_ms_; } 44 RunningAverage* video_decode_ms() { return &video_decode_ms_; }
26 RunningAverage* video_paint_ms() { return &video_paint_ms_; } 45 RunningAverage* video_paint_ms() { return &video_paint_ms_; }
27 RunningAverage* round_trip_ms() { return &round_trip_ms_; } 46 RunningAverage* round_trip_ms() { return &round_trip_ms_; }
28 47
29 private: 48 private:
30 RateCounter video_bandwidth_; 49 RateCounter video_bandwidth_;
31 RateCounter video_frame_rate_; 50 RateCounter video_frame_rate_;
51 RateCounter video_packet_rate_;
32 RunningAverage video_capture_ms_; 52 RunningAverage video_capture_ms_;
33 RunningAverage video_encode_ms_; 53 RunningAverage video_encode_ms_;
34 RunningAverage video_decode_ms_; 54 RunningAverage video_decode_ms_;
35 RunningAverage video_paint_ms_; 55 RunningAverage video_paint_ms_;
36 RunningAverage round_trip_ms_; 56 RunningAverage round_trip_ms_;
37 57
38 DISALLOW_COPY_AND_ASSIGN(ChromotingStats); 58 DISALLOW_COPY_AND_ASSIGN(ChromotingStats);
39 }; 59 };
40 60
41 } // namespace remoting 61 } // namespace remoting
42 62
43 #endif // REMOTING_CLIENT_CHROMOTING_STATS_H_ 63 #endif // REMOTING_CLIENT_CHROMOTING_STATS_H_
OLDNEW
« no previous file with comments | « no previous file | remoting/client/chromoting_stats.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698