en-US/psTerminalPerfCounter-help.xml

<?xml version="1.0" encoding="utf-8"?>
<helpItems schema="maml" xmlns="http://msh">
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-tpcAvailableCounterConfig</command:name>
      <command:verb>Get</command:verb>
      <command:noun>tpcAvailableCounterConfig</command:noun>
      <maml:description>
        <maml:para>Retrieves, validates, and displays detailed information about available performance counter configurations including JSON schema validation and optional counter availability testing.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function scans the config directory for all JSON files with the 'tpc_' prefix and provides detailed information about each configuration including counter details, validation status, and availability checks.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-tpcAvailableCounterConfig</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>ConfigPath</maml:name>
          <maml:description>
            <maml:para>Optional custom path to configuration files. If not specified, uses the module's config directory.</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>$(Join-Path $PSScriptRoot "..\Config")</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>SchemaPath</maml:name>
          <maml:description>
            <maml:para>Path to Json Schema file</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>$(Join-Path $ConfigPath "schema.json")</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>Raw</maml:name>
          <maml:description>
            <maml:para>If specified, returns raw PSCustomObject array instead of formatted output.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
          <maml:name>TestCounters</maml:name>
          <maml:description>
            <maml:para>If specified, tests each counter for availability. This can be slow with many counters.</maml:para>
          </maml:description>
          <dev:type>
            <maml:name>SwitchParameter</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>False</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>ConfigPath</maml:name>
        <maml:description>
          <maml:para>Optional custom path to configuration files. If not specified, uses the module's config directory.</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>$(Join-Path $PSScriptRoot "..\Config")</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>SchemaPath</maml:name>
        <maml:description>
          <maml:para>Path to Json Schema file</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>$(Join-Path $ConfigPath "schema.json")</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>Raw</maml:name>
        <maml:description>
          <maml:para>If specified, returns raw PSCustomObject array instead of formatted output.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="none">
        <maml:name>TestCounters</maml:name>
        <maml:description>
          <maml:para>If specified, tests each counter for availability. This can be slow with many counters.</maml:para>
        </maml:description>
        <command:parameterValue required="false" variableLength="false">SwitchParameter</command:parameterValue>
        <dev:type>
          <maml:name>SwitchParameter</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>False</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Formatted output by default, PSCustomObject[] when -Raw is used.</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para></maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Get-tpcAvailableCounterConfig</dev:code>
        <dev:remarks>
          <maml:para>Shows formatted overview of all available configurations (without counter testing).</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>Get-tpcAvailableCounterConfig -TestCounters</dev:code>
        <dev:remarks>
          <maml:para>Shows formatted overview with counter availability testing.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 3 --------------------------</maml:title>
        <dev:code>Get-tpcAvailableCounterConfig -ConfigPath "C:\MyConfigs" -TestCounters</dev:code>
        <dev:remarks>
          <maml:para>Shows formatted overview of configurations from a custom directory with counter testing.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 4 --------------------------</maml:title>
        <dev:code>Get-tpcAvailableCounterConfig -Raw</dev:code>
        <dev:remarks>
          <maml:para>Returns raw configuration objects for further processing.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Get-tpcPerformanceCounterInfo</command:name>
      <command:verb>Get</command:verb>
      <command:noun>tpcPerformanceCounterInfo</command:noun>
      <maml:description>
        <maml:para>Evaluates and resolves language-independent performance counter IDs for configuration template creation.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function serves as the primary tool for discovering and validating performance counter IDs used in JSON configuration files. It operates with a language-independent approach by using numeric counter IDs instead of localized counter names, providing two main evaluation methods: ID-based resolution : Validates and resolves composite ID format (SetID-PathID) to verify counter availability and get localized information Name-based discovery : Searches counter sets and paths to identify correct IDs for JSON configuration creation</maml:para>
      <maml:para>The function translates between localized counter names and universal numeric IDs, ensuring JSON configuration templates work across different system languages and locales. All results include the composite counter IDs that are required for the counterID property in JSON configuration files.</maml:para>
      <maml:para>This is the essential tool for creating new JSON configuration files, as it provides the exact counterID values, counterSetType information, and available instances needed for proper configuration setup.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Get-tpcPerformanceCounterInfo</maml:name>
        <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>SearchTerm</maml:name>
          <maml:description>
            <maml:para>The search term for counter ID evaluation. Can be either: - Composite ID in format "SetID-PathID" (e.g., "238-6") for validation and resolution</maml:para>
            <maml:para>- Localized counter name or path pattern for ID discovery and template preparation</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="true" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>SearchTerm</maml:name>
        <maml:description>
          <maml:para>The search term for counter ID evaluation. Can be either: - Composite ID in format "SetID-PathID" (e.g., "238-6") for validation and resolution</maml:para>
          <maml:para>- Localized counter name or path pattern for ID discovery and template preparation</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>System.Management.Automation.PSCustomObject</maml:name>
        </dev:type>
        <maml:description>
          <maml:para>Returns a formatted table with counter information required for JSON configuration creation: ID : Composite counter ID (SetID-PathID) for the counterID property in JSON, or "N/A" if not resolvable CounterSet : Localized performance counter set name for reference purposes Path : Full localized counter path showing what the counter measures SetType : SingleInstance or MultiInstance - determines the counterSetType property in JSON configuration Instances : Available counter instances for MultiInstance counters - helps determine the counterInstance property value</maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Essential function for JSON configuration file creation in the psTerminalPerfCounter module. The language-independent counter ID approach ensures JSON configurations work across different system locales. Workflow for JSON Configuration Creation: 1. Use this function to discover counter IDs by searching for counter names 2. Validate counter availability and determine counterSetType 3. Identify appropriate counterInstance values for MultiInstance counters 4. Use the returned information to populate JSON configuration files Dependencies: Requires Get-PerformanceCounterId and Get-PerformanceCounterLocalName helper functions. Schema Compliance: All returned counter IDs follow the "SetID-PathID" format required by the JSON schema.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Get-tpcPerformanceCounterInfo -SearchTerm "238-6"</dev:code>
        <dev:remarks>
          <maml:para>Validates the composite counter ID "238-6" and returns detailed information including counterSetType and available instances. This validation ensures the counter ID is correct for use in JSON configuration files.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>Get-tpcPerformanceCounterInfo -SearchTerm "Processor"</dev:code>
        <dev:remarks>
          <maml:para>Searches for all processor-related performance counters and returns their corresponding counter IDs. The results show the exact counterID values needed for the JSON configuration files.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 3 --------------------------</maml:title>
        <dev:code>Get-tpcPerformanceCounterInfo -SearchTerm "% Processor Time"</dev:code>
        <dev:remarks>
          <maml:para>Finds the specific counter and returns its composite ID (238-6), counterSetType (MultiInstance), and available instances for creating JSON configuration entries.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
  <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10" xmlns:MSHelp="http://msdn.microsoft.com/mshelp">
    <command:details>
      <command:name>Start-tpcMonitor</command:name>
      <command:verb>Start</command:verb>
      <command:noun>tpcMonitor</command:noun>
      <maml:description>
        <maml:para>Starts real-time performance counter monitoring using predefined configuration templates with language-independent counter IDs.</maml:para>
      </maml:description>
    </command:details>
    <maml:description>
      <maml:para>This function launches the main monitoring interface of the psTerminalPerfCounter module. It loads performance counter configurations from JSON templates, validates counter availability, and starts continuous real-time monitoring with configurable update intervals and data retention.</maml:para>
      <maml:para>The function uses the module's language-independent ID system to ensure configurations work across different system locales. It automatically filters unavailable counters and provides detailed feedback about monitoring status. Supports interactive monitoring with graphical displays, tables, and statistics based on configuration settings.</maml:para>
    </maml:description>
    <command:syntax>
      <command:syntaxItem>
        <maml:name>Start-tpcMonitor</maml:name>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
          <maml:name>ConfigName</maml:name>
          <maml:description>
            <maml:para>Name of the configuration template to load (without 'tpc_' prefix and '.json' extension). Must correspond to a JSON file in the config directory (e.g., 'CPU' loads 'tpc_CPU.json'). Default: 'CPU'</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
          <dev:type>
            <maml:name>String</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>CPU</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
          <maml:name>UpdateInterval</maml:name>
          <maml:description>
            <maml:para>Interval in seconds between performance counter updates and display refreshes. Lower values provide more responsive monitoring but increase system load. Default: 1 second</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>1</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
          <maml:name>MaxDataPoints</maml:name>
          <maml:description>
            <maml:para>Maximum number of data points to retain in memory for each counter. Affects graphical displays and statistical calculations. Higher values use more memory. Default: 100 data points</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
          <dev:type>
            <maml:name>Int32</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>100</dev:defaultValue>
        </command:parameter>
        <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
          <maml:name>ProgressAction</maml:name>
          <maml:description>
            <maml:para>{{ Fill ProgressAction Description }}</maml:para>
          </maml:description>
          <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
          <dev:type>
            <maml:name>ActionPreference</maml:name>
            <maml:uri />
          </dev:type>
          <dev:defaultValue>None</dev:defaultValue>
        </command:parameter>
      </command:syntaxItem>
    </command:syntax>
    <command:parameters>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="1" aliases="none">
        <maml:name>ConfigName</maml:name>
        <maml:description>
          <maml:para>Name of the configuration template to load (without 'tpc_' prefix and '.json' extension). Must correspond to a JSON file in the config directory (e.g., 'CPU' loads 'tpc_CPU.json'). Default: 'CPU'</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">String</command:parameterValue>
        <dev:type>
          <maml:name>String</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>CPU</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="2" aliases="none">
        <maml:name>UpdateInterval</maml:name>
        <maml:description>
          <maml:para>Interval in seconds between performance counter updates and display refreshes. Lower values provide more responsive monitoring but increase system load. Default: 1 second</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>1</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="3" aliases="none">
        <maml:name>MaxDataPoints</maml:name>
        <maml:description>
          <maml:para>Maximum number of data points to retain in memory for each counter. Affects graphical displays and statistical calculations. Higher values use more memory. Default: 100 data points</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">Int32</command:parameterValue>
        <dev:type>
          <maml:name>Int32</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>100</dev:defaultValue>
      </command:parameter>
      <command:parameter required="false" variableLength="true" globbing="false" pipelineInput="False" position="named" aliases="proga">
        <maml:name>ProgressAction</maml:name>
        <maml:description>
          <maml:para>{{ Fill ProgressAction Description }}</maml:para>
        </maml:description>
        <command:parameterValue required="true" variableLength="false">ActionPreference</command:parameterValue>
        <dev:type>
          <maml:name>ActionPreference</maml:name>
          <maml:uri />
        </dev:type>
        <dev:defaultValue>None</dev:defaultValue>
      </command:parameter>
    </command:parameters>
    <command:inputTypes />
    <command:returnValues>
      <command:returnValue>
        <dev:type>
          <maml:name>Interactive real-time monitoring display with configurable output formats:</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>- Graphical plots (line, bar, scatter based on configuration)</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>- Statistical summaries (min, max, average, current values)</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>- Tabular data with formatted values and units</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
      <command:returnValue>
        <dev:type>
          <maml:name>- Session summary upon completion</maml:name>
        </dev:type>
        <maml:description>
          <maml:para></maml:para>
        </maml:description>
      </command:returnValue>
    </command:returnValues>
    <maml:alertSet>
      <maml:alert>
        <maml:para>Main entry point for the psTerminalPerfCounter monitoring system. Requires JSON configuration files in the module's config directory. Press Ctrl+C to stop monitoring and display session summary.</maml:para>
      </maml:alert>
    </maml:alertSet>
    <command:examples>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 1 --------------------------</maml:title>
        <dev:code>Start-tpcMonitor</dev:code>
        <dev:remarks>
          <maml:para>Starts monitoring using the default CPU configuration with 1-second updates and 100 data points.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 2 --------------------------</maml:title>
        <dev:code>Start-tpcMonitor -ConfigName "Memory" -UpdateInterval 2</dev:code>
        <dev:remarks>
          <maml:para>Starts memory monitoring with 2-second update intervals using the 'tpc_Memory.json' configuration.</maml:para>
        </dev:remarks>
      </command:example>
      <command:example>
        <maml:title>-------------------------- EXAMPLE 3 --------------------------</maml:title>
        <dev:code>Start-tpcMonitor -ConfigName "Disk" -UpdateInterval 1 -MaxDataPoints 200</dev:code>
        <dev:remarks>
          <maml:para>Starts disk monitoring with 1-second updates and extended data retention of 200 points.</maml:para>
        </dev:remarks>
      </command:example>
    </command:examples>
    <command:relatedLinks />
  </command:command>
</helpItems>