Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/vikasudasi/skill-vault/observability-logging-structuringnpx skills add vikasudasi/skill-vault --skill observability-logging-structuringgit clone --depth 1 https://github.com/vikasudasi/skill-vaultWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/vikasudasi/skill-vault/observability-logging-structuring)<a href="https://agentmods.dev/skills/vikasudasi/skill-vault/observability-logging-structuring"><img src="https://agentmods.dev/badge/skills/vikasudasi/skill-vault/observability-logging-structuring.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00040 | $0.01163 |
| Opus 5 | $0.00020 | $0.00581 |
| Sonnet 5 | $0.00008 | $0.00233 |
| Haiku 4.5 | $0.00004 | $0.00116 |
Grade A, and why
observability-logging-structuring scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 121 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Structured Logging for Self-Hosted Services
Use when your service's logs are ungreppable print() noise, or when you need to
correlate requests, wrangle levels, and expose a health endpoint. This is how a
service like Skill Vault (uvicorn + structured access logs + /healthz) stays
debuggable in production.
Why structured JSON logs
Random print(f"got {x}") lines can't be filtered, correlated, or queried.
Emit one JSON object per line with stable keys so jq, log shippers, and your
alerting can actually use them:
import json, logging
class JsonFormatter(logging.Formatter):
def format(self, record):
return json.dumps(
{
"ts": self.formatTime(record),
"level": record.levelname,
"logger": record.name,
"msg": record.getMessage(),
}
)
Log levels — use them correctly
| level | use for |
|---|---|
| DEBUG | verbose detail, only on demand |
| INFO | normal lifecycle: request start/end, seed counts, startup |
| WARNING | recoverable problems: slow query, retry, unknown header |
| ERROR | operation failed but service continues |
| CRITICAL | service can't function — process dying |
Set the root level from an env var (LOG_LEVEL) so prod can raise/lower it
without redeploy. Don't log at INFO, then print() debug noise at the same level
— pick the level that matches the event's severity.
Correlation ids
Give every request a single id threaded through its logs so you can replay one user's trip:
request_id = request.state.request_id # set by middleware
logger.info("search", extra={"request_id": request_id})
Put request_id (+ user, route, duration) in every structured line for that
request. Add X-Request-ID to responses so clients can report errors precisely.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 121 lines · 40 tokens per session scan A d3ad36a1d8a3
observability-logging-structuring is a skill published in the GitHub repository vikasudasi/skill-vault (0 stars, last pushed 18d ago), licensed Apache-2.0. It adds 40 tokens to every session and 1,163 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
golang-observability-opentelemetry
Instrumenting Go applications with OpenTelemetry for distributed tracing, Prometheus for metrics, and structured logging with slog.
anyrobot-shadcn-frontend-js
AnyRobot 前端开发核心指南:提供 JavaScript + React + shadcn/ui 开发的精简实用规范和最佳实践。 当用户需要前端开发指导、组件开发或项目结构建议时触发。 本技能提供实际可用于项目开发的核心代码示例和开发指南。.
数据模型文档生成
当用户要生成或更新 Doris 表的数据模型 Markdown(三一级标题:数据摘要、数据表列、JSON扩展字段)、从 Doris 拉取元数据与至少 100 行样本,并由脚本或 --llm 补全说明时启用。.
datamodel-gen
生成三个一级标题内容:基本信息、数据字段、使用示例 1.基本信息包括: 数据名称、原始路径(OpenClaw原始数据来源)、数据内容、数据库、数据表、用途定位、应用场景, 表格形式展示 2.数据字段包括两个子标题:数据表列和JSON扩展字段.
observability
Structured logging (structlog/Python, pino/Node), health endpoints, PM2 and Docker metrics, alerting patterns.
structlog-structured-logging
Modern, powerful structured logging for Python using structlog. Use when adding or improving logging in Python projects, configuring structlog for dev/production, working with contextvars for request-scoped logging, integrating structlog with stdlib logging, or writing tests for logging behavior.