可观测学堂

可观测问答

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

Python 如何拼接(合并)两个列表? cover
概念指南

Python 如何拼接(合并)两个列表?

合并列表:+ 运算符创建新列表;extend() 就地追加;[*a, *b] 解包语法;itertools.chain 惰性拼接。本文给出四种方式与性能差异。

如何配置 Syslog 让某个应用的日志写入指定文件? cover
概念指南

如何配置 Syslog 让某个应用的日志写入指定文件?

通过 rsyslog 的 programname 过滤规则,把指定应用的日志路由到独立文件。本文给出完整配置步骤、权限设置与重载方法,并介绍如何用观测云 DataKit 统一采集这些文件。

Node.js 中 console.log 打印对象时显示 [Object],如何看到完整内容? cover
概念指南

Node.js 中 console.log 打印对象时显示 [Object],如何看到完整内容?

Node.js 的 console.log 对深层对象只显示 [Object]。本文介绍 util.inspect 的 depth 选项、JSON.stringify 以及 console.dir 三种方法,完整打印嵌套对象。

Python 中如何把整数转换成字符串? cover
概念指南

Python 中如何把整数转换成字符串?

Python 整数转字符串最常用的方法是 str(),也可以用 f-string、format() 等方法。本文对比各种写法及其适用场景。

Python 中如何复制文件? cover
概念指南

Python 中如何复制文件?

Python 复制文件用标准库 shutil:copy() 复制内容和权限,copy2() 额外保留时间戳等元数据,copytree() 递归复制整个目录。本文对比各方法差异。

如何正确使用 Rsyslog 的 imfile 模块解析文本文件? cover
概念指南

如何正确使用 Rsyslog 的 imfile 模块解析文本文件?

通过 rsyslog 的 imfile 模块可以采集普通文本日志文件并打进 syslog 管道。本文给出 RainerScript 风格的完整配置、状态文件说明及排错要点,并对比观测云 DataKit 的文件日志采集方案。

Python 中如何让程序暂停/延时一段时间? cover
概念指南

Python 中如何让程序暂停/延时一段时间?

Python 实现延时最常用的方法是 time.sleep()。本文介绍 sleep、异步 asyncio.sleep、以及忙等待方案的区别,并说明各自适用场景。

如何在 Logstash 配置文件中输出到多个 Elasticsearch 索引? cover
概念指南

如何在 Logstash 配置文件中输出到多个 Elasticsearch 索引?

Logstash 通过在 output 中用条件判断和索引名变量实现多索引输出。本文给出按日志类型分流到不同索引的完整配置示例,并介绍观测云的多索引方案。

Python 中如何安全地创建多级(嵌套)目录? cover
概念指南

Python 中如何安全地创建多级(嵌套)目录?

Python 创建嵌套目录推荐 pathlib 的 mkdir(parents=True, exist_ok=True),不会逐级报错也不会因目录已存在而抛异常。本文对比 pathlib 与 os.makedirs 的用法。

如何用两个列表(键列表和值列表)创建一个 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 更省心的替代方案。