evlog CLI 可观测性评分实战:用 evlog map 揪出应用里的暗区日志入口
【免费下载链接】evlogDigging through logs is not observability. Its hope — wide events, structured errors, TypeScript-first, every runtime.项目地址https://gitcode.com/gh_mirrors/ev/evlog点击查看免费下载为什么需要 evlog 可观测性评分翻日志堆永远不是可观测性——那只是希望。evlog 是一个 TypeScript 优先的日志库主打宽事件wide events、结构化错误和全运行时支持。它的 CLI 自带一个很实用的命令evlog map一次静态扫描就能给项目的日志入口打出一个 0–100 分的可观测性评分并点名最需要修的暗区入口dark entry points既没有宽事件、也没有上下文的处理器。整个过程不跑业务、不发流量、不改生产代码——读源码、AST 分析、出报告三分钟完成一次体检。30 秒跑出第一份评分报告在任意受支持的框架项目里执行一条命令即可CLI 要求 Node 22无需安装依赖npx evlog map --no-write当前evlog map已适配 7 个框架Nuxt、Nitro、Next.js App Router、TanStack Start、Hono、Express、Fastify。运行在应用的 package 目录里而不是空的 monorepo 根目录。扫描原理可以看源码入口在 map.ts扫描、打分、敏感度分类分别位于 scan.ts、score.ts 和 sensitivity.ts。读懂 evlog map 评分报告四个区块各回答一个问题报告从上到下依次是四块每块回答一个不同的问题1. 总分与评级大号数字是满分 100 的全局评分——所有入口的加权平均其中钱和认证相关路由权重 ×2页面 ×0.5。下方的单词是评级分数评级90–100excellent70–89good50–69needs work0–49at risk右侧的积木条是每个入口的分数分布最差的在左、最好的在右右边一片高块、左边零星矮块说明是个健康应用加几个盲区一整排矮块则意味着应用几乎没有埋点。2. COVERAGE 覆盖分组按你思考应用的方式分组API handlers、Pages、Middleware jobs、Money auth。其中 Money auth 是单独一行——那是漏一个事件最贵的地方低于全局分时会带 ⚠ 标记。3. FIX FIRST 优先修复最多 3 个这是整份报告的精华按敏感优先、分数最差优先选出最多三个入口每个都给出方法、路径、敏感标记$钱 /A认证 /PII、一句话问题描述以及文件名、行号和对应规则。4. THEN 其余缺口剩下有缺口的入口按修复动作批量归组比如add useLogger log.set to /api/... 4表示有 4 个入口需要同样的两行修改一遍扫过去即可。末尾两行也别漏看✓ Already solid表扬已经到位的入口▲ 76 → 86 by fixing the 3 above告诉你只修完 FIX FIRST 那三个分数就能从 76 升到 86——这就是为什么要从那里开始。官方文档中的完整报告示例2.map.md。揪出暗区入口--all 矩阵与单文件检查想看全部入口的检查矩阵加一个--allnpx evlog map --all每个入口一行最差排最前一行一列对应每条规则宽事件、上下文、审计、结构化错误等。点 ● 表示覆盖或缺口· 表示不适用。定位到某个入口后传路由或文件路径看它的完整解释npx evlog map server/api/auth/login.post.ts单文件报告会展示四样东西新手尤其要注意前两条WHY THIS FILE IS SCANNED——CLI 认为这个文件是什么。判错了下面的结论就全错这是第一眼要核的地方FLAGGED SENSITIVE BECAUSE——敏感分类的精确理由误报一行就能看出来SUGGESTED SHAPE——按你的框架习惯生成的修复形状例如/api/auth/login会建议auth.login这个审计动作而不是占位符修复预期▲ fixing this entry point: 75 → 100报告渲染逻辑在 report.tsGitHub Actions 注解格式在 formats.ts。评分是怎么算出来的规则权重与敏感分类每个入口从 100 分开始每失败一条**要求requirement**扣对应权重规则权重wide-event 宽事件40audit 审计日志25structured-errors 结构化错误20page-error-handling 页面错误处理20context 上下文15error-handling 错误处理15权重故意加起来超过 100全部失败的入口直接落到 0 分而修复优先级始终有意义宽事件 40 分压过任何两条小规则的组合。敏感路由为什么 ×2 加权敏感度分类器从两处取证据导入的依赖如stripe、better-auth和路径关键词checkout、login等整词匹配/api/authors不会被误判为认证路由。被标记钱/认证入口会追加一条audit要求并双倍计入全局平均。判断规则与权重详解见 4.scoring.md。把评分变成 CI 门禁--min-score 与 --baseline 棘轮评分最大的价值不是看一次而是持续不回归。三个标志位组合起来就是一套 CI 门禁npx evlog map --min-score 80 --baseline--min-score n全局分低于 n 时退出码为 1像一条真实测试一样拦住 PR--baseline与提交进仓库的evlog.map.json对比发现已存在入口的要求或分数回归就失败——就像快照测试静默删掉一个log.set的 refactor 无法溜过 review棘轮思路老应用从 34 分起步但从不回归比一个新应用 80 分然后一年滑到 50 更强注意两点每次运行会写入evlog.map.json用--no-write跳过规则集还在演进若用它做门禁请锁定 CLI 版本否则一次发版可能改变你没动过的代码的判定。CI 细节见 5.ci.md。误判怎么办一行注释关掉单条检查不同意某条判定时在代码里加一行注释即可检查立即变为n/a不扣分、不挡门禁理由会被记录报告也会统计项目里禁用了多少检查——高分永远不会掩盖什么都不打日志的应用// evlog-map-disable-next-line wide-event, context -- liveness probe, deliberately silent export default defineEventHandler(() ({ ok: true }))完整禁用语法见 3.rules.md。评分的边界高分≠可观测性完美静态分析有天花板知道它才能信任这个分数读代码不读流量入口可以打 100 分但运行时附带的上下文如果是错的事件照样没用。分数只说明形状在只追踪一层导入通过三层自建抽象传下来的 logger 可能不被识别当前仅 7 个框架有适配器其他运行时暂不扫描敏感分类是启发式看导入和路径用evlog map file查看理由误判一眼可见入口数为 0 时当前会显示 100 分——那是空结果不是全部埋好先看框架和入口数再解读一句话原则看dark和Money auth而不是只看头条数字——下一次故障就藏在这些地方。边界说明原文见 9.observability-score.md。上手路径小结npx evlog map --no-write出第一份评分读 FIX FIRST逐条用npx evlog map file看建议形状修复后重跑确认分数上涨提交evlog.map.json用--baseline上棘轮给 CI 加--min-score地板分锁定 CLI 版本evlog 的 CLI 全部命令init / map / doctor / logs / agents概览见 0.overview.md。第一次扫描分数难看很正常——这个数字不是用来跟别人比而是用来跟自己比让暗区入口一个个变亮就是这套可观测性评分的全部意义。赞分享【免费下载链接】evlogDigging through logs is not observability. Its hope — wide events, structured errors, TypeScript-first, every runtime.项目地址https://gitcode.com/gh_mirrors/ev/evlog点击查看免费下载相关推荐Activepieces 日志模式审查与 evlog 结构化日志改造实战指南Activepieces 日志模式审查与 evlog 结构化日志改造实战指南 本篇指南以 Activepieces 仓库中的日志审查技能文档为核心系统讲解如何工作流自动化低代码AI 应用人工智能AI AgentMCP 服务后端前端evlog独立TypeScript使用教程脚本、Worker、CLI的完整日志方案无需HTTP框架evlog独立TypeScript使用教程脚本、Worker、CLI的完整日志方案无需HTTP框架 evlog 是一个 TypeScript 优先的结构化日evlog × eve agent可观测性每轮对话一条宽事件token与工具调用全透明evlog × eve agent可观测性每轮对话一条宽事件token与工具调用全透明 evlog 是 TypeScript 优先的宽事件Wide Eve创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

agent-skills:面向生产环境的智能体能力治理范式

agent-skills:面向生产环境的智能体能力治理范式

1. 项目概述:一个被严重低估的“技能容器”概念“agent-skills”这个词组乍看像技术黑话,但拆开来看——它既不是某个具体开源库的官方命名,也不是某家大厂刚发布的API产品名,而是一个正在快速凝聚共识的设计范式代号。我在过去三…

2026/10/13 3:45:52 阅读更多 →
pip安装报错No space left on device?磁盘与inode排查详解

pip安装报错No space left on device?磁盘与inode排查详解

今天帮一位同事排查安装报错时,又看到了那行红色大字:ERROR: Could not install packages due to an OSError: [Errno 28] No space left on device。这行提示我见过太多次,几乎每个用 Python 做开发的人迟早都会撞上,尤其是服务器…

2026/10/13 1:05:10 阅读更多 →
YOLO图像分割实战:语义与实例分割的像素级掩码生成指南

YOLO图像分割实战:语义与实例分割的像素级掩码生成指南

简介:基于YOLO目标检测算法实现的图像语义分割与实例分割完整工程,内含源码、图片数据集和说明文档,面向计算机、电子信息工程、数学等专业大学生的课程设计、期末大作业或毕业设计,适合有一定编程基础、能自行调试与二次开发的读…

2026/10/13 1:06:11 阅读更多 →

最新新闻

股票时间序列预测:数据预处理与特征工程实战指南

股票时间序列预测:数据预处理与特征工程实战指南

简介:本资源是一份聚焦时间序列分析与神经网络融合应用的股票市场预测研究资料包,面向金融工程、量化分析及人工智能交叉领域的高校学生、研究人员与算法交易初学者。内容涵盖理论建模、实证分析与技术实现路径,旨在帮助学习者理解如何利用LS…

2026/10/13 5:00:19 阅读更多 →
LiteLLM模型抽象层实战:统一API调用与生产避坑指南

LiteLLM模型抽象层实战:统一API调用与生产避坑指南

1. 为什么是 LiteLLM?——一个被低估的模型抽象层实战价值LiteLLM 这个名字第一次出现在我视野里,是在某次调试一个跨平台 AI 工具链时。当时团队正在对接三家不同供应商的大模型 API:一家用 OpenAI 兼容接口,一家走 Anthropic 的…

2026/10/13 5:00:19 阅读更多 →
OpenCV中cv::Point不是简单坐标:像素级坐标契约与工程实践

OpenCV中cv::Point不是简单坐标:像素级坐标契约与工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 5:00:19 阅读更多 →
Java工程师转型Agent Engineer:24周工程化实战路线图

Java工程师转型Agent Engineer:24周工程化实战路线图

1. 为什么Java背景反而是做Agent Engineer的隐藏优势很多Java工程师一听到“转型Agent Engineer”第一反应是焦虑:是不是要把Spring全家桶全扔了?是不是得从头学Python、啃Transformer论文、刷LeetCode Hard?我一开始也这么想,直到…

2026/10/13 5:00:19 阅读更多 →
PS5游戏跨平台运行技术原理与兼容层实践

PS5游戏跨平台运行技术原理与兼容层实践

我无法根据当前输入内容生成符合要求的博文。原因如下:项目标题“AnyPS5”缺乏明确指向性,未说明其性质(是工具、项目、概念、漏洞利用、模拟器、兼容层、硬件改装方案,还是其他);项目正文为空,…

2026/10/13 5:00:19 阅读更多 →
Docker运行Redis生产实践:从单节点到集群的高可用落地

Docker运行Redis生产实践:从单节点到集群的高可用落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 4:59:19 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →