Package oshi.util.platform.windows
Class PerfCounterQuery
java.lang.Object
oshi.util.platform.windows.PerfCounterQuery
@ThreadSafe public final class PerfCounterQuery extends java.lang.Object
Enables queries of Performance Counters using wild cards to filter instances
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfacePerfCounterQuery.PdhCounterPropertyContract for Counter Property Enums -
Field Summary
Fields Modifier and Type Field Description static java.lang.StringNOT_TOTAL_INSTANCEstatic java.lang.StringNOT_TOTAL_INSTANCESstatic java.lang.StringTOTAL_INSTANCEstatic java.lang.StringTOTAL_INSTANCES -
Method Summary
Modifier and Type Method Description static java.lang.Stringlocalize(java.lang.String perfObject)Localize a PerfCounter string.static <T extends java.lang.Enum<T>>
java.util.Map<T,java.lang.Long>queryValues(java.lang.Class<T> propertyEnum, java.lang.String perfObject, java.lang.String perfWmiClass)Query the a Performance Counter using PDH, with WMI backup on failure, for values corresponding to the property enum.static <T extends java.lang.Enum<T>>
java.util.Map<T,java.lang.Long>queryValuesFromPDH(java.lang.Class<T> propertyEnum, java.lang.String perfObject)Query the a Performance Counter using PDH for values corresponding to the property enum.static <T extends java.lang.Enum<T>>
java.util.Map<T,java.lang.Long>queryValuesFromWMI(java.lang.Class<T> propertyEnum, java.lang.String wmiClass)Query the a Performance Counter using WMI for values corresponding to the property enum.
-
Field Details
-
TOTAL_INSTANCE
public static final java.lang.String TOTAL_INSTANCE- See Also:
- Constant Field Values
-
TOTAL_INSTANCES
public static final java.lang.String TOTAL_INSTANCES- See Also:
- Constant Field Values
-
NOT_TOTAL_INSTANCE
public static final java.lang.String NOT_TOTAL_INSTANCE- See Also:
- Constant Field Values
-
NOT_TOTAL_INSTANCES
public static final java.lang.String NOT_TOTAL_INSTANCES- See Also:
- Constant Field Values
-
-
Method Details
-
queryValues
public static <T extends java.lang.Enum<T>> java.util.Map<T,java.lang.Long> queryValues(java.lang.Class<T> propertyEnum, java.lang.String perfObject, java.lang.String perfWmiClass)Query the a Performance Counter using PDH, with WMI backup on failure, for values corresponding to the property enum.- Type Parameters:
T- The enum type ofpropertyEnum- Parameters:
propertyEnum- An enum which implementsPerfCounterQuery.PdhCounterPropertyand contains the WMI field (Enum value) and PDH Counter string (instance and counter)perfObject- The PDH object for this counter; all counters on this object will be refreshed at the same timeperfWmiClass- The WMI PerfData_RawData_* class corresponding to the PDH object- Returns:
- An
EnumMapof the values indexed bypropertyEnumon success, or an empty map if both PDH and WMI queries failed.
-
queryValuesFromPDH
public static <T extends java.lang.Enum<T>> java.util.Map<T,java.lang.Long> queryValuesFromPDH(java.lang.Class<T> propertyEnum, java.lang.String perfObject)Query the a Performance Counter using PDH for values corresponding to the property enum.- Type Parameters:
T- The enum type ofpropertyEnum- Parameters:
propertyEnum- An enum which implementsPerfCounterQuery.PdhCounterPropertyand contains the WMI field (Enum value) and PDH Counter string (instance and counter)perfObject- The PDH object for this counter; all counters on this object will be refreshed at the same time- Returns:
- An
EnumMapof the values indexed bypropertyEnumon success, or an empty map if the PDH query failed.
-
queryValuesFromWMI
public static <T extends java.lang.Enum<T>> java.util.Map<T,java.lang.Long> queryValuesFromWMI(java.lang.Class<T> propertyEnum, java.lang.String wmiClass)Query the a Performance Counter using WMI for values corresponding to the property enum.- Type Parameters:
T- The enum type ofpropertyEnum- Parameters:
propertyEnum- An enum which implementsPerfCounterQuery.PdhCounterPropertyand contains the WMI field (Enum value) and PDH Counter string (instance and counter)wmiClass- The WMI PerfData_RawData_* class corresponding to the PDH object- Returns:
- An
EnumMapof the values indexed bypropertyEnumif successful, an empty map if the WMI query failed.
-
localize
public static java.lang.String localize(java.lang.String perfObject)Localize a PerfCounter string. English counter names should normally be inHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009\Counter, but language manipulations may delete the009index. In this case we can assume English must be the language and continue. We may still fail to match the name if the assumption is wrong but it's better than nothing.- Parameters:
perfObject- A String to localize- Returns:
- The localized string if localization successful, or the original string otherwise.
-