observability-and-instrumentation

Implements user-visible error notices and debuggable console logging for Obsidian plugin failures.

10|1|Updated Jul 29, 2026
One-click install
npx skills add https://github.com/flowing-abyss/obsidian-local-fonts --skill observability-and-instrumentation-flowing-abyss
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: observability-and-instrumentation
Source: https://github.com/flowing-abyss/obsidian-local-fonts/tree/main/.ai/skills/observability-and-instrumentation
Command: npx skills add https://github.com/flowing-abyss/obsidian-local-fonts --skill observability-and-instrumentation-flowing-abyss

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Obsidian plugins run on users' machines with no telemetry backend, so failures often go silent — users see nothing and bug reports contain no diagnostic detail. This Skill ensures every failure is visible to the user and reproducible from a bug report, without adding analytics or network calls. ## Core Features & Use Cases - User-visible failure notices: Wraps every vault, filesystem, or network operation in a catch that surfaces an Obsidian Notice() naming what was attempted and what failed, instead of silent catch {} blocks. - Diagnostic console logging: Uses console.error/console.warn prefixed with the plugin id for stack traces and failing objects, so DevTools screenshots in bug reports are actionable. - Gated debug logging: Adds a settings toggle for verbose tracing that maintainers can ask users to enable when reproducing issues. - Use Case: When a user reports "fonts don't load" with no detail, the plugin already shows a Notice naming the folder and error, and the console contains the plugin-prefixed stack trace needed to reproduce it. ## Quick Start Review my Obsidian plugin's error handling and add Notice-based failure messages and plugin-prefixed console logging to every vault or network operation that can fail.

Frequently Asked Questions about observability-and-instrumentation

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I handle errors in an Obsidian plugin?

Wrap every vault, filesystem, or network operation in a try/catch that shows an Obsidian Notice naming what was attempted and what failed. Log the full stack trace with console.error prefixed by your plugin id so bug reports contain reproducible detail.

How to debug an Obsidian plugin that silently stops working?

Silent failures usually come from empty catch blocks or promises without .catch handlers. Add a Notice for user-triggered failures, log details via console.error, and gate verbose tracing behind a debug logging setting users can enable when reproducing issues.

Can Obsidian plugins use telemetry or crash reporting services?

Obsidian plugin guidelines and this template's privacy stance prohibit undisclosed network calls, so analytics SDKs and crash reporters require explicit disclosure. The recommended approach is on-device diagnostics: Notices for users and console logs for bug reports.

What console methods are allowed in Obsidian plugins?

Obsidian's guidelines permit only console.warn, console.error, and console.debug, enforced by eslint-plugin-obsidianmd's no-console override. Prefix messages with your plugin id so they are greppable among output from other installed plugins.

When should I not use OpenTelemetry or Prometheus for a plugin?

Distributed tracing, metrics backends, and alerting assume a server collecting data from many instances, which a client-side plugin lacks. For Obsidian plugins, use local Notices and console logging instead of reaching for backend observability tooling.