@@ -10,6 +10,8 @@ function Measure-CippTask {
1010 The scriptblock to execute and measure
1111 . PARAMETER Metadata
1212 Optional hashtable of metadata to include in telemetry (e.g., Command, Tenant, TaskInfo)
13+ . PARAMETER EventName
14+ Optional custom event name (default: "CIPP.TaskCompleted")
1315 . FUNCTIONALITY
1416 Internal
1517 . EXAMPLE
@@ -19,6 +21,13 @@ function Measure-CippTask {
1921 Command = "New-CIPPTemplateRun"
2022 Tenant = "contoso.onmicrosoft.com"
2123 }
24+ . EXAMPLE
25+ Measure-CippTask -TaskName "DisableGuests" -EventName "CIPP.StandardCompleted" -Script {
26+ # Standard logic here
27+ } -Metadata @{
28+ Standard = "DisableGuests"
29+ Tenant = "contoso.onmicrosoft.com"
30+ }
2231 #>
2332 [CmdletBinding ()]
2433 param (
@@ -29,7 +38,10 @@ function Measure-CippTask {
2938 [scriptblock ]$Script ,
3039
3140 [Parameter (Mandatory = $false )]
32- [hashtable ]$Metadata
41+ [hashtable ]$Metadata ,
42+
43+ [Parameter (Mandatory = $false )]
44+ [string ]$EventName = ' CIPP.TaskCompleted'
3345 )
3446
3547 # Initialize tracking variables
@@ -81,10 +93,10 @@ function Measure-CippTask {
8193 $metrics [' DurationMs' ] = [double ]$durationMs
8294
8395 # Send custom event to Application Insights
84- $global :TelemetryClient.TrackEvent (' CIPP.TaskCompleted ' , $props , $metrics )
96+ $global :TelemetryClient.TrackEvent ($EventName , $props , $metrics )
8597 $global :TelemetryClient.Flush ()
8698
87- Write-Verbose " Telemetry sent for task '$TaskName ' (${durationMs} ms)"
99+ Write-Verbose " Telemetry sent for task '$TaskName ' to event ' $EventName ' (${durationMs} ms)"
88100 } catch {
89101 Write-Warning " Failed to send telemetry for task '${TaskName} ': $ ( $_.Exception.Message ) "
90102 }
0 commit comments