OLD | NEW |
1 /* | 1 /* |
2 * libjingle | 2 * libjingle |
3 * Copyright 2014 Google Inc. | 3 * Copyright 2014 Google Inc. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
(...skipping 14 matching lines...) Expand all Loading... |
25 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 */ | 26 */ |
27 | 27 |
28 // This file contains enums related to IPv4/IPv6 metrics. | 28 // This file contains enums related to IPv4/IPv6 metrics. |
29 | 29 |
30 #ifndef TALK_APP_WEBRTC_UMAMETRICS_H_ | 30 #ifndef TALK_APP_WEBRTC_UMAMETRICS_H_ |
31 #define TALK_APP_WEBRTC_UMAMETRICS_H_ | 31 #define TALK_APP_WEBRTC_UMAMETRICS_H_ |
32 | 32 |
33 namespace webrtc { | 33 namespace webrtc { |
34 | 34 |
| 35 // Used to specify which enum counter type we're incrementing in |
| 36 // MetricsObserverInterface::IncrementEnumCounter. |
| 37 enum PeerConnectionEnumCounterType { |
| 38 kEnumCounterAddressFamily, |
| 39 // For the next 2 counters, we track them separately based on the "first hop" |
| 40 // protocol used by the local candidate. "First hop" means the local candidate |
| 41 // type in the case of non-TURN candidates, and the protocol used to connect |
| 42 // to the TURN server in the case of TURN candidates. |
| 43 kEnumCounterIceCandidatePairTypeUdp, |
| 44 kEnumCounterIceCandidatePairTypeTcp, |
| 45 kPeerConnectionEnumCounterMax |
| 46 }; |
| 47 |
35 // Currently this contains information related to WebRTC network/transport | 48 // Currently this contains information related to WebRTC network/transport |
36 // information. | 49 // information. |
37 | 50 |
38 // The difference between PeerConnectionMetricsCounter and | 51 // The difference between PeerConnectionEnumCounter and |
39 // PeerConnectionMetricsName is that the "Counter" is only counting the | 52 // PeerConnectionMetricsName is that the "EnumCounter" is only counting the |
40 // occurrences of events, while "Name" has a value associated with it which is | 53 // occurrences of events, while "Name" has a value associated with it which is |
41 // used to form a histogram. | 54 // used to form a histogram. |
42 | 55 |
43 // This enum is backed by Chromium's histograms.xml, | 56 // This enum is backed by Chromium's histograms.xml, |
44 // chromium/src/tools/metrics/histograms/histograms.xml | 57 // chromium/src/tools/metrics/histograms/histograms.xml |
45 // Existing values cannot be re-ordered and new enums must be added | 58 // Existing values cannot be re-ordered and new enums must be added |
46 // before kBoundary. | 59 // before kBoundary. |
47 enum PeerConnectionMetricsCounter { | 60 enum PeerConnectionAddressFamilyCounter { |
48 kPeerConnection_IPv4, | 61 kPeerConnection_IPv4, |
49 kPeerConnection_IPv6, | 62 kPeerConnection_IPv6, |
50 kBestConnections_IPv4, | 63 kBestConnections_IPv4, |
51 kBestConnections_IPv6, | 64 kBestConnections_IPv6, |
52 kPeerConnectionMetricsCounter_Max, | 65 kPeerConnectionAddressFamilyCounter_Max, |
53 }; | 66 }; |
54 | 67 |
55 // TODO(guoweis): Keep previous name here until all references are renamed. | 68 // TODO(guoweis): Keep previous name here until all references are renamed. |
56 #define kBoundary kPeerConnectionMetricsCounter_Max | 69 #define kBoundary kPeerConnectionAddressFamilyCounter_Max |
57 | 70 |
58 // TODO(guoweis): Keep previous name here until all references are renamed. | 71 // TODO(guoweis): Keep previous name here until all references are renamed. |
59 typedef PeerConnectionMetricsCounter PeerConnectionUMAMetricsCounter; | 72 typedef PeerConnectionAddressFamilyCounter PeerConnectionUMAMetricsCounter; |
60 | 73 |
61 // This enum defines types for UMA samples, which will have a range. | 74 // This enum defines types for UMA samples, which will have a range. |
62 enum PeerConnectionMetricsName { | 75 enum PeerConnectionMetricsName { |
63 kNetworkInterfaces_IPv4, // Number of IPv4 interfaces. | 76 kNetworkInterfaces_IPv4, // Number of IPv4 interfaces. |
64 kNetworkInterfaces_IPv6, // Number of IPv6 interfaces. | 77 kNetworkInterfaces_IPv6, // Number of IPv6 interfaces. |
65 kTimeToConnect, // In milliseconds. | 78 kTimeToConnect, // In milliseconds. |
66 kLocalCandidates_IPv4, // Number of IPv4 local candidates. | 79 kLocalCandidates_IPv4, // Number of IPv4 local candidates. |
67 kLocalCandidates_IPv6, // Number of IPv6 local candidates. | 80 kLocalCandidates_IPv6, // Number of IPv6 local candidates. |
68 kAudioSrtpCipher, // Name of SRTP cipher used in audio channel. | 81 kAudioSrtpCipher, // Name of SRTP cipher used in audio channel. |
69 kAudioSslCipher, // Name of SSL cipher used in audio channel. | 82 kAudioSslCipher, // Name of SSL cipher used in audio channel. |
70 kVideoSrtpCipher, // Name of SRTP cipher used in video channel. | 83 kVideoSrtpCipher, // Name of SRTP cipher used in video channel. |
71 kVideoSslCipher, // Name of SSL cipher used in video channel. | 84 kVideoSslCipher, // Name of SSL cipher used in video channel. |
72 kDataSrtpCipher, // Name of SRTP cipher used in data channel. | 85 kDataSrtpCipher, // Name of SRTP cipher used in data channel. |
73 kDataSslCipher, // Name of SSL cipher used in data channel. | 86 kDataSslCipher, // Name of SSL cipher used in data channel. |
74 kPeerConnectionMetricsName_Max | 87 kPeerConnectionMetricsName_Max |
75 }; | 88 }; |
76 | 89 |
77 // TODO(guoweis): Keep previous name here until all references are renamed. | 90 // TODO(guoweis): Keep previous name here until all references are renamed. |
78 typedef PeerConnectionMetricsName PeerConnectionUMAMetricsName; | 91 typedef PeerConnectionMetricsName PeerConnectionUMAMetricsName; |
79 | 92 |
| 93 // The IceCandidatePairType has the format of |
| 94 // <local_candidate_type>_<remote_candidate_type>. It is recorded based on the |
| 95 // type of candidate pair used when the PeerConnection first goes to a completed |
| 96 // state. When BUNDLE is enabled, only the first transport gets recorded. |
| 97 enum IceCandidatePairType { |
| 98 kIceCandidatePairHostHost, |
| 99 kIceCandidatePairHostSrflx, |
| 100 kIceCandidatePairHostRelay, |
| 101 kIceCandidatePairHostPrflx, |
| 102 kIceCandidatePairSrflxHost, |
| 103 kIceCandidatePairSrflxSrflx, |
| 104 kIceCandidatePairSrflxRelay, |
| 105 kIceCandidatePairSrflxPrflx, |
| 106 kIceCandidatePairRelayHost, |
| 107 kIceCandidatePairRelaySrflx, |
| 108 kIceCandidatePairRelayRelay, |
| 109 kIceCandidatePairRelayPrflx, |
| 110 kIceCandidatePairPrflxHost, |
| 111 kIceCandidatePairPrflxSrflx, |
| 112 kIceCandidatePairPrflxRelay, |
| 113 kIceCandidatePairMax |
| 114 }; |
| 115 |
80 } // namespace webrtc | 116 } // namespace webrtc |
81 | 117 |
82 #endif // TALK_APP_WEBRTC_UMA6METRICS_H_ | 118 #endif // TALK_APP_WEBRTC_UMAMETRICS_H_ |
OLD | NEW |