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, newInstance
protected final TypeperfCollector typeperf
public StatisticsCollectorForWindows(int interval, String processName)
interval
- Reporting interval in seconds.public void start()
AbstractStatisticsCollector
start
in interface IStatisticsCollector
start
in class AbstractStatisticsCollector
public void stop()
AbstractStatisticsCollector
stop
in interface IStatisticsCollector
stop
in class AbstractStatisticsCollector
public CounterSet getCounters()
AbstractStatisticsCollector
AbstractProcessCollector
.
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 ICounterSetAccess
getCounters
in class AbstractStatisticsCollector
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.