Mukautetut mittarit Application Insightsiin REST API:lla

Kirjoittaja: Aali Alikoski

Miten hyödyntää mukautettuja mittareita Application Insightsissa paremman havainnoitavuuden saavuttamiseksi.
Azure Monitor on Azuren keskeinen paikka lokien ja mittareiden keräämiseen. Application Insights toimii Azure Monitorin päällä ja tukee sovellusten monitorointia. Jos sinulla on oma sovellus, joka ei ole valmiiksi Azuren palvelu (esimerkiksi virtuaalikoneessa ajettava ohjelmisto), voit lähettää sille telemetriaa Application Insightsiin.
Suositeltu tapa on yleensä käyttää SDK:ta (esimerkiksi NuGet-pakettia). Jos se ei ole käytännöllistä, mittareita voi lähettää myös REST API:n kautta.
Tässä on PowerShell-esimerkki REST API:n kautta. Muutama huomio ennen koodia:
- Mittarin arvo tulee yleensä jostain muusta lähteestä. Sinä päätät, mistä ja miten se luetaan.
- Voit lähettää useita
postBodyItem-kohteita samalla POST-pyynnöllä, jos haluat vähentää verkko-ylipäätä. AIInstrumentationKeylöytyy Application Insightsin Overview-näkymästä Azure Portalissa.metricNamespacejametricNameovat omia arvojasi. Ne näkyvät mittareissa, kun dataa on vastaanotettu.- Valinnaiset dimensiot ovat mittareiden luokittelua. Niiden perusteella voi suodattaa. Esimerkki dimensiosta on instanssin nimi tai asiakas.
try {
$AIInstrumentationKey = 'YourKeyHere'
$metricNamespace = 'YourNamespace'
$date = Get-Date -Format o
$metricName = 'YourMetricName'
$metricValue = 1.23
$Dimension1Value = 'YourDimension1'
$Dimension2Value = 'YourDimension2'
$postBodyItem = @"
{
"name": "Microsoft.ApplicationInsights.instrumentation_key.Metric",
"time": "$date",
"iKey": "$AIInstrumentationKey",
"tags": {
"ai.cloud.roleInstance": ".",
"ai.internal.nodeName": ".",
"ai.internal.sdkVersion": "."
},
"data": {
"baseType": "MetricData",
"baseData": {
"ver": 2 ,
"metrics": [{
"name": "$metricName",
"ns": "$metricNamespace",
"kind": "Aggregation",
"value": $metricValue,
"count": 1
}],
"properties": {
"Dimension1": "$Dimension1Value",
"Dimension2": "$Dimension2Value"
}
}
}
}
"@
Write-Host ''
Write-Host -NoNewline 'Sending metrics... '
$result = Invoke-WebRequest -Uri 'https://dc.services.visualstudio.com/v2/track' -ContentType 'application/json' -Method POST -Body $postBodyItem
$resultStats = $result.Content | ConvertFrom-Json
Write-Host "sent $($resultStats.itemsReceived)/$($resultStats.itemsAccepted) metric values."
} catch {
Write-Host $_.Exception.Message
}
Aiheeseen liittyviä artikkeleita

Bicep Local Extensions - mistä on kyse?
Katsaus Azure Bicepin Local Extensions -toimintoon, kun teet infraa koodina.


Azure Change Analysis – etsi syy, joka rikkoi sovelluksesi
Azure Change Analysisin käyttäminen infrastruktuurimuutosten seurantaan.


Kopioi Key Vault -salaisuudet Key Vaultista toiseen
Käytännön lähestymistapa salaisuuksien kopioimiseen Azure Key Vaultien välillä.
