Skip to content
Back to skills

Splunk Observability Dashboard Builder

ASecurity

"Use when creating, planning, rendering, validating, or applying Splunk Observability Cloud dashboards

  • 39 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 9, 2026
devopspythonshellbashkubernetesapidatabase

Works with

  • cli
  • api

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 12 files and shows the line behind each finding

Scanned September 9, 2026

npx -y skills add chambear2809/splunk-cisco-skills --skill splunk-observability-dashboard-builder --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Splunk Observability Dashboard Builder?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Splunk Observability Dashboard Builder
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/chambear2809-splunk-observability-dashboard-builder/badge)](https://www.skillsdirectory.com/skills/chambear2809-splunk-observability-dashboard-builder)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: splunk-observability-dashboard-builder
description: "Use when creating, planning, rendering, validating, or applying Splunk Observability Cloud dashboards
  from natural-language dashboard requests, JSON or YAML dashboard specs, SignalFlow chart definitions, or
  Observability dashboard-as-code workflows. Supports native classic Observability dashboard/chart APIs
  with render-first safety; treats modern dashboard sections, logs charts, service maps, and Dashboard
  Studio as advisory/secondary paths unless a verified API is available."
compatibility: "No direct Splunk Platform runtime dependency. This workflow can be used alongside Splunk Cloud Platform 10.5.2605 through its documented external APIs or handoffs."
metadata:
  splunk_cloud_10_5: "not-applicable"
  compatibility_verified: "2026-08-20"
---

# Splunk Observability Dashboard Builder

## Prerequisites

| Tool or access | Purpose | Verify |
|---|---|---|
| Bash and Python 3 | Run bundled setup and validation helpers | `bash --version && python3 --version` |
| Required product/platform access | Inspect or configure the selected target | Complete the documented preflight |
| Credential files for live modes | Keep secrets out of chat | Verify paths only |

## Workflow Overview

```text
┌───────────┐   ┌───────────────┐   ┌───────────────┐   ┌─────────────────┐
│ Preflight │ → │ Render/review │ → │ Apply/handoff │ → │ Validate evidence │
└───────────┘   └───────────────┘   └───────────────┘   └─────────────────┘
```

## When to Activate

- Creating, planning, rendering, validating, or applying Splunk Observability Cloud dashboards from natural-language
  dashboard requests, JSON or YAML dashboard specs, SignalFlow chart definitions, or Observability dashboard-as-
  code.
- Preview and review the splunk observability dashboard builder workflow before any live apply phase.
- Diagnose failed prerequisites, generated assets, configuration, or validation evidence.

## Scope

Follow the documented read-only or render-first path whenever it is available.
This skill does not imply permission to mutate live systems. Require explicit
apply flags, protected credentials, and operator review for state changes.

## Examples

Inspect the supported setup modes before selecting one:

```bash
bash skills/splunk-observability-dashboard-builder/scripts/setup.sh --help
```

Expected output: usage, supported modes, and required arguments are displayed
without changing the target environment.

Inspect validation modes before running completion checks:

```bash
bash skills/splunk-observability-dashboard-builder/scripts/validate.sh --help
```

Expected output: offline, live, and completion options are displayed when the
skill supports them; help exits without mutation.

## Troubleshooting

| Issue | Cause | Resolution |
|---|---|---|
| Preflight fails | A required tool or access path is missing | Resolve it before rendering or applying |
| Rendered assets are incomplete | Required non-secret inputs are absent | Complete intake and render again |
| Apply is blocked | Review, credentials, or explicit acceptance is missing | Use the documented handoff |
| Validation is incomplete | Live evidence is unavailable | Record the gap and keep completion open |

## Overview

Use this skill to turn a user's natural-language dashboard idea into a reviewed Splunk Observability Cloud dashboard specification, rendered API payloads, and optionally an applied native Observability dashboard.

The default path is **classic-api**: create custom dashboard groups, charts, and dashboards through the documented `/v2/dashboardgroup`, `/v2/chart`, and `/v2/dashboard` APIs. Modern dashboard features are documented as UI/advisory unless a public API is verified before use.

## Safety Rules

- Never ask for Splunk Observability API tokens, org access tokens, session tokens, passwords, or client secrets in conversation.
- Never pass tokens on the command line or as environment-variable prefixes.
- Require `--token-file` for live API operations.
- Reject direct token flags such as `--token`, `--access-token`, `--api-token`, `--o11y-token`, and `--sf-token`.
- Prefer `SPLUNK_O11Y_REALM` and `SPLUNK_O11Y_TOKEN_FILE` from the repo `credentials` file when present; these store only the realm and token-file path, not the token value.
- Render and validate before apply. Apply only when the user explicitly requests it.
- Create new custom dashboards by default. Use `--update-existing` only when the user explicitly asks and the spec includes existing dashboard/chart IDs.

## Primary Workflow

1. Interpret the request:
   - Identify audience, decision workflow, services or infrastructure scope, time range, dashboard group, filters, and desired visuals.
   - Ask only for missing non-secret values: realm, dashboard group name or ID, service/environment/cluster names, preferred dimensions, and target time range.
   - For vague requests, produce a starter dashboard and mark assumptions in the spec comments or final explanation.

2. Ground the dashboard in live metadata when possible:
   - Use `scripts/setup.sh --discover-metrics --realm <realm> --token-file <file> --query <term>` to discover metric names. Omit realm/token flags when `SPLUNK_O11Y_REALM` and `SPLUNK_O11Y_TOKEN_FILE` are configured in `credentials`. Simple bare terms such as `latency` are converted to `sf_metric:*latency*`.
   - Use metric and dimension names returned by the API instead of inventing names.
   - If live metadata is unavailable, render a reviewable draft and clearly mark metric names as assumptions.

3. Write or update a JSON or YAML spec:
   - Start from `templates/dashboard.example.json` for a dependency-free example, or `templates/dashboard.example.yaml` when PyYAML is installed.
   - Keep `mode: classic-api` for renderable native Observability dashboards.
   - Use `mode: modern-ui-advisory` or `mode: dashboard-studio-advisory` only to document UI/manual work.

4. Validate and render:

   ```bash
   bash skills/splunk-observability-dashboard-builder/scripts/setup.sh \
     --render \
     --spec skills/splunk-observability-dashboard-builder/templates/dashboard.example.json \
     --output-dir splunk-observability-dashboard-rendered
   ```

5. Review the rendered plan:
   - `metadata.json` summarizes coverage, assumptions, and warnings.
   - `charts/*.json` contains chart API payloads.
   - `dashboard.json` contains the dashboard API payload with chart placeholders.
   - `apply-plan.json` records the creation sequence without secrets.

6. Apply only when explicitly requested:

   ```bash
   bash skills/splunk-observability-dashboard-builder/scripts/setup.sh \
     --apply \
     --spec my-dashboard.json \
     --realm us0 \
     --token-file /tmp/splunk_o11y_api_token
   ```

   > By default, `--apply` creates new dashboard groups, charts, and
   > dashboards. Use `--update-existing` only with explicit existing object
   > IDs in the spec; the apply client fetches the current objects before PUT
   > so omitted writable fields are preserved where the API returns them.
   >
   > `--dry-run` is non-destructive and skips both the API calls and the
   > readable-token-file requirement, so CI preview-only jobs do not need
   > a real token path on disk. Live `--apply` retries 429/502/503/504
   > automatically with exponential backoff (cap: 4 attempts; honors
   > `Retry-After` when present).

7. Clean up validation smoke dashboards when needed:

   ```bash
   bash skills/splunk-observability-dashboard-builder/scripts/setup.sh \
     --cleanup \
     --apply-result splunk-observability-dashboard-rendered/apply-result.json
   ```

   Cleanup is intentionally guarded to rendered plans whose dashboard group and
   dashboard names start with `codex_live_validation`. Use the Observability UI
   or API directly for non-validation dashboards.

## Coverage Rules

- **Fully renderable through classic-api**: custom dashboard groups, custom dashboards, TimeSeriesChart, SingleValue, List, TableChart, Heatmap, Text charts, event overlays, dashboard filters/variables, chart time ranges, units, legends, thresholds, and detector links represented by chart properties.
- **Documented but not currently API-rendered by this skill**: pie/donut charts and event feed charts. Current product docs list them, but this renderer needs a verified classic `/v2/chart` schema before applying them. Use `modern-ui-advisory` or Text/link notes for now.
- **Metric-derived coverage**: Infrastructure Monitoring, Kubernetes/cloud infrastructure, Database Monitoring, APM service RED metrics, RUM Browser/Mobile metrics, Synthetic Monitoring metrics, Log Observer Connect metrics/log links, custom business metrics, AI Infrastructure Monitoring, and AI Agent/APM metrics when the required metrics are present.
- **Advisory/link-only coverage**: trace waterfalls, RUM sessions and session replay, synthetic waterfall detail, database explain plans, alerts/detector management, On-Call workflows, Observability Cloud for Mobile app workflows, product-native navigators, modern dashboard sections/subsections, service maps, and modern logs charts. Do not claim API rendering for these without verifying a public API first.
- **Dashboard Studio**: keep as a secondary path. It has Splunk platform version, realm, capability, trial, Unified Identity, and import limitations. Do not mix it into the native Observability apply path.

Read `references/coverage.md` for the full product coverage matrix and `references/classic-api.md` for API field guidance.

YAML specs require PyYAML in the Python interpreter used by `scripts/setup.sh`. Install repo dependencies with `python3 -m pip install -r requirements-agent.txt`, or use JSON specs.

## Spec Guidance

- Prefer one dashboard per operational question. Put broad estate overviews and incident drilldowns in separate dashboards.
- Use dashboard variables for common drilldowns such as `sf_environment`, `service.name`, `k8s.cluster.name`, `k8s.namespace.name`, `host.name`, `cloud.region`, and `deployment.environment`.
- Choose chart types intentionally:
  - TimeSeriesChart for trends, rates, latency, throughput, saturation.
  - SingleValue for current health, active alerts, SLO/error-budget snapshots, latest values.
  - List or TableChart for top-N entities and inventory/status summaries.
  - Heatmap for distributions and dense population comparisons.
  - Text for operator notes, runbook links, and assumptions.
- Use `modern-ui-advisory` for pie/donut, event feed, logs, service map, section/tab, or other modern-only visualizations until the public API schema is verified.
- Every non-text chart must include SignalFlow with at least one `publish()` output.
- Keep layouts within a 12-column grid. The validator rejects collisions and out-of-range chart positions.

## Update Existing Objects

For existing charts or dashboards, use `--update-existing` with fetch-modify-PUT semantics:

1. Add `dashboard.id` and each chart's `chart_id` to the spec.
2. Render and review the plan.
3. Apply with `--apply --update-existing`.

Do not create partial PUT payloads. The Observability chart API can null or remove writable properties omitted from updates.

## Scripts

- `scripts/setup.sh` - shell entrypoint for render, validate, discover, apply, and guarded cleanup.
- `scripts/render_dashboard.py` - validates specs and renders classic API payloads.
- `scripts/validate_dashboard.py` - static validation for specs or rendered payloads.
- `scripts/o11y_dashboard_api.py` - live API client using token files only.

## Useful Commands

Validate a draft spec:

```bash
bash skills/splunk-observability-dashboard-builder/scripts/setup.sh \
  --validate \
  --spec skills/splunk-observability-dashboard-builder/templates/dashboard.example.json
```

Render without applying:

```bash
bash skills/splunk-observability-dashboard-builder/scripts/setup.sh \
  --render \
  --spec skills/splunk-observability-dashboard-builder/templates/dashboard.example.json \
  --output-dir splunk-observability-dashboard-rendered
```

Discover metrics before writing SignalFlow:

   ```bash
   bash skills/splunk-observability-dashboard-builder/scripts/setup.sh \
     --discover-metrics \
     --query latency
   ```

Files in this skill

  • SKILL.md12.2 KB
  • agents/openai.yaml324 B
  • reference.md342 B
  • references/classic-api.md3.6 KB
  • references/coverage.md5.7 KB
  • scripts/o11y_dashboard_api.py20.5 KB
  • scripts/render_dashboard.py23.6 KB
  • scripts/setup.sh7.6 KB
  • scripts/validate.sh1.4 KB
  • scripts/validate_dashboard.py2.9 KB
  • templates/dashboard.example.json2.8 KB
  • templates/dashboard.example.yaml2.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…