У меня есть скрипт powershell, который импортирует двоичный файл Microsoft.ApplicationInsights
, чтобы регистрировать пользовательское событие телеметрии.Локально это работает.
При создании конвейера выпуска для регистрации тех же событий ничто не достигает понимания приложения.Со стороны сценария он «успешно» отправляет события, но они никогда не появляются в консоли AI.Локально запустив этот же сценарий, события попали в AI.
Подумав, что-то связанное с powershell, я создал консольное приложение ядра .net, чтобы сделать то же самое.
Опять же, локально работает нормально,но когда релиз-агент запускает .exe, он говорит, что он успешен, но никакие события не попадают в AI.
Есть ли что-то хитрое, что вам нужно сделать, чтобы регистрировать пользовательские события (или любые, если на то пошло) непосредственно из сборки/ разделительный агент?
Вот (перефразированный) код powershell:
$logins = <An object which has count, some timestamp info>
# Construct the custom event. Have to use IDictionary
$event = new-object Microsoft.ApplicationInsights.DataContracts.EventTelemetry
$event.Timestamp = (get-date) # Failing if not present
$metrics = New-Object "System.Collections.Generic.Dictionary``2[System.String,System.Double]"
$properties = New-Object "System.Collections.Generic.Dictionary``2[System.String,System.String]"
$metrics.Add('Count',$logins.value.AuthenticationCount)
$Properties.Add('Tenant',$TenantDomain)
$Properties.Add('StartTimestamp', $logins.value.StartTimeStamp)
$Properties.Add('EndTimestamp', $logins.value.EndTimeStamp)
$client.TrackEvent("Logins", $Properties, $Metrics)
write-verbose -verbose "[INF]: LoginCount of $($logins.value.AuthenticationCount) added"
(From here, wait about 2 mins and this event appears in AI, when running on a local computer. Same script running on a VSTS agent = nothing appears in AI)
Я нахожусь в процессе создания агента, размещенного самостоятельно, однако у меня (пока) нет очереди /разрешения пула от моей организации.сделать это.