What problem does it solve? Free-text log messages cannot be filtered, aggregated, or correlated across services, making debugging slow and causing backend outages from high-cardinality labels and leaked secrets. This Skill provides the OpenTelemetry log data model and semantic conventions needed to emit queryable, trace-correlated structured logs. ## Core Features & Use Cases - Log Data Model Guidance: Apply the OTel record model (Timestamp, SeverityText/Number, Body, Attributes, Resource, EventName, TraceId/SpanId) with stable dotted event names instead of prose messages. - Semantic Conventions: Use standard attribute names for HTTP (http.request.method, http.route, url.path), errors (error.type, exception.*), and resources (service.name, service.version, deployment.environment.name). - Trace Correlation & Cardinality Control: Inject W3C trace context into every log record, keep backend labels low-cardinality (Loki), and redact secrets at the logger level. - Use Case: When reviewing a service's logging, replace an access log that dumps raw URLs with a structured http.request.completed event carrying route, status, duration, and trace ids. ## Quick Start Review the logging in this service and rewrite it as structured OpenTelemetry-style events with trace correlation and low-cardinality labels.