可观测学堂

可观测问答

聚焦概念、架构、排障、价格与选型,一篇解决一个明确问题。

如何用两个列表(键列表和值列表)创建一个 Python 字典? cover
概念指南

如何用两个列表(键列表和值列表)创建一个 Python 字典?

用 zip() 配合 dict() 即可把键列表和值列表合并成字典:dict(zip(keys, values))。本文介绍基本用法、长度不一致的处理及字典推导式写法。

Python 中如何实现单例模式? cover
概念指南

Python 中如何实现单例模式?

Python 实现单例的几种方式:模块级实例、__new__ 方法、装饰器和元类。本文对比各种实现,重点介绍可复用的元类写法。

如何排查 Logstash File 输入插件不读文件的问题? cover
概念指南

如何排查 Logstash File 输入插件不读文件的问题?

Logstash file 插件不采集日志?按本文清单排查:开启 debug 日志、检查路径权限、处理 sincedb 偏移文件、确认 start_position,并了解观测云 DataKit 更省心的替代方案。

如何用 pdb 断点调试 pytest 测试? cover
概念指南

如何用 pdb 断点调试 pytest 测试?

调试 pytest 用例有两种方式:在代码里插入 breakpoint() 手动打断点,或用 pytest --pdb 在断言失败时自动进入调试器。本文介绍两种用法及常用 pdb 命令。

如何调试 Logstash 配置(验证配置与查看事件流)? cover
概念指南

如何调试 Logstash 配置(验证配置与查看事件流)?

调试 Logstash 三步走:--config.test_and_exit 验证语法、stdout rubydebug 输出查看事件结构、--debug 查看运行细节。本文给出完整排查流程。

现代 Python 中如何正确定义自定义异常? cover
概念指南

现代 Python 中如何正确定义自定义异常?

Python 自定义异常的标准做法是继承 Exception(或更具体的内置异常类),按需添加属性。本文给出规范写法、继承选择与常见误区。

Python 中如何删除字典里的元素? cover
概念指南

Python 中如何删除字典里的元素?

删除 Python 字典元素的三种方法:del 语句、pop() 方法(可带默认值避免 KeyError)、popitem() 删除并返回最后插入的项。本文对比三者用法与区别。

Python 中如何删除文件或文件夹? cover
概念指南

Python 中如何删除文件或文件夹?

Python 删除文件用 os.remove() 或 Path.unlink();删除空目录用 os.rmdir();递归删除整个目录树用 shutil.rmtree()。本文对比各方法及注意事项。

Python 中如何判断一个对象的类型? cover
概念指南

Python 中如何判断一个对象的类型?

Python 判断对象类型用 type() 获取精确类型,用 isinstance() 做类型检查(推荐,支持继承关系),issubclass() 检查类之间的继承。本文对比三者用法。

pytest 中如何临时禁用(跳过)某个测试? cover
概念指南

pytest 中如何临时禁用(跳过)某个测试?

pytest 跳过测试用 @pytest.mark.skip 装饰器(可注明原因),或用 skipif 按条件跳过,命令行可用 --deselect 精确排除。本文对比各种方式。

如何关闭 Python requests 库输出的日志? cover
概念指南

如何关闭 Python requests 库输出的日志?

requests 的日志来自它自己和底层 urllib3,把这两个 logger 的级别设为 WARNING 即可静音。本文给出代码写法和 Django settings 配置方式。

Python 跑单元测试时如何禁用日志输出? cover
概念指南

Python 跑单元测试时如何禁用日志输出?

测试时刷屏的日志可以用 logging.disable(logging.CRITICAL) 全局静音,pytest 则可用 -p no:logging 或配置 log_cli。本文介绍两种思路及恢复方法。