专栏首页python深度学习Python基础之告警定义与告警抑制
原创

Python基础之告警定义与告警抑制

Python告警定义

这里有一篇博客比较全面的介绍了在python中定义告警的类别和方法,这里我们选取一种最容易使用也最常用的方法,直接使用warnings.warn的功能:

1
2
3
4
5
6
7
8
9
10
# warning_test.py

import warnings
import sys

if sys.argv[1] == '-w':
    warnings.warn('This is the warning message you wanted!')

else:
    print ('No warnings!')

在这个示例代码中,我们从命令行的输入来获取参数,如果获取到命令行的参数是-w,就抛出这个告警,在日常的项目程序中这表示一个异常情况的判定开关。无损音乐下载如果没有满足判定条件,就打印No warnings信息。我们先来看下有异常情况下所抛出的告警信息:

1
2
3
[dechin@dechin-manjaro warning]$ python3 warning_test.py -w
warning_test.py:7: UserWarning: This is the warning message you wanted!
  warnings.warn('This is the warning message you wanted!')

另外再看一下没有满足判定条件情况下的输出:

1
2
[dechin@dechin-manjaro warning]$ python3 warning_test.py -n
No warnings!

这里从结果中可以看到,我们对告警的定义就完成了。

Python告警抑制

在前面一篇博客中我们介绍了异常的抑制,同样的我们也可以抑制告警信息。但是这里用抑制来形容这个行为可能并不是很合适,只是一个习惯性的叫法,因为告警本身就不影响程序的正常运行,应该说只是过滤掉告警信息的打印输出。告警抑制的方案也很简单,warnings.filterwarnings就自带了这个功能,具体代码实现如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# warning_test.py

import warnings
import sys

warnings.filterwarnings('ignore')

if sys.argv[1] == '-w':
    warnings.warn('This is the warning message you wanted!')

else:
    print ('No warnings!')

print ('Continue to running.')

可以看到我们只是在代码中加了一行warnings.filterwarnings的代码,过滤掉了所有的告警信息的输出。此外我们在程序的最后加了一行打印信息,以确认我们在抛出告警信息并且被抑制之后,还能够继续执行后面的程序(注意,不抑制也能继续执行)。歌曲下载

1
2
[dechin@dechin-manjaro warning]$ python3 warning_test.py -w
Continue to running.

最后我们发现,告警被成功抑制,并且告警之后的程序也能够正常的运行。

总结概要

告警和异常信息的定义与处理,在网络编程项目和各种实际计算的场景中都会被用到。这里我们通过两篇博客进行了比较简单的介绍,对于没有特殊要求的用户而言,按照示例中给出的样板直接修改就能够使用。更多的时候是规范的要求,我们可能需要修改异常和告警所继承的类型。同时对于异常和告警信息,我们也能够有方案去进行抑制,更加适配各种不同的场景需求。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python基础之告警定义与告警抑制

    在前面一篇博客中我们介绍了在python中自定义异常以及异常的捕获。这里我们要介绍另外一种形式的用户提醒:告警。我们这里就不给出一些过于官方或者技术的定义了,在...

    DechinPhy
  • Python|Google Python样式指南

    Python是Google使用的主要动态语言。该样式指南列出了Python程序的注意事项。

    算法与编程之美
  • Python基础—让你规范Python语言的使用

    群内不定时分享干货,包括最新的python企业案例学习资料和零基础入门教程,欢迎初学和进阶中的小伙伴入群学习交流 ? Lint 定义: pylint是一个在Py...

    企鹅号小编
  • Alertmanager 安装与使用

    Alertmanager是一个独立的告警模块,接收Prometheus等客户端发来的警报,之后通过分组、删除重复等处理,并将它们通过路由发送给正确的接收器;告警...

    py3study
  • prometheus 告警

    告警能力在Prometheus的架构中被划分成两个独立的部分。如下所示,通过在Prometheus中定义AlertRule(告警规则),Prometheus会周...

    张琳兮
  • Prometheus一条告警是怎么触发的

    Prometheus+Grafana是监控告警解决方案里的后起之秀,比如大家熟悉的PMM,就是使用了这个方案;前不久罗老师在3306pi公众号上就写过完整的使用...

    田帅萌
  • python的warnings模块

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    狼啸风云
  • java注解用法详解——@SuppressWarnings

      在java编译过程中会出现很多警告,有很多是安全的,但是每次编译有很多警告影响我们对error的过滤和修改,我们可以在代码中加上 @SuppressWarn...

    黑泽君
  • @SuppressWarnings的常见用法

    从Java 5.0起,您可以使用java.lang.SuppressWarning注释,来停用与编译单元子集相关的编译警告。

    cxuan

扫码关注云+社区

领取腾讯云代金券