当前位置: 首页 > news >正文

郑州做网站琴百度推广竞价是什么意思

郑州做网站琴,百度推广竞价是什么意思,如网站性质为公司 请以企业备案,wordpress微博发帖插件上一篇博文介绍了如何连接Windows Azure: http://www.cnblogs.com/teld/p/5113063.html 本篇我们继续上次的示例代码,获取虚拟机的监控定义和监控数据。 有人会问,Azure Portal上已经有了监控数据,通过代码获取有意思吗?我们计划基…

上一篇博文介绍了如何连接Windows Azure: http://www.cnblogs.com/teld/p/5113063.html

本篇我们继续上次的示例代码,获取虚拟机的监控定义和监控数据。

有人会问,Azure Portal上已经有了监控数据,通过代码获取有意思吗?我们计划基于性能计数器的监控数据来实现应用的自动伸缩,因此可以获取到监控指标定义和监控数据应该是第一步。

在Azure的管理Portal中我们可以看到虚拟机的监控数据,目前,提供的主要有以下监控指标:

CPU Percentage;Disk Read; Disk Write; Network in;NetWork Out。

Azure中监控的Nuget主要是这个:Microsoft Azure Management Libraries

核心的几个namespace有:

我们本篇用的是Metric这个命名空间,核心类MetricClient:

namespace AzureTest
{using Microsoft.WindowsAzure;using Microsoft.WindowsAzure.Management.Monitoring.Metrics;using Microsoft.WindowsAzure.Management.Monitoring.Metrics.Models;using Microsoft.WindowsAzure.Management.Monitoring.Utilities;/// <summary>/// 监控客户端/// </summary>class MonitorClient{private SubscriptionCloudCredentials credentials;public MonitorClient(SubscriptionCloudCredentials credentials){this.credentials = credentials;}/// <summary>/// 获取所有的监控指标/// </summary>public void GetMetricDefinitions(){var metricsClient = new MetricsClient(credentials);// Build the resource ID string.var resourceId = ResourceIdBuilder.BuildVirtualMachineResourceId("cloudServiceName", "deploymentName");Console.WriteLine("Resource Id: {0}", resourceId);//Get the metric definitions.var metricListResponse=metricsClient.MetricDefinitions.List(resourceId, null, null);34 MetricDefinitionCollection metricDefinitions = metricListResponse.MetricDefinitionCollection;           // Display the metric definitions.int count = 0;foreach (MetricDefinition metricDefinition in metricDefinitions.Value){Console.WriteLine("MetricDefinitio: " + count++);Console.WriteLine("Display Name: " + metricDefinition.DisplayName);Console.WriteLine("Metric Name: " + metricDefinition.Name);                Console.WriteLine("Metric Namespace: " + metricDefinition.Namespace);                Console.WriteLine("Is Altertable: " + metricDefinition.IsAlertable);Console.WriteLine("Min. Altertable Time Window: " + metricDefinition.MinimumAlertableTimeWindow);Console.WriteLine();}}
}
}

使用上一篇我们的Azure 凭据验证器,获取一个令牌凭据TokenCloudCredentials,然后构造一个MonitorClient,获取指定虚拟机的监控数据。

static void Main(string[] args)
{            var credential = Authorizator.GetCredentials();var client = new MonitorClient(credential);client.GetMetricDefinitions();Console.ReadLine();
}

第一块代码中:

var resourceId = ResourceIdBuilder.BuildVirtualMachineResourceId("cloudServiceName", "deploymentName");

这个地方通ResourceIDBuilder获取虚拟机的资源ID,对应的参数分别为:cloudServiceName和deploymentName,第一个是虚拟机使用的云服务名称,第二个是虚拟机名称即可。

Run...

出错了:

{"ForbiddenError: The server failed to authenticate the request. Verify that the certificate is valid and is associated with this subscription."}

一番Google后未果,咋整,再分析下错误信息:

可以看到,请求的Uri:

{https://management.core.windows.net/37*****-5107-*****-*******6/services/monitoring/metricdefinitions/query?&resourceId=%2Fhostedservices%2Fteldptapp%2Fdeployments%2Fteldptapp}

请求又跑到Azure Global那去了。

这个错误困扰了好久,还在StackOverflow上发了英文咨询贴,不知道洋人们如何回答了。在此多谢鞠强老大的指导,想办法将请求的Uri定位到中国区的Azure。

重新分析了代码,找到了Monitor的构造函数中,可以指定Uri,将中国区Azure的Uri指定一下:https://management.core.chinacloudapi.cn

MetricsClient metricsClient = new MetricsClient(credentials, new Uri("https://management.core.chinacloudapi.cn/"));

测试通过,ok。

获取到了监控指标定义,接下来我们获取监控数据:

namespace AzureTest
{using Microsoft.WindowsAzure;using Microsoft.WindowsAzure.Management.Monitoring.Metrics;using Microsoft.WindowsAzure.Management.Monitoring.Metrics.Models;using Microsoft.WindowsAzure.Management.Monitoring.Utilities;/// <summary>/// 监控客户端/// </summary>class MonitorClient{private SubscriptionCloudCredentials credentials;public MonitorClient(SubscriptionCloudCredentials credentials){this.credentials = credentials;}/// <summary>/// 获取所有的监控指标数据/// </summary>public void GetMetricData(){var metricsClient = new MetricsClient(credentials, new Uri("https://management.core.chinacloudapi.cn/"));// Build the resource ID string.var resourceId = ResourceIdBuilder.BuildVirtualMachineResourceId("cloudServiceName", "deploymentName");Console.WriteLine("Resource Id: {0}", resourceId);//Get the metric definitions.var metricListResponse = metricsClient.MetricDefinitions.List(resourceId, null, null);MetricDefinitionCollection metricDefinitions = metricListResponse.MetricDefinitionCollection;var metricNamespace = "";var metricNames = new List<string>();// Display the metric definitions.int count = 0;foreach (MetricDefinition metricDefinition in metricDefinitions.Value){Console.WriteLine("MetricDefinitio: " + count++);Console.WriteLine("Display Name: " + metricDefinition.DisplayName);Console.WriteLine("Metric Name: " + metricDefinition.Name);if (!metricNames.Contains(metricDefinition.Name))metricNames.Add(metricDefinition.Name);Console.WriteLine("Metric Namespace: " + metricDefinition.Namespace);metricNamespace = metricDefinition.Namespace;Console.WriteLine("Is Altertable: " + metricDefinition.IsAlertable);Console.WriteLine("Min. Altertable Time Window: " + metricDefinition.MinimumAlertableTimeWindow);Console.WriteLine();}// timeGrain must be 5, 60 or 720 minutes.TimeSpan timeGrain = TimeSpan.FromMinutes(5);DateTime startTime = DateTime.UtcNow.AddHours(-1);DateTime endTime = DateTime.UtcNow;MetricValueListResponse response = metricsClient.MetricValues.List(resourceId, metricNames, metricNamespace, timeGrain, startTime, endTime);foreach (MetricValueSet value in response.MetricValueSetCollection.Value){String valueName = value.Name;Console.WriteLine("MetricValue:{0}", valueName);foreach (MetricValue metricValue in value.MetricValues){Console.WriteLine("Maximum:{0}{1}", metricValue.Maximum, value.Unit);Console.WriteLine("Average:{0}{1}", metricValue.Average, value.Unit);Console.WriteLine("Minimum:{0}{1}", metricValue.Minimum, value.Unit);}}}}
}

Run...

程序在metricsClient.MetricValues.List(resourceId, metricNames, metricNamespace, timeGrain, startTime, endTime);

出错了:
Additional information: <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">{"Code":"InvalidRequest","Message":"Could not retrieve metrics."}</string>

为啥不能获取监控指标呢?

这个错误,Google一番依旧未果,咨询了微软的技术工程师,给了如下指导,resouceID必须执行RoleName:

var resourceId = ResourceIdBuilder.BuildVirtualMachineResourceId("cloudService", "deploymentName", "roleName");

修改之后,问题解决。

至此,我们已经可以获取到监控指标和监控数据,下一步我们要获取自定义的性能计数器,基于自定义的性能计数器来实现自动伸缩。

 

周国庆

2016/3

转载于:https://www.cnblogs.com/tianqing/p/6526206.html

http://www.lbrq.cn/news/2765107.html

相关文章:

  • 网站建设进度表模板下载营销百度app下载手机版
  • python做网站guthubaso优化方案
  • 网站开发的代码最厉害的搜索引擎
  • 云南省建设项目申报网站手游推广个人合作平台
  • 做软装平台网站杭州优化公司在线留言
  • 上下框架 网站佛山做seo推广公司
  • 个人网站做短视频建站平台如何隐藏技术支持
  • 北京网站建设推广海南快速seo排名优化
  • 怎么做防劫持网站小学生班级优化大师
  • php动态网站开发实例教程最好的关键词排名优化软件
  • 外贸网站seo优化方案培训网站模板
  • 公司品牌flash网站的网站建设
  • 从零开始做网站内容运营百度网络营销中心
  • 湖北网站建设哪家专业网站seo策划方案
  • 重庆帝一网络网站建设专家云seo
  • 全国网站建设百度推广代理公司哪家好
  • 做网站电脑开一天用多少钱2022当下社会热点话题
  • 商标注册查询官网网站seo咨询服务
  • 哪里建设企业网站网站排名优化培训电话
  • 扬州高邮网站建设焊工培训心得体会
  • 抖音网站怎么做热门推广软件
  • 直播app开发教程seo排名优化app
  • 网站建设制作及推广seo基础知识培训
  • wordpress略缩图altseo服务包括哪些
  • 如何用xshell安装wordpress百度关键词优化推广
  • 单独做手机网站怎么做百度广告投放价格表
  • 如何提高网站点击率怎么做搜索引擎优化排名技巧
  • 前端入门先学什么seo交流群
  • 做好政府门户网站的建设百度排名点击
  • 网红营销模式分析英文网站seo
  • Nextcloud 私有云部署:cpolar 内网穿透服务实现安全远程文件访问
  • GitLab CI/CD、Jenkins与GitHub Actions在Kubernetes环境中的方案对比分析
  • 在鸿蒙中实现深色/浅色模式切换:从原理到可运行 Demo
  • 软件需求管理过程详解
  • docker安装mongodb及java连接实战
  • Python-深度学习(一)