public class StatisticsCollectorForWindows extends AbstractStatisticsCollector
Note: The concept of a PID exists for Windows, but it is not relevant to collection of performance counters since Windows does not appear to support collection by PID, only by the process name. Since we run multiple services per host, collection by process name is not sufficient to facilitate decision making by the load balancer. Instead, the load balancer relies on service specific performance counters, including the average queue length and response time.
http://technet2.microsoft.com/windowsserver/en/library/45b6fbfc-9fcd-4e58-b070-1ace9ca93f2e1033.mspx?mfr=true,
for a description of the typeperf command.,
http://www.microsoft.com.nsatc.net/technet/archive/winntas/maintain/monitor/perform.mspx?mfr=true,
for a list of counters and their descriptions.AbstractStatisticsCollector.Options| Modifier and Type | Field and Description |
|---|---|
protected TypeperfCollector |
typeperf
reports on host performance counters (CPU, MEM, IO).
|
fullyQualifiedHostName, hostPathPrefix, interval, log, ps| Constructor and Description |
|---|
StatisticsCollectorForWindows(int interval,
String processName) |
| Modifier and Type | Method and Description |
|---|---|
CounterSet |
getCounters()
Return the counter hierarchy.
|
void |
start()
Start collecting host performance data -- must be extended by the
concrete subclass.
|
void |
stop()
Stop collecting host performance data -- must be extended by the concrete
subclass.
|
addBasicServiceOrClientCounters, addGarbageCollectorMXBeanCounters, addMemoryPoolMXBeanCounters, addServiceProperties, getInterval, getMemoryCounterSet, getProcessName, installShutdownHook, kb2b, main, newInstanceprotected final TypeperfCollector typeperf
public StatisticsCollectorForWindows(int interval,
String processName)
interval - Reporting interval in seconds.public void start()
AbstractStatisticsCollectorstart in interface IStatisticsCollectorstart in class AbstractStatisticsCollectorpublic void stop()
AbstractStatisticsCollectorstop in interface IStatisticsCollectorstop in class AbstractStatisticsCollectorpublic CounterSet getCounters()
AbstractStatisticsCollectorAbstractProcessCollector.
Note: Subclasses MUST extend this method to initialize their own
counters.
TODO Why does this use the older synchronized pattern with a
shared AbstractStatisticsCollector.countersRoot object rather than returning a new object
per request? Check assumptions in the scale-out and local journal code
bases for this.
getCounters in interface ICounterSetAccessgetCounters in class AbstractStatisticsCollectorCopyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.