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/fmind/dot/observabilitynpx skills add fmind/dot --skill observabilitygit clone --depth 1 https://github.com/fmind/dotWrote 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/fmind/dot/observability)<a href="https://agentmods.dev/skills/fmind/dot/observability"><img src="https://agentmods.dev/badge/skills/fmind/dot/observability.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.01196 |
| Opus 5 | $0.00020 | $0.00598 |
| Sonnet 5 | $0.00008 | $0.00239 |
| Haiku 4.5 | $0.00004 | $0.00120 |
Grade A, and why
observability 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 yesterday.
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 — 49 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Observability
One telemetry stack for services and agents: JSON logs on stdout, OpenTelemetry traces and metrics over OTLP, and the trace id stamped on every log line so Cloud Logging, Cloud Trace, and Cloud Monitoring show one request end to end. The stacks ship the logging defaults (go-stack slog, python-stack structlog); this skill owns the wiring across signals and the conventions for LLM and agent spans.
Workflow
- Structured logs: JSON to stdout, one event per line. Go:
slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{ReplaceAttr: gcpKeys})wheregcpKeysrenamesleveltoseverityandmsgtomessage, the keys Cloud Logging parses. Python:structlogwithJSONRendererand the same keys. - Traces and metrics: use the plain OTLP exporters configured only by the standard env vars (
OTEL_EXPORTER_OTLP_ENDPOINT,OTEL_SERVICE_NAME,OTEL_RESOURCE_ATTRIBUTES) so local runs stay silent and no vendor SDK enters the code; wrap HTTP servers and clients withotelhttp(Go) or theopentelemetry-instrumentation-*packages (Python). - Correlate: a
slog.Handlerorstructlogprocessor reads the active span and addslogging.googleapis.com/trace=projects/<project>/traces/<trace_id>andlogging.googleapis.com/spanId; Cloud Logging then links the line to its trace. Keep a plaintrace_idfield too for other backends. - Export on Google Cloud: run the Google-built OpenTelemetry Collector (
otelcol-google) as a Cloud Run sidecar; the app exports tohttp://localhost:4317, the collector authenticates with ADC and forwards traces, metrics, and logs totelemetry.googleapis.com. ADK agents use--otel_to_cloudper google-adk. - LLM and agent spans: follow the GenAI semantic conventions: span
chat <model>withgen_ai.operation.name,gen_ai.provider.name,gen_ai.request.model,gen_ai.usage.input_tokens,gen_ai.usage.output_tokens;invoke_agent <name>withgen_ai.agent.name;execute_tool <name>withgen_ai.tool.name. Never record prompt or completion bodies by default. - Verify: send one request, open its trace in Cloud Trace, then read the correlated lines per gcloud and confirm the metric exists in Cloud Monitoring.
gcloud logging read 'trace="projects/<project>/traces/<trace_id>"' --limit=20
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.
- yesterday First seen · 49 lines · 40 tokens per session scan A 0fc44ca9e753
observability is a skill published in the GitHub repository fmind/dot (4 stars, last pushed today), licensed MIT. It adds 40 tokens to every session and 1,196 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-09-03.
Other skills, from other repositories
cloud-run
Deploy container services to Google Cloud Run with Artifact Registry, keyless CI identity, Secret Manager, ko, or Dockerfiles.
google-cloud-operations
Operate Google Cloud with gcloud: pin account, configuration, project, and billing context for IAM, APIs, logs, and audits outside deployment.
terraform-stack
Canonical infrastructure-as-code stack — OpenTofu-first with tflint, trivy config scans, terraform-docs, native tests, and GCS state. Use for any Terraform or OpenTofu work.
go-stack
Build Go projects, libraries, CLIs, TUIs, web apps, or ADK agents with the standard package layout and pinned tooling.
python-stack
Build typed Python projects with uv, Ruff, ty, pytest, Litestar, and Typer. Use for packages, CLIs, web apps, tests, typing, or API verification.
k8s-local
Create and manage local Kubernetes clusters (k3d or kind) and deploy to them with kubectl, helm, helmfile, and skaffold. Use for local k8s cluster setup, dev loops, and debugging.