From java-instrumentation
Use this skill whenever the user wants to instrument a Spring Boot application with Datadog APM on Kubernetes. Triggers on mentions of Java APM, Spring Boot tracing, dd-java-agent, Datadog Java tracer, JVM runtime metrics, or Java application monitoring. Also applies when the user asks about manual init container injection for the Datadog tracer, or wants to monitor a Spring Boot REST API with Datadog.
How this skill is triggered — by the user, by Claude, or both
Slash command
/java-instrumentation:springboot-dd-tracerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Instrument a Spring Boot 3.5.9 REST API with Datadog APM on Kubernetes using manual init container injection for the Datadog Java tracer (`dd-java-agent.jar`).
README.mdassets/proof1.pngassets/proof10.pngassets/proof11.pngassets/proof12.pngassets/proof13.pngassets/proof14.pngassets/proof15.pngassets/proof16.pngassets/proof17.pngassets/proof2.pngassets/proof3.pngassets/proof4.pngassets/proof5.pngassets/proof6.pngassets/proof7.pngassets/proof8.pngassets/proof9.pngreferences/Dockerfilereferences/k8s/deployment.yamlInstrument a Spring Boot 3.5.9 REST API with Datadog APM on Kubernetes using manual init container injection for the Datadog Java tracer (dd-java-agent.jar).
setup-springboot has been completed successfully (app built and deployed to Kubernetes)kubectl configured to access the clusterThe k8s/deployment.yaml already includes the Datadog tracer setup:
dd-java-agent.jar from gcr.io/datadoghq/dd-lib-java-init:latestJAVA_TOOL_OPTIONS=-javaagent:/datadog-lib/dd-java-agent.jar plus DD_SERVICE, DD_ENV, DD_AGENT_HOST, DD_PROFILING_ENABLED, DD_LOGS_INJECTION, DD_TRACE_SAMPLE_RATE, DD_RUNTIME_METRICS_ENABLEDemptyDir) mounts in both init and app containersThis approach is preferred over the Datadog admission controller webhook, which excludes its own namespace from auto-injection.
kubectl port-forward svc/springboot3dot5dot9-sandbox 8080:80 &
for i in $(seq 1 60); do
curl -s http://localhost:8080/api/data > /dev/null
curl -s -X POST http://localhost:8080/api/submit -H "Content-Type: application/json" -d "{\"key\":\"test\",\"iteration\":$i}" > /dev/null
curl -s -X PUT http://localhost:8080/api/update > /dev/null
sleep 2
done
# Verify init container exists
kubectl get pods -l app=springboot3dot5dot9-sandbox \
-o jsonpath='{.items[0].spec.initContainers[*].name}'
# Expected: datadog-lib-java-init
# Check tracer initialization
kubectl logs -l app=springboot3dot5dot9-sandbox --tail=30 | grep "DATADOG TRACER CONFIGURATION"
# Verify traces received by agent
kubectl exec $(kubectl get pods -l app.kubernetes.io/component=agent -o name | head -1) \
-c agent -- agent status 2>/dev/null | grep -A 10 "Receiver (previous minute)"
In the Datadog UI:
springboot3dot5dot9-sandbox with env:sandboxservice:springboot3dot5dot9-sandboxCause: The DD_AGENT_HOST points to a service that doesn't exist, or the Datadog Agent DaemonSet is not running.
Fix: Verify the agent is running: kubectl get pods -l app.kubernetes.io/component=agent. Check DD_AGENT_HOST value matches the agent service FQDN.
DATADOG TRACER CONFIGURATION not in logsCause: The init container failed to copy dd-java-agent.jar, or JAVA_TOOL_OPTIONS is not set.
Fix: Check init container logs: kubectl logs <POD> -c datadog-lib-java-init. Verify the shared volume is mounted correctly.
Cause: DogStatsD port 8125 not exposed on the agent service.
Fix: Verify the datadog-agent service exposes port 8125/UDP. The agent DaemonSet should have DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true.
env:none instead of env:sandboxCause: DD_ENV environment variable not set on the application pods.
Fix: Verify DD_ENV=sandbox is in the deployment manifest and reapply.
npx claudepluginhub jek-bao-choo/datadog-agentic-plugins --plugin java-instrumentationSearches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.