我有一个PowerShell脚本,该脚本对仅在内部可用的API进行内部测试。测试类型与此问题无关。它们通过或失败并显示错误消息。
我希望使用Application Insights TrackAvailability 向Azure报告测试结果的功能。这将使我可以监视Azure门户中的所有内容。
问题:我能做同样的事情吗? TrackAvailability逻辑,例如从PowerShell中进行REST调用,而不是使用.NET API?
答案 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
测试结果:
您还可以直接在Powershell中使用TrackAvailability
方法,只需将“ Microsoft.ApplicationInsights.dll
”复制到文件夹,然后使用add-type进行添加。一个简单的情况如下: