Scrapfly Crawler
通过 Python SDK 使用 Scrapfly API 爬取网站,支持结构化数据提取与批量下载。
下载 214
系统化梳理日志、指标与追踪的协同机制及成本控制策略。
openclaw skills install @ivangdavila/observability命令、参数、文件名以原文为准
request_id,或用日志计数代替计数器。trace_id 的直方图桶,将“延迟高”转化为“这里有一个慢请求”。在添加标签前,优先考虑使用示例。rate())、仪表(当前值,不使用 rate)、直方图(分桶分布,主力工具)、摘要(客户端计算分位数,旧式,无法跨实例聚合)。使用直方图而非摘要:摘要无法在 Pod 间平均。avg(p99) 无意义:应平均桶,而非分位数。histogram_quantile(0.99, rate(http_duration_bucket[5m])),它读取桶边界而非原始值。rate 需要至少两个样本,范围至少为采样间隔的两倍。1 分钟范围搭配 15 秒采样 = 4 个样本,噪声大;建议使用 5 分钟。rate() 能处理重启导致的计数器重置;increase() 在长范围内可能跨重置重复计数。趋势分析信任 rate,精确计数避免使用 increase。5xx / total,应在代码中分别发出两个计数器;不要从日志行推导总数。从日志推导指标相当于让日志承担指标的工作,成本约为 100 倍。user_id(100 万个值)× endpoint(50 个)= 5000 万个系列。一个不良标签即可拖垮整个管道。user_id、email、request_id、session_id、trace_id、ip、原始 URL。这些应放在跨度和日志中,或作为示例,绝不能作为指标标签。/api/v1/status/tsdb(Prometheus)或等效的 top-series 端点,列出各标签的唯一值数量。每月运行一次;标签值超过 10 万个即为严重警告。http.target(原始 URL),保留 http.route(模板化路径)。收集器是最后的免费转换机会。timestamp、level、message、trace_id、span_id 以及上下文字段。自由文本在大规模场景下无法查询。user logged in + {user_id: 12345} 是一条日志流;而 user 12345 logged in 会生成 100 万条独立流。日志聚合基于模板索引,而非具体值;高基数消息会导致索引膨胀。trace_id,这是不可妥协的:它是从指标(计数上升)→ 跟踪(哪个请求)→ 日志(说了什么)之间的桥梁。缺少 trace_id 将导致三者完全割裂。operation、start/duration、status、attributes、span_id、parent_span_id、trace_id。树的结构即为请求的实际路径。traceparent 必须在每次边界(HTTP、队列、RPC)发送时注入,在接收时提取。缺失任一环节将导致追踪断裂,形成两个不连贯的部分。status != ok 的请求 100% 保留,latency > p99 的请求 100% 保留,其余按 1%-10% 抽样。这是实现完整故障信号而不带来全量数据负担的关键。user_id、request_id、http.method、db.statement、http.status_code 应放在跨度上,而非指标标签。采样可控制基数:5% 的采样率将 100 万用户标签缩减至约 5 万跨度。GET /users/{id},而非 GET /users/12345。原始 URL 会爆炸跨度名称基数并破坏聚合;路由模板才是分组依据。rows 数量属性,或对内部跨度采样。过度拆分相当于追踪中的内存泄漏。rate(errors[5m]) / rate(total[5m])(比率),而非直接告警 errors(其随流量增长而放大)。流量突增会导致错误数翻倍,但未必存在缺陷。/healthz、/readyz、/metrics 路径,避免主导链路体积。| 场景 | 应对策略 |
|---|---|
| p99 延迟突增,无明显原因 | 从延迟直方图中提取一个示例 trace_id,打开链路追踪,阅读关键路径,而非最长跨度。 |
| 指标存储账单一夜飙升 | 通过 /api/v1/status/tsdb 审计基数;新高基数标签与其他标签组合导致爆炸式增长。回滚该标签为跨度属性。 |
| 链路在某个服务边界中断 | 上下文传播问题:W3C traceparent 未注入或提取。检查消息队列消费者或 RPC 客户端;链路断裂处即上下文丢失点。 |
| 值班人员每晚收到告警,无人响应 | 告警疲劳:删除每周触发超过一次且无操作手册的告警;基于 SLO 燃烧率重新基线,而非 CPU 使用率。 |
| 调试单个用户的失败请求 | 不要添加新的指标标签。通过 trace_id(每行日志均包含)搜索日志 → 打开链路 → 查看各跨度内容。 |
| 服务日志量约 800GB/天 | 统计每请求次数与错误数;仅记录错误和警告;其余日志在采集器处尾部采样,比例 1%-5%。 |
| 仪表板查询超时 | 移至录制规则(每 30 秒预计算各服务的 p99);仪表板读取新生成的指标。 |
| 需要保留所有错误,采样成功请求 | 尾部采样策略:保持 status != ok 和慢速请求 100% 保留,其余请求采样 1%-10%,在采集器处执行。 |
| 部署后基数突然飙升 | 原始 URL 或 user_id 成为标签。应在采集器处剥离,移至跨度属性。 |
| SLI 显示绿色,但用户投诉 | SLI 设定错误:平均延迟或测量可用性而非用户感知速度。应基于用户实际感知重新推导 SLI。 |
通过 clawhub install <slug> 安装,若用户确认:
metrics - 本技能生成的计数器、度量、直方图类型及 Prometheus 查询grafana - 覆盖指标、跟踪和日志管道的仪表板与查询层alerts - 告警规则、运行手册和疲劳管理,本技能的 SLO 燃烧率方法所针对的目标monitoring - 监控与可观测性的边界以及已知未知的覆盖范围devops - 信号消费所需的运维节奏和轮值文化已收录 27 个 Skill