Azure日志API JavaScript示例

问题描述

我想登录到Azure Log Analytics工作区。我可以看到几个有关如何记录here的示例。没有时间研究转换给定样本的时间,我想知道是否有人愿意使用他们愿意共享的JavaScript开发类似的样本?

解决方法

我没有方便的JavaScript示例,但是here是Java示例(正在等待文档作者将其合并到this引用的Azure文档中。请参考:#60167)。看看是否有帮助!

,

根据我的测试,如果要调用HTTP Data Collector API,请参考以下步骤。有关更多详细信息,请参阅document

  1. Get Share Key
az login
az account set --subscription <the subscription you use>
az monitor log-analytics workspace get-shared-keys --resource-group <> --workspace-name <>
  1. 代码
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()
    
    

enter image description here