signalfx/obstudio/docs
Claude Code and agent skill by signalfx/obstudio
- community
Checking that the SKILL.md file is still in the repository.
Install
npx vskill@latest install signalfx/obstudio/docsSKILL.md
Splunk Observability Studio Skills -- Product Requirements Document
Author: Tigran Najaryan, with AI skill specifications by Platform Engineering Status: Draft Version: 0.2
1. Executive Summary
Splunk Observability Studio is a developer tool that helps instrument (make observable) applications and services, verify the telemetry emitted by instrumentation, and iterate and improve instrumentation quickly.
The Studio is a free, open-source product, marketed through our OpenTelemetry channels. It is a no-strings-attached tool that can be used by developers using any Observability backend. On top of that, developers get additional capabilities when they use it with a supported observability backend.
Components
| Component | Purpose | Delivery | |
|---|---|---|---|
| Instrumenter | Agent skills to add OpenTelemetry instrumentation to any codebase | Markdown files consumed by AI agents | |
| Telemetry Explorer | Receive, store, and visualize OTLP telemetry in real time | Web UI on localhost:17900 | |
| Validator | Check telemetry conformance to OTel standards via OTel Weaver | CLI mode and visual overlay in Explorer | |
| Terraformer | Generate observability terraform (dashboards, detectors) | Agent skills | |
| IDE Extension | Package all components as a VS Code extension | VS Code Marketplace |
Business Goals
- Brand image: Improve the project's reputation as a developer-friendly,
open-source-supporting company and increase brand awareness in the developer community.
- Customer acquisition: Create a new funnel via optional Terraformer
functionality that leads users to O11y Cloud.
Brand image considerations always take precedence. The Studio must never feel like an ad platform.
Success KPIs
| KPI | Target | Timeline | |
|---|---|---|---|
| Internal: O11y Cloud services instrumented with high-quality custom telemetry | 50% of services | June 2026 | |
| Public: VS Code extension installs | 1,000 installations | June 2026 | |
| First-run telemetry emission rate | >= 90% | Ongoing | |
| Semantic convention compliance | >= 95% | Ongoing | |
| Eval pass rate (CI) | >= 85% | Ongoing | |
| Time-to-instrumented | < 2 min | Ongoing |
2. Architecture
Splunk Observability Studio follows a layered architecture where each layer is independently useful. See docs/architecture-proposal.md for the full design.
Skills + Splunk Observability Studio Composition
Skills tell the agent what to do. Splunk Observability Studio tells the agent what happened. Together they form a closed loop:
- Agent reads skill -- instruments the code
- Developer runs the app
- App sends OTLP to Splunk Observability Studio (
localhost:4318) - Agent calls MCP tools -- inspects telemetry
- Agent fixes issues -- go to step 2
Skill Folder Structure
Token-conscious design: the agent loads SKILL.md (~180 lines) plus only the one language file matching the detected codebase (~200 lines). Reference files are loaded only when the specific workflow step executes them.
MCP Tools (Splunk Observability Studio)
| MCP Tool | Purpose | |
|---|---|---|
observer_metrics_overview | List metrics with filters | |
observer_metric_detail | Fetch one metric with full datapoint history | |
observer_traces_overview | List recent traces with span previews | |
observer_trace_detail | Fetch one trace with all spans, events, links |
Endpoint: http://localhost:17900/mcp (Streamable HTTP, standard MCP).
3. Target Personas
Persona A: Application Developer
- Goal: Add observability without becoming an OTel expert.
- Typical prompt: "Add tracing to this Flask app", "Instrument my Express
API with OpenTelemetry".
- Success criteria: "It works on first run, I didn't have to read any docs."
Persona B: Platform Engineer
- Goal: Standardize instrumentation across 20+ services. Enforce semantic
conventions and metric naming.
- Typical prompt: "Instrument this service following our platform standards".
- Skill interaction: Configures via
.observability.mdto define expected
KPIs. Reviews output for compliance.
- Success criteria: "Every service produces the same signal names."
Persona C: SRE / On-Call Engineer
- Goal: Quickly add targeted instrumentation to diagnose a production issue.
- Typical prompt: "Add a span around the database retry logic".
- Success criteria: "I got the exact signal I needed in < 5 minutes."
4. Unified /otel-observe Skill
The Instrumenter is delivered as a single unified skill (skills/otel-observe/) that combines observability audit and OpenTelemetry implementation into one flow. The agent can run the full audit or skip directly to instrumentation.
4.1 Workflow
| Step | Action | Files Loaded | |
|---|---|---|---|
| 1 - Discovery | Detect language, framework, existing OTel, entry points | languages/<detected>.md | |
| 2 - Component Mapping | Identify external deps and internal layers | (none) | |
| 3 - Fault Domain Analysis | Assess failure modes per component | skills/references/fault-domain-patterns.md | |
| 4 - SLI Identification | Four golden signals + business SLIs | (none) | |
| 5 - Signal Mapping | Build SLI definitions and signal tables (Spans/Metrics/Logs) | skills/references/signal-mapping-guide.md | |
| 6 - Generate .observability.md | Write audit document | skills/references/observability-template.md | |
| 7 - Implement | Install OOB libraries, generate custom spans/metrics | (language file already loaded) | |
| 8 - Verify | Run app, check telemetry via Splunk Observability Studio MCP | (none) | |
| 9 - Alerts | Add alert definitions to .observability.md | (none) |
4.2 OOB vs Custom Decision Framework
- OOB: use when a stable auto-instrumentation library exists (see
language files for per-language library maps)
- Custom: use when no OOB library exists, OOB coverage is too coarse,
business metrics are needed, or the signal is Category: Custom
4.3 Semantic Convention Enforcement
Span naming: {component}.{operation}, low-cardinality, stable semconv attribute keys.
Attribute naming: registered semconv attributes first; custom attributes follow {domain}.{noun}.{adjective} pattern; no high-cardinality values.
Metric naming: {namespace}.{noun}.{unit}; histograms for latency, counters for throughput, gauges for current state.
Error handling: set span status to ERROR, call recordException(), include error.type attribute on error metrics.
4.4 Trigger Rules
| Confidence | Trigger | Action | |
|---|---|---|---|
| High | User says "instrument", "add opentelemetry", "/observe" | Auto-activate | |
| Medium | Framework detected without OTel deps | Suggest activation | |
| Medium | .observability.md present with gaps | Suggest activation | |
| Low | New file created, dep update, OTel error | Do not activate |
5. Non-Functional Requirements
5.1 Determinism
Structural elements must be identical across runs:
- SDK initialization location and pattern
- Auto-instrumentation library selection
- Semantic convention attribute keys
- OTLP exporter configuration
Stylistic variance is acceptable:
- Variable naming, import ordering
- Exact span placement within functions
- Async pattern choice
5.2 Evaluation Framework
Skills are non-deterministic. Testing uses probabilistic evals with fuzzy verification against golden results.
Eval types:
| Type | What It Tests | Pass Criteria | |
|---|---|---|---|
| Structural | Single SDK init, correct OOB libraries | Exact match | |
| Semantic convention | Span/metric/attribute names follow semconv | Exact match | |
| Golden comparison | Full output vs reference | >= 80% structural similarity | |
| Telemetry emission | Run app, verify OTLP received by Splunk Observability Studio | Expected signals present | |
| Idempotency | Run skill twice | Second run makes no/minimal changes | |
| Cross-run consistency | Run skill N times | >= 85% of runs pass structural checks |
Eval fixtures: example codebases in supported languages representing common archetypes (Web Service, Data Store, Batch Processor, Queue Consumer).
Eval tooling: deepeval with LLM-as-judge (GEval) rubrics for golden comparison, custom pytest assertions for structural and semconv checks, integration tests for telemetry emission using Splunk Observability Studio MCP tools.
5.3 Versioning
- Language files specify minimum OTel SDK versions.
- Library maps are updated when OTel releases new major versions.
- Generated code uses latest stable versions, never pinned.
6. Telemetry (Self-Observing)
Agent-Side Metrics
| Metric | Type | Description | |
|---|---|---|---|
skill.invocation.count | Counter | Skill activations | |
skill.invocation.duration_ms | Histogram | Wall-clock time | |
skill.language.detected | Attribute | Detected language/framework | |
skill.instrumentation.oob_count | Counter | OOB libraries installed | |
skill.instrumentation.custom_span_count | Counter | Custom spans generated | |
skill.instrumentation.custom_metric_count | Counter | Custom metrics generated |
Splunk Observability Studio-Side Validation
| Metric | Type | Description | |
|---|---|---|---|
skill.validation.pass_rate | Gauge | % of signals passing semconv checks | |
skill.validation.missing_signals | Counter | Expected signals not received | |
skill.first_run.success | Boolean | Valid OTLP on first run |
Aggregate Product Metrics
| Metric | Source | |
|---|---|---|
| Skill activation rate (weekly) | Agent telemetry | |
| First-run success rate | Splunk Observability Studio validation | |
| Acceptance rate (PRs merged without revert) | Git analytics | |
| Eval pass rate | CI pipeline | |
| Coverage delta (KPI % increase) | .observability.md diff | |
| Time-to-first-trace | Splunk Observability Studio timestamps |
7. Delivery
Distribution Channels
| Channel | Install | Register | |
|---|---|---|---|
| Native CLI | brew install obstudio | obstudio register --agent cursor | |
| VS Code Extension | Marketplace | Automatic on activation | |
| Manual | go install / binary download | Edit MCP config by hand |
All channels result in the same product: same Splunk Observability Studio, same MCP tools, same skills.
obstudio register
Writes MCP config and copies skills to the agent's expected location:
| Agent | MCP Config | Skills Location | |
|---|---|---|---|
| Cursor | ~/.cursor/mcp.json | ~/.cursor/skills/obstudio/ | |
| Claude Code | ~/.claude/settings.json | .claude/skills/obstudio/ | |
| Codex | ~/.codex/config.json | ~/.codex/skills/obstudio/ |
8. Development Practices
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingdocs/observe-skill.md
Popularity
- Repository stars
- 12
- Repository forks
- 8
- 7-day trend score
- 13
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 18 Aug 2026, 2 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/signalfx/obstudio/docs)