我有一个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)
我正在创建自托管代理,但是(我)还没有来自组织的任何队列/池权限。为此。
答案 0 :(得分:0)
做一个客户端。在最后一次Track()调用之后,先刷新()然后睡眠几秒钟。