NAME

Get-DcsRecordingPerformance

SYNOPSIS

Returns recorded performance data for a specific instance or counters.

SYNTAX

Get-DcsRecordingPerformance   -Instance <Object>   [ -StartTime <DateTime> ]   [ -EndTime <DateTime> ]   [ -Resolution <TimeSpan> ]   [ -Counter <String[]> ]   [ -Endpoint <Object> ]   [ -Connection <String> ]   [ -PipelineVariable <String> ]

DESCRIPTION

Returns recorded performance data for a specific instance or counters. Filtering parameters may be specified to narrow the scope of the data returned. If no parameters are specified, all data for the "!UserRecordingEndpoint" will be returned."

PARAMETERS

-Instance<Object>
The PerformanceInstanceData object or any other object, ID or name that identifies the instance that is being recorded. To resolve by name, the name must be unique to the server group. If the instance is specified, only data for that instance will be returned.

Required: true
Position: 1
Default value:
Accept pipeline input: true (ByValue)
Accept wildcard characters: false

-StartTime<DateTime>
The starting date and time of the performance recording. One way to provide the StartTime parameter would be to invoke New-Object with the TypeName parameter of DateTime with the correct arguments (see Help for New-Object, Get-Date). The StartTime parameter can also be provided in a string with the date and time. An example of the format is "Monday, December 3, 2012 2:00:00 PM". All DateTime objects returned by CmdLets are in UTC. If not specified, the Data and Time information provided to the DataCore CmdLet(s) is treated as being in the time zone of the machine running the CmdLet. All data which existed at or after the start time will be returned. This parameter can be used with the parameter EndTime to create a time frame.

Required: false
Position: named
Default value:
Accept pipeline input: false
Accept wildcard characters: false

-EndTime<DateTime>
The ending date and time of the performance recording. One way to provide the EndTime parameter would be to invoke New-Object with the TypeName parameter of DateTime with the correct arguments (see Help for New-Object, Get-Date). The StartTime parameter can also be provided in a string with the date and time. An example of the format is "Monday, December 3, 2012 4:00:00 PM". All DateTime objects returned by CmdLets are in UTC. If not specified, the Data and Time information provided to the DataCore CmdLet(s) is treated as being in the time zone of the machine running the CmdLet. All data which existed at or before the end time will be returned. This parameter can be used with the parameter EndTime to create a time frame.

Required: false
Position: named
Default value:
Accept pipeline input: false
Accept wildcard characters: false

-Resolution<TimeSpan>
The interval between each recording point in the recording session. For instance, if the resolution is 10 minutes, recorded data will be returned for every 10 minute interval. One way to provide the TimeSpan parameter would be by using New-TimeSpan with the correct arguments (see the Help for New-TimeSpan). The TimeSpan parameter value can also be provided in a string which represents the number of days, hours, minutes, seconds, and milliseconds in the past. For instance, if the timespan should be 10 minutes, the value would be "00.00:10:00.00000". Note: Data is recorded at a default rate of every 2 minutes, so the recording interval rate should be considered for the resolution value in order to get meaningful recording performance data returned.

Required: false
Position: named
Default value:
Accept pipeline input: false
Accept wildcard characters: false

-Counter<String[]>
The name of one or more specific counters. To get counter names for an instance, use the cmdlet Get-DcsPerformanceCounter and pass the specific object that identifies the instance.

Required: false
Position: named
Default value:
Accept pipeline input: false
Accept wildcard characters: false

-Endpoint<Object>
The RecordingEndpointData object, name or ID that identifies a recording endpoint. If the endpoint is not specified, statistics for the "!UserRecordingEndpoint" will be returned.

Required: false
Position: named
Default value:
Accept pipeline input: false
Accept wildcard characters: false

-Connection<String>
Alias of the connection to the server group. If not specified, the default connection will be used.

Required: false
Position: named
Default value:
Accept pipeline input: false
Accept wildcard characters: false

-PipelineVariable<String>

Required: false
Position: named
Default value:
Accept pipeline input: false
Accept wildcard characters: false

INPUTS

PerformanceInstanceData or any object type that identifies an instance. : The PerformanceInstanceData object identifies and describes the instance in a recording session. Any other object that identifies the instance that is being recorded may also be piped.

OUTPUTS

PerformanceSeriesData : Object that identifies and describes the performance data.

NOTES

To get performance for a physical disk not in a pool, use the PhysicalDiskId for the instance. To get performance for a physical disk in a pool, use the PoolMemberId for the instance.See Example 4 which demonstrates how to use an instance to get recorded performance data and output the data to a CSV file.Also see Get-DcsRecordingInstance, Get-DcsRecordingPoint, Get-DcsRecordingResolution, Get-DcsRecordingEndpoint, Get-DcsRecordingSession, Get-DcsRecordingStatistics

EXAMPLES


-------------- Example 1 Returns data for a specified instance and at a specified resolution --------------
$Tspan = New-TimeSpan -Minutes 10
Get-DcsPool -Pool "Disk pool 1" | Get-Dcsrecordingperformance -Resolution $Tspan

The cmdlet New-TimeSpan is invoked to create a TimeSpan object with the time span of 10 minutes and store it in the variable $Tspan. The cmdlet Get-DcsPool is invoked with the pool parameter of "Disk pool 1" to return the object DiskPoolData for Disk pool 1. This object is piped to the cmdlet Get-DcsRecordingPerformance with the value of the parameter Resolution set to $Tspan. The object PerformanceSeriesData is returned with data at a resolution of 10 minutes.

InstanceKeyData                                              PerformanceSeries
---------------                                              -----------------
DataCore.Executive.PerformanceInstanceKeyData                 DataCore.Executive.DiskPoolPerformance, DataCore.Executive.DiskPoolPer...
		

-------------- Example 2 Returns data for a specific start and end time --------------
Get-DcsRecordingPerformance -StartTime "Tuesday, February 12, 2013 11:50 AM" -EndTime "Tuesday, February 12, 2013 12:25:00 PM" -Resolution 00.00:10:00.00000 -Instance "Disk pool 1"
			
The Get-DcsRecordingPerformance cmdlet is invoked with a start time of "Tuesday, February 12, 2013 11:50 AM" and an end time of "Tuesday, February 12,
2013 12:25:00 PM", with a resolution of 10 minutes for the instance "Disk pool 1". The object PerformanceSeriesData is returned which contains the data for "Disk pool 1" for the specified time frame using a resolution of 10 minutes.
InstanceKeyData                                                PerformanceSeries
---------------                                                -----------------
DataCore.Executive.PerformanceInstanceKeyData                  {DataCore.Executive.DiskPoolPerformance, DataCore.Executive.DiskPoolPer...
		

-------------- Example 3 Returns data for specific counters --------------
$VD1Ctrs = Get-DcsRecordingPoint -Instance "Virtual disk 1"
Get-DcsRecordingPerformance -Instance "Virtual disk 1" -Counter $VD1Ctrs.counters

The cmdlet Get-DcsRecordingPoint is invoked to return the recording points for the instance "Virtual disk 1". The results are stored in the variable $VD1Ctrs. The cmdlet Get-DcsRecordingPerformance is invoked for the instance "Virtual disk 1" and counter parameter is given the value of the variable "$VD1Crs.counters" where the specific counters are stored for "Virtual disk 1". The PerformanceSeriesData object is returned.

InstanceKeyData                                             PerformanceSeries
---------------                                             -----------------
DataCore.Executive.PerformanceInstanceKeyData               {DataCore.Executive.VirtualDiskPerformance, DataCore.Exe...
		

-------------- Example 4 Uses an instance to retrieve performance data for an object category --------------
$PoolInstances = Get-DcsRecordingInstance -Category DiskPool
$PoolInstances[0].ActivityWindow
Center    : 8/10/2013 12:00:00 AM
Period    : 6.00:00:00
IsValid   : True
StartTime : 8/7/2013 12:00:00 AM
EndTime   : 8/13/2013 12:00:00 AM
$StartTime = $PoolInstances[0].ActivityWindow.StartTime
$EndTime = $PoolInstances[0].ActivityWindow.EndTime
$Resolution = (New-TimeSpan -Hours 12)
$RecPerf = Get-DcsRecordingPerformance -StartTime $StartTime -EndTime $EndTime
-Instance $PoolInstances[0] -Resolution $Resolution
$RecPerf.PerformanceSeries | Export-Csv -Path C:\Example.csv

The cmdlet Get-DcsRecordingInstance is used to retrieve recorded disk pool instances and stored in the variable $PoolInstances. The ActivityWindow for the first instance is retrieved and displayed. The Start time from the Activity Window is stored in the variable $StartTime and the End Time from the Activity Window is stored in the variable $EndTime. A resolution of 12 hours is stored in the variable $Resolution. the cmdlet Get-DcsRecordingPerformance is used to get the recording data for every 12 hours between the start time and end time and the performance data is stored in the variable $RecPerf. The Performance Series in the variable $RecPerf is exported to a CSV file named Example.csv located in the C:\ path. Data for all recorded disk pool counters are in the file. An excerpt from the Example.csv file follows:

#TYPE DataCore.Executive.DiskPoolPerformance
"TotalBytesTransferred","TotalBytesRead","TotalBytesWritten","TotalBytesMigrated","TotalReads","TotalWrites","TotalOperations","BytesAllocated","BytesAvailable","BytesInReclamation","BytesTotal","PercentAllocated","PercentAvailable","TotalReadTime","TotalWriteTime","MaxReadTime","MaxWriteTime","MaxReadWriteTime","MaxPoolBytes","BytesReserved","BytesAllocatedPercentage","BytesReservedPercentage","BytesInReclamationPercentage","BytesAvailablePercentage","BytesOverSubscribed","CollectionTime","NullCounterMap"
"0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","8/7/2013 12:00:00 AM","18446744073709551615"
"4504486400","3812809728","1245054464","0","678815","338046","1016861","42949672960","10200547328","0","53150220288","81","19","8678677","314593","65","5","66","1108127332171776","0","81","0","0","19","0","8/7/2013 12:00:00 PM","18446744073675997184"
"13315784192","11271298560","2044485632","0","2007382","998288","3005670","42949672960","10200547328","0","53150220288","81","19","26319872","910059","74","5","74","1108127332171776","0","81","0","0","19","0","8/8/2013 12:00:00 AM","18446744073675997184"
"55390927872","53090332672","2300595200","0","1200480","2720512","3920992","43005691003","55848109408","300392057","99154192470","46","53","14099141","4425856","56","7","59","1108127332171776","0","46","0","0","53","13892474748","8/8/2013 12:00:00 PM","18446744073675997184"