Skip to main content
A monitoring extension contributes observability assets to clawker’s stack — the OpenSearch indices a telemetry stream lands in, the collector routing that sends the right records there, ingest pipelines, and dashboards. Authoring one means writing a manifest that declares your log lanes and metric shaping, plus the OpenSearch and OpenSearch Dashboards artifacts you ship. This page covers the extension directory; see Monitoring Extensions for selecting and consuming them, Monitoring for the stack itself, and Authoring bundles for packaging.

Directory layout

An extension is a directory whose name is the extension’s component name:
Place it in a loose convention directory to use it immediately, or inside a bundle’s monitoring/ directory to distribute it:
The claude-code extension shipped with clawker is the best working reference for the full directory — its index template, ingest pipeline, and dashboard saved objects.

The manifest

monitoring.yaml declares the log lanes the extension owns and any collector-side metric shaping:

logs

The OpenSearch log lanes this extension owns — at least one is required, since an extension exists to land telemetry somewhere. Each lane declares:

metrics

Optional collector-side shaping for the extension’s metrics on the shared metrics pipeline. Omit it entirely when your metrics need no reshaping.
The OpenSearch SQL plugin’s direct-query Prometheus connector errors on any metric series carrying a label literally named type. If your metrics use a type label, rename it (for example from: type, to: kind) so the Dashboards Metrics UI can read it. See Monitoring for the full note.

The OpenSearch and Dashboards artifacts

The directories alongside the manifest are applied idempotently to the running stack each clawker monitor up:
  • index-templates/ — index templates so the extension’s indices get the right field mappings at first ingest.
  • ingest-pipelines/ — ingest pipelines the extension needs.
  • saved-objects/ — OpenSearch Dashboards index patterns, visualizations, and dashboards, imported into the Clawker workspace.
  • ism-policies/ — only when a lane declares retention: custom: the extension’s own retention policy files, scoped to its indices.

How consumption works

A project selects the extension in monitor.extensions. clawker monitor up seeds it when it brings the stack up; on a stack that is already running, clawker monitor reload is the apply — it seeds the selection, re-renders the collector config, and recreates the collector. There is no host-side registry — the active set is a projection of the project you seed from, and the collector routes from the union of every extension ever seeded. See Monitoring Extensions.

Validating

Bundle an extension and validate it before publishing:
Validation loads each extension the same way clawker monitor up does, so a malformed monitoring.yaml fails here instead of at seed time.