Directory layout
An extension is a directory whose name is the extension’s component name:monitoring/ directory to distribute it:
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 eachclawker 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 theClawkerworkspace.ism-policies/— only when a lane declaresretention: custom: the extension’s own retention policy files, scoped to its indices.
How consumption works
A project selects the extension inmonitor.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:clawker monitor up does, so a
malformed monitoring.yaml fails here instead of at seed time.