Changeset 43933 in vbox
- Timestamp:
- Nov 22, 2012 7:43:47 AM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 82255
- Location:
- trunk/src/VBox
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VBoxManage/VBoxManageMetrics.cpp
r43629 r43933 104 104 { 105 105 char *pszRaw = aFullName.mutableRaw(); 106 char *pszSlash = strrchr(pszRaw, '/'); 107 if (pszSlash) 108 { 109 *pszSlash = 0; 110 aFullName.jolt(); 106 /* 107 * Currently there are two metrics which base name is the same as the 108 * sub-metric name: CPU/MHz and Net/<iface>/LinkSpeed. 109 */ 110 if (strcmp(pszRaw, "CPU/MHz") && !RTStrSimplePatternMatch("Net/*/LinkSpeed", pszRaw)) 111 { 112 char *pszSlash = strrchr(pszRaw, '/'); 113 if (pszSlash) 114 { 115 *pszSlash = 0; 116 aFullName.jolt(); 117 } 111 118 } 112 119 return Bstr(aFullName); -
trunk/src/VBox/Main/include/Performance.h
r43908 r43933 515 515 }; 516 516 517 class HostNetworkSpeed : public BaseMetric 518 { 519 public: 520 HostNetworkSpeed(CollectorHAL *hal, ComPtr<IUnknown> object, com::Utf8Str name, com::Utf8Str /* shortname */, com::Utf8Str /* ifname */, uint32_t speed, SubMetric *linkspeed) 521 : BaseMetric(hal, name, object), mSpeed(speed), mLinkSpeed(linkspeed) {}; 522 ~HostNetworkSpeed() { delete mLinkSpeed; }; 523 524 void init(ULONG period, ULONG length) { mPeriod = period; mLength = length; mLinkSpeed->init(length); }; 525 void preCollect(CollectorHints& /* hints */, uint64_t /* iTick */) {}; 526 void collect() { mLinkSpeed->put(mSpeed); }; 527 const char *getUnit() { return "mbit/s"; }; 528 ULONG getMinValue() { return 0; }; 529 ULONG getMaxValue() { return INT32_MAX; }; 530 ULONG getScale() { return 1; } 531 private: 532 ULONG mSpeed; 533 SubMetric *mLinkSpeed; 534 }; 535 517 536 class HostNetworkLoadRaw : public BaseMetric 518 537 { -
trunk/src/VBox/Main/src-server/HostNetworkInterfaceImpl.cpp
r43629 r43933 93 93 pm::CollectorHAL *hal = aCollector->getHAL(); 94 94 /* Create sub metrics */ 95 Utf8StrFmt strName("Net/%ls /Load", mShortName.raw());96 pm::SubMetric *networkLoadRx = new pm::SubMetric(strName + "/ Rx",95 Utf8StrFmt strName("Net/%ls", mShortName.raw()); 96 pm::SubMetric *networkLoadRx = new pm::SubMetric(strName + "/Load/Rx", 97 97 "Percentage of network interface receive bandwidth used."); 98 pm::SubMetric *networkLoadTx = new pm::SubMetric(strName + "/ Tx",98 pm::SubMetric *networkLoadTx = new pm::SubMetric(strName + "/Load/Tx", 99 99 "Percentage of network interface transmit bandwidth used."); 100 pm::SubMetric *networkLinkSpeed = new pm::SubMetric(strName + "/LinkSpeed", 101 "Physical link speed."); 100 102 101 103 /* Create and register base metrics */ 102 pm::BaseMetric *networkLoad = new pm::HostNetworkLoadRaw(hal, objptr, strName, Utf8Str(mShortName), Utf8Str(mInterfaceName), m.speedMbits, networkLoadRx, networkLoadTx); 104 pm::BaseMetric *networkSpeed = new pm::HostNetworkSpeed(hal, objptr, strName + "/LinkSpeed", Utf8Str(mShortName), Utf8Str(mInterfaceName), m.speedMbits, networkLinkSpeed); 105 aCollector->registerBaseMetric(networkSpeed); 106 pm::BaseMetric *networkLoad = new pm::HostNetworkLoadRaw(hal, objptr, strName + "/Load", Utf8Str(mShortName), Utf8Str(mInterfaceName), m.speedMbits, networkLoadRx, networkLoadTx); 103 107 aCollector->registerBaseMetric(networkLoad); 108 109 aCollector->registerMetric(new pm::Metric(networkSpeed, networkLinkSpeed, 0)); 110 aCollector->registerMetric(new pm::Metric(networkSpeed, networkLinkSpeed, 111 new pm::AggregateAvg())); 112 aCollector->registerMetric(new pm::Metric(networkSpeed, networkLinkSpeed, 113 new pm::AggregateMin())); 114 aCollector->registerMetric(new pm::Metric(networkSpeed, networkLinkSpeed, 115 new pm::AggregateMax())); 104 116 105 117 aCollector->registerMetric(new pm::Metric(networkLoad, networkLoadRx, 0)); … … 124 136 LogFlowThisFunc(("mShortName={%ls}, mInterfaceName={%ls}, mGuid={%s}\n", 125 137 mShortName.raw(), mInterfaceName.raw(), mGuid.toString().c_str())); 126 Utf8StrFmt name("Net/%ls /Load", mShortName.raw());138 Utf8StrFmt name("Net/%ls", mShortName.raw()); 127 139 aCollector->unregisterMetricsFor(objptr, name + "/*"); 128 140 aCollector->unregisterBaseMetricsFor(objptr, name);
Note:
See TracChangeset
for help on using the changeset viewer.