是否有用于TrackAvailability的REST API?

时间:2019-02-12 08:51:28

标签: powershell azure-application-insights

我有一个PowerShell脚本,该脚本对仅在内部可用的API进行内部测试。测试类型与此问题无关。它们通过或失败并显示错误消息。

我希望使用Application Insights TrackAvailability 向Azure报告测试结果的功能。这将使我可以监视Azure门户中的所有内容。

问题:我能做同样的事情吗? TrackAvailability逻辑,例如从PowerShell中进行REST调用,而不是使用.NET API?

2 个答案:

答案 0 :(得分:0)

是的,您可以使用可用性测试结果进行HTTP发布。最简单的方法是创建一个执行TrackAvailability()调用的控制台应用程序,并捕获提琴手跟踪以了解帖子主体结构。您可以从powershell做到这一点。

此处记录了端点规范,但是上述方法可帮助您快速入门。 https://github.com/Microsoft/ApplicationInsights-Home/tree/master/EndpointSpecs

答案 1 :(得分:0)

您可以遵循以下link

我做了一个测试,并且工作正常:

powershell代码:

$body = (New-Object PSObject `
    | Add-Member -PassThru NoteProperty name 'Microsoft.ApplicationInsights.Availability' `
    | Add-Member -PassThru NoteProperty time $([System.dateTime]::UtcNow.ToString('o')) `
    | Add-Member -PassThru NoteProperty iKey "your instrumentation key" `
    | Add-Member -PassThru NoteProperty tags (New-Object PSObject `
    | Add-Member -PassThru NoteProperty 'ai.cloud.roleInstance' $env:computername `
    | Add-Member -PassThru NoteProperty 'ai.internal.sdkVersion' 'one-line-ps:1.0.0') `
    | Add-Member -PassThru NoteProperty data (New-Object PSObject `
        | Add-Member -PassThru NoteProperty baseType 'EventData' `
        | Add-Member -PassThru NoteProperty baseData (New-Object PSObject `
            | Add-Member -PassThru NoteProperty ver 2 `
            | Add-Member -PassThru NoteProperty name 'aaaaaaaa from one line script' `
            | Add-Member -PassThru NoteProperty properties (New-Object PSObject `
                | Add-Member -PassThru NoteProperty propName 'propValue')))) `
    | ConvertTo-JSON -depth 5; 

    Invoke-WebRequest -Uri 'https://dc.services.visualstudio.com/v2/track' -Method 'POST' -UseBasicParsing -body $body

测试结果:

enter image description here

您还可以直接在Powershell中使用TrackAvailability方法,只需将“ Microsoft.ApplicationInsights.dll”复制到文件夹,然后使用add-type进行添加。一个简单的情况如下:

enter image description here