# Changelog of OTel Semantic Convention Validator (`michiganpublictech/otel-semconv-validator`) Actor

- **URL**: https://apify.com/michiganpublictech/otel-semconv-validator/changelog.md
- **Full Actor documentation**: https://apify.com/michiganpublictech/otel-semconv-validator.md

## Changelog — OTel Semantic Convention Validator

### 0.1.0 — unreleased

- Initial version.
- Input: OTLP/JSON export requests (`resourceSpans`, `resourceMetrics`, `resourceLogs`, any combination; camelCase
  or snake_case field names) or a simplified `{resource, spans, metrics, logs}` shape, inline only (`telemetry`,
  `telemetryBatches`). No network access at runtime.
- Bundled, curated semantic-convention registry for versions 1.24.0 – 1.44.0 (21 releases; default 1.44.0) with
  version-aware deprecations (attributes, metrics and enum values), span-kind-aware replacements and value maps.
  Every since/deprecated version, replacement, type, stability and enum value was checked against the upstream model
  YAML of each release (`tools/check_registry.py`, development only).
- 1.38.0 – 1.44.0 coverage: `rpc.system` → `rpc.system.name` (with value map), `rpc.service` merged into
  `rpc.method`, `rpc.grpc.status_code` → `rpc.response.status_code` (status code names), `rpc.message.*` and the
  `rpc.*.duration` / `rpc.*.size` metrics deprecated (`rpc.*.call.duration`, seconds), `peer.service` →
  `service.peer.name`, `error.message` deprecated, `otel.event.name`, `feature_flag.error.message`,
  `process.open_file_descriptor.count` → `process.unix.file_descriptor.count`, and stability updates (service, k8s,
  container, deployment, telemetry.distro stable). GenAI (`gen_ai.*`) moved to its own repository in 1.42.0 and is
  still checked with the 1.41.0 definitions.
- `event.name` (log attribute) reported as deprecated from 1.30.0 in favour of the log record's EventName field.
- 70 rules (`SEMCONV-*`) across OTLP structure, deprecated conventions, required/recommended attributes, resource,
  types, enums, naming, metrics (units/instruments/cardinality), span names, status/error handling and privacy.
  See [RULES.md](RULES.md).
- Strictness levels `required` / `recommended` (default) / `strict`, signal filter, `ignoreAttributes` globs.
- Output per batch: `valid`, compliance score, counts by severity, merged findings with JSON-path locations and
  autofix descriptions, instrumentation hints, a Collector `transform` (OTTL) snippet, and fixed telemetry with a
  change list (deterministic, lossless fixes only; secrets and URL credentials always redacted).
- Actor Standby: `POST /validate`, `GET /`, `GET /rules`, `GET /versions`, same billing as batch runs.
  `compact: true` (or `?compact=1`) returns a token-lean report for agents.
- Pay-per-event: `telemetry-validated` ($0.05 per batch), `fixed-telemetry` ($0.02, only when at least one change
  was made). Unparsable or oversized batches are free.
