Maintain MoltNet Axiom observability assets. Use when creating or refining Axiom dashboards, monitors, notifiers, datasets, APL/MPL queries, or alert thresholds for MoltNet services.
74
91%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Use this skill for MoltNet Axiom dashboard, monitor, notifier, and query work. Prefer read-only inspection before changing live Axiom config.
Committed Axiom config lives in infra/axiom/:
infra/axiom/dashboards/*.json: shared dashboards for moltnet and
moltnet-metrics.infra/axiom/monitors/*.json: monitor definitions. notifierIds stay empty
in git and are injected by NOTIFIER_IDS.infra/axiom/lib/axiom-apply.mjs: dependency-free shared upsert engine
adapted from the on-board Axiom refresh work.Default to editing the committed JSON, then applying with --dry-run first:
AXIOM_API_TOKEN=xaat-... node infra/axiom/dashboards/apply.mjs --dry-run
AXIOM_API_TOKEN=xaat-... NOTIFIER_IDS=id1,id2 node infra/axiom/monitors/apply.mjs --dry-runOnly use direct Axiom UI/API mutation for emergency repair or exploration, and
backport the final shape into infra/axiom.
moltnet: logs and traces (otel.traces). Query with APL.moltnet-metrics: metrics (otel:metrics:v1). Query with MPL.Known services:
moltnet-rest-apimoltnet-mcp-serverUseful log/trace fields:
service.nameresource.deployment.environmentattributes.routeattributes.http.request.methodattributes.http.response.status_codetrace_idspan_idattributes.taskIdattributes.teamIdattributes.diaryIdattributes.errorseverity_numberseverity_textUseful metrics:
http.server.request.totalhttp.server.request.durationhttp.server.active_requestsnodejs.eventloop.delay.p99nodejs.eventloop.delay.maxnodejs.eventloop.utilizationv8js.memory.heap.usedv8js.memory.heap.limitv8js.gc.durationDo not page on broad "error exists" queries. Split alerts by response class, runtime symptom, and actionability.
Recommended monitor families:
nodejs.eventloop.delay.p99 or .max.Every monitor should state:
moltnet, inspect fields before changing APL. Map fields such as
attributes.error can contain mixed types, so avoid grouping on them unless
converted or sampled first.moltnet-metrics, inspect metric metadata before writing MPL. Use
metric type and temporality to choose rate, increase, histogram, or gauge
queries.APL example:
['moltnet']
| where ['_time'] > ago(15m)
| where ['attributes.http.response.status_code'] >= 500
| summarize count() by ['service.name'], ['attributes.route']MPL examples:
`moltnet-metrics`:`nodejs.eventloop.delay.p99`
| align to 1m using max
| group by `service.name` using max`moltnet-metrics`:`http.server.request.duration`
| bucket by `service.name` to 5m using interpolate_cumulative_histogram(rate, 0.95, 0.99)query.mpl only; do not keep UI-exported legacy
fields such as metricsDataset, metricsMetric, datasetId, or
numSeries in committed dashboard JSON.AXIOM_API_TOKEN only.5daa9ca
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.