可观测学堂

可观测问答

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

Python 中如何执行外部程序或系统命令? cover
概念指南

Python 中如何执行外部程序或系统命令?

Python 执行系统命令推荐 subprocess.run()(官方推荐,安全可靠),避免使用过时的 os.system()。本文介绍 subprocess.run 的用法、获取输出和安全注意事项。

如何退出(deactivate)Python 虚拟环境? cover
概念指南

如何退出(deactivate)Python 虚拟环境?

退出 Python 虚拟环境只需运行 deactivate 命令,或直接关闭终端。本文说明 deactivate 的用法及重新激活方法。

Python 中如何从文件名提取扩展名? cover
概念指南

Python 中如何从文件名提取扩展名?

提取文件扩展名推荐 os.path.splitext()(返回带点扩展名)或 pathlib 的 Path.suffix 属性。本文对比两种标准做法及字符串切片的局限性。

编译报错 "fatal error: Python.h: No such file or directory" 怎么解决? cover
概念指南

编译报错 "fatal error: Python.h: No such file or directory" 怎么解决?

Python.h 找不到是因为缺少 Python 开发头文件包。Ubuntu/Debian 装 python3-dev,CentOS/RHEL 装 python3-devel,macOS 一般自带。本文给出各系统解决方案。

Python 中如何展平(flatten)嵌套列表? cover
概念指南

Python 中如何展平(flatten)嵌套列表?

展平二维列表最简洁的写法是列表推导式 [x for sub in l for x in sub]。本文介绍推导式、itertools.chain、sum 技巧及多层嵌套的递归方案。

Python 中如何让 print 的输出立即显示(flush)? cover
概念指南

Python 中如何让 print 的输出立即显示(flush)?

print 默认行缓冲或块缓冲,输出可能延迟。三种立即刷新方式:print(..., flush=True)、sys.stdout.flush()、python -u 无缓冲模式运行。

如何强制 Logstash 从头重新解析一个文件? cover
概念指南

如何强制 Logstash 从头重新解析一个文件?

让 Logstash 重新读取整个文件:设置 sincedb_path => "/dev/null" 且 start_position => "beginning",或删除 sincedb 文件后重启。本文说明原理与操作步骤。

Filebeat 5 中如何强制重新读取(重建)日志数据? cover
概念指南

Filebeat 5 中如何强制重新读取(重建)日志数据?

让 Filebeat 重新处理日志文件:停止 Filebeat、删除 registry 注册表文件、重新启动。本文介绍操作步骤及 clean_removed 等相关配置。

Ruby 中如何自定义日志消息的格式? cover
概念指南

Ruby 中如何自定义日志消息的格式?

Ruby 的 Logger 类通过设置 formatter(proc)自定义日志格式,可控制时间格式、级别、消息排版。本文给出完整示例及常用格式字段说明。

Python 中如何获取一个实例的类名? cover
概念指南

Python 中如何获取一个实例的类名?

获取实例类名的两种方式:type(obj).__name__ 或 obj.__class__.__name__,两者等价。如需完整限定名用 __qualname__ 或 __module__ + __name__。

Python 中如何获取当前时间? cover
概念指南

Python 中如何获取当前时间?

Python 获取当前时间的两种主要方式:datetime.now()(推荐,功能全)和 time 模块。本文介绍格式化输出、时间戳获取和时区处理。

如何让 Filebeat 忽略某些容器的日志? cover
概念指南

如何让 Filebeat 忽略某些容器的日志?

Filebeat 忽略特定容器日志的方法:exclude_files 按文件名排除、drop_event 按内容过滤、autodiscover 条件排除。本文对比三种方案,并介绍观测云 DataKit 的容器日志过滤。