Skip to content

Commit 590d825

Browse files
authored
Merge pull request #606 from KelvinTegelaar/dev
[pull] dev from KelvinTegelaar:dev
2 parents 5b44c21 + 24ba12e commit 590d825

File tree

2 files changed

+52
-7
lines changed

2 files changed

+52
-7
lines changed

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

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ function Push-CIPPStandard {
88
)
99

1010
Write-Information "Received queue item for $($Item.Tenant) and standard $($Item.Standard)."
11+
1112
$Tenant = $Item.Tenant
1213
$Standard = $Item.Standard
1314
$FunctionName = 'Invoke-CIPPStandard{0}' -f $Standard
15+
1416
Write-Information "We'll be running $FunctionName"
1517

1618
if ($Standard -in @('IntuneTemplate', 'ConditionalAccessTemplate')) {
@@ -44,6 +46,30 @@ function Push-CIPPStandard {
4446
}
4547
$script:CippStandardInfoStorage.Value = $StandardInfo
4648

49+
# ---- Standard execution telemetry ----
50+
$runId = [guid]::NewGuid().ToString()
51+
$invocationId = if ($ExecutionContext -and $ExecutionContext.InvocationId) {
52+
"$($ExecutionContext.InvocationId)"
53+
} else {
54+
$null
55+
}
56+
57+
$sw = [System.Diagnostics.Stopwatch]::StartNew()
58+
$result = 'Unknown'
59+
$err = $null
60+
61+
Write-Information -Tag 'CIPPStandardStart' -MessageData (@{
62+
Kind = 'CIPPStandardStart'
63+
RunId = $runId
64+
InvocationId = $invocationId
65+
Tenant = $Tenant
66+
Standard = $Standard
67+
TemplateId = $Item.templateId
68+
API = $API
69+
FunctionName = $FunctionName
70+
} | ConvertTo-Json -Compress)
71+
# -------------------------------------
72+
4773
try {
4874
# Convert settings to JSON, replace %variables%, then convert back to object
4975
$SettingsJSON = $Item.Settings | ConvertTo-Json -Depth 10 -Compress
@@ -62,26 +88,44 @@ function Push-CIPPStandard {
6288
TriggerType = 'Standard'
6389
}
6490

65-
# Add template-specific metadata
6691
if ($Standard -eq 'IntuneTemplate' -and $Item.Settings.TemplateList.value) {
6792
$metadata['IntuneTemplateId'] = $Item.Settings.TemplateList.value
6893
}
6994
if ($Standard -eq 'ConditionalAccessTemplate' -and $Item.Settings.TemplateList.value) {
7095
$metadata['CATemplateId'] = $Item.Settings.TemplateList.value
7196
}
7297

73-
# Wrap the standard execution with telemetry
7498
Measure-CippTask -TaskName $Standard -EventName 'CIPP.StandardCompleted' -Metadata $metadata -Script {
7599
& $FunctionName -Tenant $Item.Tenant -Settings $Settings -ErrorAction Stop
76100
}
77101

102+
$result = 'Success'
78103
Write-Information "Standard $($Standard) completed for tenant $($Tenant)"
79104
} catch {
105+
$result = 'Failed'
106+
$err = $_.Exception.Message
107+
80108
Write-LogMessage -API 'Standards' -tenant $Tenant -message "Error running standard $($Standard) for tenant $($Tenant) - $($_.Exception.Message)" -sev Error -LogData (Get-CippException -Exception $_)
81109
Write-Warning "Error running standard $($Standard) for tenant $($Tenant) - $($_.Exception.Message)"
82110
Write-Information $_.InvocationInfo.PositionMessage
83111
throw $_.Exception.Message
84112
} finally {
113+
$sw.Stop()
114+
115+
Write-Information -Tag 'CIPPStandardEnd' -MessageData (@{
116+
Kind = 'CIPPStandardEnd'
117+
RunId = $runId
118+
InvocationId = $invocationId
119+
Tenant = $Tenant
120+
Standard = $Standard
121+
TemplateId = $Item.templateId
122+
API = $API
123+
FunctionName = $FunctionName
124+
Result = $result
125+
ElapsedMs = $sw.ElapsedMilliseconds
126+
Error = $err
127+
} | ConvertTo-Json -Compress)
128+
85129
if ($script:CippStandardInfoStorage) {
86130
$script:CippStandardInfoStorage.Value = $null
87131
}

Modules/CippEntrypoints/CippEntrypoints.psm1

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -279,11 +279,12 @@ function Receive-CippActivityTrigger {
279279
$Output = $null
280280
Set-Location (Get-Item $PSScriptRoot).Parent.Parent.FullName
281281
$metric = @{
282-
Kind = 'CIPPCommandStart'
283-
Command = $Item.Command
284-
Tenant = $Item.TenantFilter.defaultDomainName
285-
TaskName = $Item.TaskName
286-
JSONData = ($Item | ConvertTo-Json -Depth 10 -Compress)
282+
Kind = 'CIPPCommandStart'
283+
InvocationId = "$($ExecutionContext.InvocationId)"
284+
Command = $Item.Command
285+
Tenant = $Item.TenantFilter.defaultDomainName
286+
TaskName = $Item.TaskName
287+
JSONData = ($Item | ConvertTo-Json -Depth 10 -Compress)
287288
} | ConvertTo-Json -Depth 10 -Compress
288289

289290
Write-Information -MessageData $metric -Tag 'CIPPCommandStart'

0 commit comments

Comments
 (0)