skills/.system/guicedee-telemetry/SKILL.md
OpenTelemetry distributed tracing for GuicedEE using Guice AOP and OTLP exporters: @Trace and @SpanAttribute annotations, automatic span creation, Uni-aware span lifecycle, call-scope span propagation, @TelemetryOptions configuration, OTLP HTTP export to Tempo/Jaeger, in-memory exporters for testing, Log4j2 OpenTelemetry appender, and environment variable overrides. Use when adding distributed tracing, configuring OpenTelemetry, or instrumenting methods with spans.
npx skillsauth add guicedee/ai-rules guicedee-telemetryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
OpenTelemetry distributed tracing for GuicedEE using Guice AOP and OTLP exporters.
Annotate your classes and methods with @Trace and @SpanAttribute — the framework builds an OpenTelemetrySdk at startup, binds a TraceMethodInterceptor via Guice AOP, and exports spans and logs to any OTLP-compatible backend (Tempo, Jaeger, etc.) automatically.
com.guicedee:guiced-telemetry dependency.@TelemetryOptions(
serviceName = "my-service",
otlpEndpoint = "http://localhost:4318",
serviceVersion = "1.0.0",
deploymentEnvironment = "production"
)
public class MyAppConfig {}
@Trace("place-order")
public void placeOrder(@SpanAttribute("order.id") String orderId,
@SpanAttribute("order.amount") double amount) {
// span is created automatically
}
@Trace
@SpanAttribute("result")
public String processPayment(String paymentId) {
return "success"; // return value recorded as "result" attribute
}
module-info.java:
module my.app {
requires com.guicedee.telemetry;
opens my.app.services to com.google.guice;
}
IGuiceContext.registerModuleForScanning.add("my.app");
IGuiceContext.instance().inject();
@TraceCreates an OpenTelemetry span around a method invocation.
@Trace("fetch-users")ClassName.methodName@SpanAttributeRecords method parameters or return values as span attributes.
String, Boolean, Long, Double, Integer, FloatWhen a @Trace method returns a Mutiny Uni, the span remains open until the Uni completes or fails.
Parent spans are propagated through GuicedEE's CallScoper. Nested @Trace methods create child spans automatically.
@TelemetryOptions annotation| Attribute | Purpose |
|---|---|
| enabled | Enable/disable tracing |
| serviceName | OpenTelemetry service name |
| otlpEndpoint | OTLP HTTP exporter endpoint |
| serviceVersion | Service version resource attribute |
| deploymentEnvironment | Deployment environment attribute |
| useInMemoryExporters | In-memory exporters for unit testing |
| configureLogs | Enable Log4j2 OpenTelemetry appender |
| maxBatchSize | Batch span processor max batch size |
Every @TelemetryOptions attribute can be overridden via system properties or environment variables.
IGuiceContext.instance().inject()
└─ TelemetryPreStartup (scans for @TelemetryOptions)
└─ OpenTelemetrySDKConfigurator.initialize()
├─ Build Resource (service.name, version, environment, host)
├─ Create OTLP HTTP exporters (spans + logs)
├─ Build SdkTracerProvider + SdkLoggerProvider
├─ Set GlobalOpenTelemetry
└─ Register shutdown hook
└─ TraceModule (binds TraceMethodInterceptor for @Trace)
Use in-memory exporters for unit tests:
@TelemetryOptions(useInMemoryExporters = true)
public class TestConfig {}
Access InMemorySpanExporter and InMemoryLogRecordExporter to assert on captured spans.
requires com.guicedee.telemetry;.com.google.guice.provides needed.development
Install Codex skills into $CODEX_HOME/skills from a curated list or a GitHub repo path. Use when a user asks to list installable skills, install a curated skill, or install a skill from another repo (including private repos).
tools
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Codex's capabilities with specialized knowledge, workflows, or tool integrations.
development
WebAwesome icon integration for JWebMP — modern, open-source icon library. Provides 1,500+ icons with solid/regular styles, sizing, rotation, animation, and CSS utilities. Drop-in FontAwesome alternative with fresh designs. Use when working with WebAwesome icons, modern icon designs, or as FontAwesome alternative in JWebMP applications.
development
WebAwesome Pro integration for JWebMP with premium icons and features. Extends jwebmp-webawesome with additional styles, premium icons, and advanced features. Use when working with WebAwesome Pro icons or premium WebAwesome features in JWebMP applications.