Skip to content

Commit 354d839

Browse files
Add custom task support
1 parent df76b5b commit 354d839

File tree

2 files changed

+37
-4
lines changed

2 files changed

+37
-4
lines changed

Modules/CIPPCore/Public/Entrypoints/Activity Triggers/Standards/Push-CIPPStandard.ps1

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,28 @@ function Push-CIPPStandard {
4949
$Settings = $Item.Settings
5050
}
5151

52-
& $FunctionName -Tenant $Item.Tenant -Settings $Settings -ErrorAction Stop
52+
# Prepare telemetry metadata for standard execution
53+
$metadata = @{
54+
Standard = $Standard
55+
Tenant = $Tenant
56+
TemplateId = $Item.templateId
57+
FunctionName = $FunctionName
58+
TriggerType = 'Standard'
59+
}
60+
61+
# Add template-specific metadata
62+
if ($Standard -eq 'IntuneTemplate' -and $Item.Settings.TemplateList.value) {
63+
$metadata['IntuneTemplateId'] = $Item.Settings.TemplateList.value
64+
}
65+
if ($Standard -eq 'ConditionalAccessTemplate' -and $Item.Settings.TemplateList.value) {
66+
$metadata['CATemplateId'] = $Item.Settings.TemplateList.value
67+
}
68+
69+
# Wrap the standard execution with telemetry
70+
Measure-CippTask -TaskName $Standard -EventName 'CIPP.StandardCompleted' -Metadata $metadata -Script {
71+
& $FunctionName -Tenant $Item.Tenant -Settings $Settings -ErrorAction Stop
72+
}
73+
5374
Write-Information "Standard $($Standard) completed for tenant $($Tenant)"
5475
} catch {
5576
Write-LogMessage -API 'Standards' -tenant $Tenant -message "Error running standard $($Standard) for tenant $($Tenant) - $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_)

Modules/CIPPCore/Public/Tools/Measure-CippTask.ps1

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)