Beispiel #1
0
    public async Async.Task <VirtualMachineScaleSetExtensionData> MonitorExtension(string region, Os vmOs)
    {
        var settings = await _logAnalytics.GetMonitorSettings();

        if (vmOs == Os.Windows)
        {
            return(new VirtualMachineScaleSetExtensionData {
                Name = "OMSExtension",
                TypePropertiesType = "MicrosoftMonitoringAgent",
                Publisher = "Microsoft.EnterpriseCloud.Monitoring",
                TypeHandlerVersion = "1.0",
                AutoUpgradeMinorVersion = true,
                Settings = new BinaryData(new { WorkSpaceId = settings.Id }),
                ProtectedSettings = new BinaryData(new { WorkspaceKey = settings.Key })
            });
        }
        else if (vmOs == Os.Linux)
        {
            return(new VirtualMachineScaleSetExtensionData {
                Name = "OMSExtension",
                TypePropertiesType = "OmsAgentForLinux",
                Publisher = "Microsoft.EnterpriseCloud.Monitoring",
                TypeHandlerVersion = "1.12",
                AutoUpgradeMinorVersion = true,
                Settings = new BinaryData(new { WorkSpaceId = settings.Id }),
                ProtectedSettings = new BinaryData(new { WorkspaceKey = settings.Key })
            });
        }
        else
        {
            throw new NotImplementedException($"unsupported os: {vmOs}");
        }
    }
        public async Task <HttpResponseData> GetMonitorSettings([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "testhooks/logAnalytics/monitorSettings")] HttpRequestData req)
        {
            _log.Info("Get monitor settings");

            var monitorSettings = await _logAnalytics.GetMonitorSettings();

            var msg  = JsonSerializer.Serialize(monitorSettings, EntityConverter.GetJsonSerializerOptions());
            var resp = req.CreateResponse(HttpStatusCode.OK);
            await resp.WriteStringAsync(msg);

            return(resp);
        }