Overview
Covers Actuator, liveness/readiness, metrics, trace, logging, monitor, and OpenTelemetry uniformly, not split per artifact. Before use, confirm the maintenance line through ddd4j-boot-version-selection.
When to Use
- Configuring Actuator exposure and separating liveness from readiness probes, with readiness aggregating real dependency checks.
- Wiring metrics (and the ddd4j metrics bridge) so domain and framework counters actually increment.
- Setting up tracing with OpenTelemetry and verifying the collector/exporter truly receives spans — not just that the SDK initializes.
- Deciding log formats and correlation (trace IDs in logs) across a Boot line's logging setup.
- Reviewing exporter lifecycle: exporters must have owners with idempotent close so shutdown does not drop or corrupt telemetry.
- Diagnosing "monitoring is configured but empty": beans present, endpoints responding, yet the backend shows no data.
When NOT to Use
Do not use this skill when:
- Metric names or the metrics SPI contract itself need designing — use
ddd4j-metricsinstead. Install:npx skills add full-stack-skills/ddd4j-skills --skill ddd4j-metrics. - The readiness endpoint's HTTP contract or the web-layer error contract is the question — use
ddd4j-boot-webinstead. Install:npx skills add full-stack-skills/ddd4j-skills --skill ddd4j-boot-web. - Generic auto-configuration mechanics are the question, not telemetry — use
ddd4j-boot-autoconfigurationinstead. Install:npx skills add full-stack-skills/ddd4j-skills --skill ddd4j-boot-autoconfiguration. - The runtime is Quarkus, Javalin, or Spring Cloud — use the matching
ddd4j-quarkus-*,ddd4j-javalin-*, orddd4j-cloud-observabilityskill instead; the Actuator assembly does not transfer. - The project is plain Spring Boot without ddd4j — generic Actuator / Micrometer / OpenTelemetry skills apply.
- Operational incident response on the live monitoring backend — do not auto-expand into production operations; this skill configures and verifies, it does not operate.
Trigger Keywords
English: observability, Actuator, health probes, metrics, tracing, logging, monitoring, OpenTelemetry
Chinese: Observability, Actuator, Health Checks, Metrics, Tracing, Logging, Monitoring, OpenTelemetry
Core Scope
Actuator, liveness/readiness, metrics, trace, logging, monitor, OpenTelemetry.
Core Rules
- Gather evidence from the current target line's POMs, source, and tests.
- Default implementations allow explicit user overrides; an off switch must truly skip assembly.
- Report configuration presence, bean creation, behavior tests, CI, and publishing separately.
- Resources must have an explicit owner, failure rollback, and idempotent close.
- Handle Boot 2/3/4 API, JDK, and Maven differences line by line.
Capability Boundaries
✅ Strong At
- Choosing among observability implementations and Spring Boot assembly.
- Configuration, overrides, lifecycle, and verification.
- Maintenance-line compatibility judgments.
⚠️ Needs Input
- Target Boot line, POM, and configuration.
- Business behavior, dependencies, and deployment mode.
- Current test/CI/runtime evidence.
❌ Out of Scope
- Modifying ddd4j core public semantics.
- Substituting dependency or bean presence for real behavior.
- Unauthorized releases or production operations.
Workflow
Step 1: Confirm the source of truth
Run ddd4j-boot-version-selection to fix the line, then locate the Actuator, monitor, metrics, and OpenTelemetry AutoConfiguration and Properties on that line.
Step 2: Design the observability set
Separate liveness from readiness — liveness must not fail because a dependency is down. Make readiness aggregate the real dependency checks, and plan the metrics, trace, and logging exporters against the actual observability backend.
Step 3: Verify the wiring
Check conditional wiring, default beans, and user bean override points. Confirm the off switch truly skips assembly, and that exporters have explicit owners with rollback on failure and idempotent close.
Step 4: Test the delivery
Execute context tests plus behavior tests: probe responses under dependency failure, metric increments on real operations, and export delivery verified at the collector/backend — not just at the SDK boundary.
Step 5: Report with separated evidence
Report the chosen exporters and endpoints with configuration keys, the AutoConfiguration entry and override points, test results, and evidence state — configuration presence, bean creation, behavior, CI, and publish reported separately — plus risks and missing inputs.
Gotchas
- An OTel SDK that initializes without errors proves nothing about delivery — spans can vanish at the exporter/collector boundary while the app logs nothing; verify at the backend.
- Liveness and readiness are different contracts: folding dependency checks into liveness makes a database hiccup restart every pod.
- Metrics endpoints responding 200 does not mean the counters are correct — increments must be tested against real operations, not endpoint availability.
- A user-declared metrics registry or exporter bean silently replaces the assembled default, and the boot module keeps exporting to a registry nobody reads.
- Actuator endpoint exposure and availability are separate settings on Boot 2/3/4 lines; an exposed-but-disabled endpoint (or vice versa) answers 404 while the config "looks enabled".
- Batched or buffered exporters that never close drop the last telemetry window at shutdown — the loss appears exactly during deploys and crashes.
- Printing Actuator or OTel configuration can leak endpoints, keys, and sampled payloads — sensitive values must be redacted.
Output and Exceptions
When information is missing, output "missing: target line/implementation/configuration; how to provide: supply the POM and acceptance behavior", and continue safe read-only checks.
Deep Reference
Privacy and Security
Never output credentials, tokens, production connection strings, or sensitive business data. This skill does not access, collect, store, or transmit any user data, credentials, or keys; metric and log examples have been desensitized.
Quick Start
- "Use
$ddd4j-boot-observabilityto analyze the implementation and configuration my current project should adopt." - "Use
$ddd4j-boot-observabilityto review existing usage against the current source." - "Use
$ddd4j-boot-observabilityto return an implementation choice, evidence state, and remaining risk."
Audience and Customization
- Developers: provide the target maintenance line, POM, capabilities, and acceptance behavior.
- Architects: specify a read-only boundary review, compatibility, or migration target.
- Testers / release engineers: specify the required evidence levels; do not auto-expand to release or production operations.
Customize the target framework, allowed implementations, excluded modules, compatibility requirements, and output evidence level. When input is insufficient, give a tentative verdict first, then list "missing: specific item; how to provide: required path or configuration".
FAQ
- Are skills organized by Maven artifact? No — by the user-facing capability domain.
- Can I copy another maintenance line directly? No — verify the version and source first.
- Does a class existing in source prove the capability works? No — registration and behavior evidence are also required.
- How do I report tests that did not run? Mark
NOT RUNorBLOCKED. - Can the skill commit or release automatically? Only after explicit user authorization.
- What if the implementation is missing? Describe the missing module or evidence; do not invent APIs.