{"version":"2.1.315","anchor":"first-party-event-logger-skips-batching-when-otel-limit-env","canonical_anchor":"first-party-event-logger-skips-batching-when-otel-limit-env","heading":"OpenTelemetry limit variables now change how Claude Code logs its own events","tier":"notice","area":"Telemetry","scope":"org","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.315\/e\/first-party-event-logger-skips-batching-when-otel-limit-env","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.315","markdown":"### OpenTelemetry limit variables now change how Claude Code logs its own events\n\nSetting any of four OpenTelemetry attribute limit variables now switches how Claude Code records the events it logs about its own use\n\n**What**\n\nClaude Code records events about its own use. It does this through OpenTelemetry, an open standard for collecting logs and measurements. How it records them now depends on four environment variables (settings you put in your shell before starting Claude Code):\n\n- `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT`\n\n- `OTEL_LOGRECORD_ATTRIBUTE_COUNT_LIMIT`\n\n- `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT`\n\n- `OTEL_ATTRIBUTE_COUNT_LIMIT`\n\nIf any of them is set, Claude Code uses the standard OpenTelemetry logger, which applies those limits on how many details an event carries and how long each detail may be. If none is set, Claude Code passes each event straight to the next processing step and leaves out any detail whose name is empty or whose value is null.\n\n**Why**\n\nSetting any of these variables now changes how Claude Code filters and limits the details attached to its own events. Without them, empty or null details are simply dropped.\n\n- Area: Telemetry\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 2\/5\n- Scope: org\n- Heads-up: no"}