monitoring-checks

Validates changes to the OpenTelemetry, Prometheus, and OpenSearch monitoring stack.

54|6|Updated Jan 7, 2026
One-click install
npx skills add https://github.com/schmitthub/clawker --skill monitoring-checks-schmitthub
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: monitoring-checks
Source: https://github.com/schmitthub/clawker/tree/main/.agents/skills/monitoring-checks
Command: npx skills add https://github.com/schmitthub/clawker --skill monitoring-checks-schmitthub

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Engineers modifying the clawker monitoring stack risk breaking dashboards, metric labels, and log indices because the OpenTelemetry collector, Prometheus exporter, and OpenSearch ingest pipelines have non-obvious contracts (such as the type to kind label rewrite) that are easy to violate unknowingly. ## Core Features & Use Cases - Schema Reference: Complete field tables for Claude Code OTLP events (tool_result, api_request, api_error, user_prompt) and eBPF egress events, including OpenSearch index mappings and resource attribute paths. - Label Rewrite Documentation: Explains the Prometheus type to kind label rename workaround for the OpenSearch SQL direct-query bug, with removal criteria when the pinned image is bumped. - Verification Workflow: A four-step procedure for validating template, datasource, workspace, and saved-object changes, including the mandatory monitor down --volumes rebuild cycle. - Use Case: After editing otel-config.yaml.tmpl, follow the workflow to rebuild the binary, re-bootstrap the stack with volumes wiped, and confirm saved objects land in the Clawker workspace at localhost:5601. ## Quick Start Use the monitoring-checks skill to verify my changes to the OpenSearch dashboard saved objects and confirm the Prometheus metric labels still resolve correctly.

Frequently Asked Questions about monitoring-checks

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

FAQPage Schema
How do I verify changes to OpenSearch dashboards and index templates?▼

Validate JSON syntax, run make test, then rebuild with make clawker and run clawker monitor init --force followed by monitor down --volumes and monitor up. The --volumes flag is required because templates, ISM policies, and saved objects are bound to the OpenSearch volume at bootstrap time.

Why do Prometheus metrics use kind instead of the type label?▼

The OTel collector's transform/metrics processor renames the type attribute to kind to work around an OpenSearch SQL direct-query bug. A substring check for "type" in the response JSON causes Jackson deserialization to fail, breaking the OSD Explore Metrics UI.

How do I query Claude Code events in OpenSearch?▼

Query the claude-code index using flat resource paths like resource.service.name and event fields under attributes.* such as attributes.event.name and attributes.tool_name. Only resource.service.name is mirrored to resource.attributes.service.name by the envelope-normalize pipeline.

What log indices does the clawker monitoring stack create?▼

Six indices exist: claude-code, clawker-cli, clawkercp, clawker-envoy, clawker-coredns, and clawker-ebpf-egress. Cross-index queries use a comma-separated pattern of all six names, and traces live in the SS4O traces dataset under the clawker namespace.

Why are dst_ip and dst_port missing from some eBPF egress events?▼

The netlogger omits dst_ip when the event address is invalid and dst_port when the event has no destination, such as sock_create events. Filter for these cases using _exists_:attributes.dst_ip or NOT _exists_ queries in OpenSearch Dashboards.