Azure Monitor是Azure上提供的通过监控一系列数据来监测应用程序的可用性和性能的解决方案,监测的数据包括Metrics,Logs,监测的平台可以是一个Azure的订阅,资源组,也可以是这些资源组下面具体的VM,应用程序,甚至包括本地或者其他平台上的Guest OS/应用都可以支持

在应用方面,Azure Monitor有Application Insights 和 Azure Monitor for containers两项服务为应用程序提供更深层次的监控和分析,Application Insights 提供Application Map,Live Metrics Stream,Availability,Failures & Performance等十个细化的功能,利用这个工具既可以监测到应用本身的健康状况,也可以在业务层面更好的了解用户访问的相关信息,关于这十个功能模块的介绍,可以参考我同事赵健写的一篇博客:借助Application Insights,让Apps快速拥有APM,目前Application Insights官方支持 .Net / Java / Node.js几种语言,社区支持Python,PHP等其他语言,下面这篇文章会演示如何用Application Insights监视一个Python(Django框架)的应用。因为篇幅较长,我们把它大体分成两篇,第一篇验证Application Insights监控本地应用,第二篇用Application Insights监控一个部署在VM中的应用,除了看应用本身之外,我们还会看一下Azure Monitor在平台级别的监控如何。下面先开始准备工作:

(1)在用Azure VM + Azure Database for MySQL搭建Web服务这篇文章中,我们已经在Azure China Cloud搭好了一个WEB应用,为准备好环境,我们可以用快照跨区域复制的方法把这个VM快照拷贝到Global Auzre账号下,

这里遇到一个“小坑”,我们还用这篇文章用到的命令(Azure上几种常见的VM复制操作)来将快照跨区域复制到美东,

az storage blob copy start --destination-blob <name> --destination-container <name> --account-name <name> -account-key <> --source-uri <>

发现会报错:

You do not have the required permissions needed to perform this operation. Depending on your operation, you may need to be assigned one of the following roles:

'Storage Blob Data Contributor (Preview)'

'Storage Blob Data Reader (Preview)'

'Storage Queue Data Contributor (Preview)'

'Storage Queue Data Reader (Preview)' 

如果提示是这样,表明你没有权限,这时候需要给自己添加列出来的一个角色(即使你是这个存储账号的owner也需要添加),参照https://docs.microsoft.com/zh-cn/azure/storage/common/storage-auth-aad-rbac-portal 操作之后再运行就可以了:

快照复制完之后我们创建好虚拟机,重新调试一下环境没问题。

(2)创建一个application insights服务,在portal.azure.com的market place 搜索application insights,创建,可以选择美东,美东2,(其他感兴趣的区域可以查看下看支不支持这个功能https://azure.microsoft.com/zh-cn/global-infrastructure/services/),创建完成后在概述中记下Instrumentation Key,这个相当与告诉应用你要把log发到哪个application insights服务终结点(service endpoint)。

(3)参考https://pypi.org/project/applicationinsights/0.11.8/ 选择一个你想支持的Python版本,

先调试你本地的程序没问题,然后安装:

pip install applicationinsights

在你的setting.py 里添加一个中间件:

'applicationinsights.django.ApplicationInsightsMiddleware'

然后添加:

APPLICATION_INSIGHTS = {# (required) Your Application Insights instrumentation key'ikey': "00000000-0000-0000-0000-000000000000",# (optional) By default, request names are logged as the request method# and relative path of the URL.  To log the fully-qualified view names# instead, set this to True.  Defaults to False.'use_view_name': True,# (optional) To log arguments passed into the views as custom properties,# set this to True.  Defaults to False.'record_view_arguments': True,# (optional) Exceptions are logged by default, to disable, set this to False.'log_exceptions': False,# (optional) Events are submitted to Application Insights asynchronously.# send_interval specifies how often the queue is checked for items to submit.# send_time specifies how long the sender waits for new input before recycling# the background thread.'send_interval': 1.0, # Check every second'send_time': 3.0, # Wait up to 3 seconds for an event# (optional, uncommon) If you must send to an endpoint other than the# default endpoint, specify it here:'endpoint': "https://dc.services.visualstudio.com/v2/track",
}

这里的ikey换成你上面记的Instrumentation Key,这样就能将一些event log,trace发到ApplicationInsights上作分析和监控。另外还可以和Django的logging做集成,把Django的warnings,errors日志拿到ApplicationInsights上统一分析与监控:

LOGGING = {'version': 1,'disable_existing_loggers': False,'handlers': {# The application insights handler is here'appinsights': {'class': 'applicationinsights.django.LoggingHandler','level': 'WARNING'}},'loggers': {'django': {'handlers': ['appinsights'],'level': 'WARNING','propagate': True,}}
}

(4)上你刚创建的Azure Portal上查看:

概述中会将以下指标显示出来:

看下performance:

应用依赖情况:

session情况:

更多内容其实可以根据这篇操作自己搭一个体验一下怎么看。

至此一个本地Python应用的监控基本验证完成了,还是比较简单的配置,后面的文章会慢慢详细分析其中这些指标的内容和查询。

转载于:https://www.cnblogs.com/changruijun/p/10726984.html

用Azure Application Insights 监控Python应用(1)相关推荐

  1. Azure Application Insights REST API使用教程

    本文是Azure Application Insights REST API的简单介绍,并会包含一个通过Python消费API的示例/小工具. 新加入的team中的一项工作是制作日常的运维报表,制作方 ...

  2. 使用Azure Application Insignhts监控ASP.NET Core应用程序

    Application Insignhts是微软开发的一套监控程序.他可以对线上的应用程序进行全方位的监控,比如监控每秒的请求数,失败的请求,追踪异常,对每个请求进行监控,从http的耗时,到SQL查 ...

  3. 微软发布Azure Application Insights for Node.js 1.0版本

    在北美举行的Node.js交互大会上,微软发布了用于Node.js的Application Insights SDK. \\ 来自微软JavaScript平台和工具部门的高级经理Arunesh Cha ...

  4. (编译)使用 AppCenter 持续输出导出到 Application Insights

    原文地址:https://blog.xamarin.com/appcenter-continuous-export-application-insights/ 五星手机应用有一个特殊的特点:他们不会放 ...

  5. monit监控python脚本

    使用monit监控Python脚本时,要注意:start中创建单独的进程,并运行到后台,否则monit会认为程序超时. 主要有两种方式: 使用su命令 check process 1-wire wit ...

  6. 判断火车票座位python代码_12306 火车票监控Python代码,12306python, import u

    12306 火车票监控Python代码,12306python, import uimport urllib.request as request import http.cookiejar as c ...

  7. jupyter中python3如何导入文件_无法读取Azure Jupyter笔记本(Python 2和3)中的“.parquet”文件...

    我正在尝试使用azurejupyter笔记本打开拼花板文件.我尝试过Python内核(2和3). 安装pyarrow后,只有当Python内核为2时,我才能导入模块(不能使用python3) 以下是我 ...

  8. linux下的EC20的监控python脚本

    工作原因使用到EC20模块来给设备提供网络,使用写了个监控4G网络的脚本来监控网络状态,进行保活 该脚本可以将相关网络参数定时写入日志文件中,起到检测网络状态的作用. 安装工具与python串口库 a ...

  9. python流量监控,python监控历程网络流量

    python监控进程网络流量 rt,各位大哥,python2.7+有没有高效监控进程级网络IO的方法?不用pcap 我只需要知道固定时间间隔中,客户端软件与服务器有没有交互就可以了: 或者给我讲解一下 ...

最新文章

  1. GopherChina 2018 区块链+容器+Go底层实现
  2. 转:Linux--进程间通信(信号量,共享内存)
  3. mysql主键自增长_全面的MySQL优化面试解析
  4. 机器学习实战(python)-Ch02KNN-Notes
  5. 千寻和省cors精度对比_使用中海达RTK实战演示千寻cors账号对比省cors网络,验证其测量效果究竟如何...
  6. 微信多开软件苹果版_苹果(iphone)微信双开软件|ios系统福利来了
  7. 漂亮的Ribbon界面
  8. IT十年人生过客-二十九-结婚
  9. 频繁gc是什么意思_一次解决jvm GC过于频繁的经历
  10. iOS 5.1实现旋转屏幕
  11. 拆卸台式计算机的顺序,台式电脑拆装与清灰教程,让电脑焕然一新|Crucial(英睿达)...
  12. python提示syntaxerror什么意思_“SyntaxError:print”调用中缺少括号在Python中是什么意思?...
  13. セルジュ / Serge
  14. 华硕服务器进入重装系统界面怎么办,进不了桌面怎么重装系统,华硕电脑卡在欢迎界面...
  15. [7]深入浅出工作开源框架Camunda: camunda-webapp 用户登录功能代码分析
  16. Gerrit快速安装手册
  17. R语言:reshape2包里的melt()、dcast()、acast()函数学习
  18. PTA 7-9 叶节点求和 (20 分)
  19. 10 款你不知道的 Linux 环境下的替代工具
  20. 权利是人赋而非天赋的

热门文章

  1. matlab fbp fan arc,滤波反投影重建算法(FBP)实现及应用(matlab)
  2. wxpython菜单的位置_wx.grid 怎么加菜单呀!
  3. 【Python数据分析】数据预处理3——数据规约(含主成分分析详解、Python主要预处理函数)
  4. 广外大全国计算机,广外全国计算机等级考试考生人数再创新高
  5. python中的sklearn教程_python作业之sklearn
  6. AttributeError: module ‘onnxruntime‘ has no attribute ‘InferenceSession‘
  7. 基于AWT、Swing的GUI程序 - 改变观感
  8. AJAX提交表单数据
  9. 输入日期java_java怎么格式化输入日期
  10. Autofs自动挂在实现