记录来自构建/发布代理的自定义事件遥测

时间:2018-09-27 00:35:42

标签: azure-devops azure-application-insights

我有一个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)

我正在创建自托管代理,但是(我)还没有来自组织的任何队列/池权限。为此。

1 个答案:

答案 0 :(得分:0)

做一个客户端。在最后一次Track()调用之后,先刷新()然后睡眠几秒钟。