问题描述
我想登录到Azure Log Analytics工作区。我可以看到几个有关如何记录here的示例。没有时间研究转换给定样本的时间,我想知道是否有人愿意使用他们愿意共享的JavaScript开发类似的样本?
解决方法
我没有方便的JavaScript示例,但是here是Java示例(正在等待文档作者将其合并到this引用的Azure文档中。请参考:#60167)。看看是否有帮助!
,根据我的测试,如果要调用HTTP Data Collector API,请参考以下步骤。有关更多详细信息,请参阅document。
az login
az account set --subscription <the subscription you use>
az monitor log-analytics workspace get-shared-keys --resource-group <> --workspace-name <>
- 代码
var crypto = require("crypto")
var request = require('request');
async function main() {
var json = [
{
slot_ID: 12345,ID: "5cdad72f-c848-4df0-8aaa-ffe033e75d57",availability_Value: 100,performance_Value: 6.954,measurement_Name: "last_one_hour",duration: 3600,warning_Threshold: 0,critical_Threshold: 0,IsActive: "true",},{
slot_ID: 67890,ID: "b6bee458-fb65-492e-996d-61c4d7fbb942",performance_Value: 3.379,IsActive: "false",}
];
var body = JSON.stringify(json);
var contentLength =Buffer.byteLength(body,'utf8');
var key = ''
var workspaceId = '';
var apiVersion = '2016-04-01';
var GMTTime = new Date().toUTCString()
var StringToSign = 'POST' + '\n'
+ contentLength+'\n'
+ 'application/json' + '\n'
+'x-ms-date:'+ GMTTime + '\n'
+ '/api/logs'
var Sig = crypto.createHmac('sha256',Buffer.from(key,'base64')).update(StringToSign,'utf-8').digest('base64');
var authorization = 'SharedKey ' + workspaceId + ':' + Sig;
var headers = {
"Content-Type":"application/json","Authorization": authorization,"Log-Type": 'demoexample',"x-ms-date": GMTTime,"time-generated-field" : new Date().toISOString
};
var url = 'https://' + workspaceId + '.ods.opinsights.azure.com/api/logs?api-version=' + apiVersion;
request.post({ url: url,headers: headers,body: body },function (error,response){
if (error){
console.log(error)
}else{
console.log(response.statusCode + " " + response.statusMessage)
}
})
}
main()