<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/opentelemetry-transformation-language-reaches-v1-7fr18f0qt" -->

---
title: OpenTelemetry Transformation Language reaches v1 | daily.dev
description: The OpenTelemetry Transformation Language (OTTL) has reached v1, stable for traces, metrics, and logs starting with opentelemetry-collector-contrib v0.164.0....
canonical: https://daily.dev/posts/opentelemetry-transformation-language-reaches-v1-7fr18f0qt
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: OpenTelemetry Transformation Language reaches v1 | daily.dev
og:description: The OpenTelemetry Transformation Language (OTTL) has reached v1, stable for traces, metrics, and logs starting with opentelemetry-collector-contrib v0.164.0....
og:url: https://daily.dev/posts/opentelemetry-transformation-language-reaches-v1-7fr18f0qt
og:image: https://api.daily.dev/og/posts/7fR18f0qT.png
og:image:alt: OpenTelemetry Transformation Language reaches v1
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenTelemetry Transformation Language reaches v1

**[OpenTelemetry](https://daily.dev/sources/opentelemetry)** · 5 min read · 0 upvotes · 0 comments

## Summary

The OpenTelemetry Transformation Language (OTTL) has reached v1, stable for traces, metrics, and logs starting with opentelemetry-collector-contrib v0.164.0. Existing OTTL syntax, standard functions, and the Go API stay backward compatible for all of 1.x. New functions now launch as experimental in the xottl module behind a feature gate before promotion. The releases leading up to v1 removed deprecated functions like Base64Decode and several stable feature gates, and v0.164.0 removes ottl.set.allowNil. Fourteen contrib components use OTTL, and New Relic, Grafana Labs, SigNoz, and Genesys backed the stabilization. The transform processor is next in line for stability.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://opentelemetry.io/blog/2026/ottl-v1>

## Questions this post answers

### What does OTTL v1 stability mean for backward compatibility?

OTTL v1, shipped starting with opentelemetry-collector-contrib v0.164.0, guarantees that syntax, standard functions, and the Go API stay backward compatible for the entire 1.x line. A statement that parses on one 1.x release will parse and behave the same on every later 1.x release, and existing function signatures won't change in backward-incompatible ways.

_Track collector upgrade guarantees like this on daily.dev before bumping pipeline dependencies._

### What got removed when upgrading to opentelemetry-collector-contrib v0.164.0?

Version 0.164.0 removes long-deprecated functions such as Base64Decode and old profile functions, plus feature gates that had already reached stable: ottl.PanicDuplicateName, ottl.contexts.enableOTelColContext, and ottl.set.allowNil. Anyone still passing these gates to the Collector needs to remove them before upgrading.

_Developers planning a collector bump can follow breaking-change notes like this via daily.dev._

### How do new experimental functions get added to OTTL now that it's v1?

New functions start as experimental in the xottl module, versioned at 0.x, and only parse when the pkg.ottl.functions.enableExperimental feature gate is enabled. A function moves to the standard, frozen set after at least two minor releases as experimental, complete tests and documentation, no open change proposals, and demonstrated user demand.

_Those evaluating OTTL extensibility can keep up with promotion criteria changes through daily.dev._

## Similar posts on daily.dev

- [Lambda-powered functions land in OTTL](https://daily.dev/posts/lambda-powered-functions-land-in-ottl-zbdxfvwow) · OpenTelemetry · 0 upvotes · 0 comments
- [How to OTel: A blueprint for OpenTelemetry adoption](https://daily.dev/posts/how-to-otel-a-blueprint-for-opentelemetry-adoption-fbrceulsq) · elastic · 1 upvotes · 0 comments
- [Native OpenTelemetry inside Alloy: Now you can get the best of both worlds](https://daily.dev/posts/native-opentelemetry-inside-alloy-now-you-can-get-the-best-of-both-worlds-nbjgcmthl) · Grafana Labs · 0 upvotes · 0 comments
- [OpenTelemetry Declarative Configuration Reaches Stability Milestone](https://daily.dev/posts/opentelemetry-declarative-configuration-reaches-stability-milestone-awng3nufl) · InfoQ · 0 upvotes · 0 comments
- [OTTL context inference comes to the Filter Processor](https://daily.dev/posts/ottl-context-inference-comes-to-the-filter-processor-rixpg5abj) · OpenTelemetry · 11 upvotes · 0 comments

---

Tags: [#architecture](https://daily.dev/tags/architecture), [#observability](https://daily.dev/tags/observability), [#opentelemetry](https://daily.dev/tags/opentelemetry)

[View this post on daily.dev](https://daily.dev/posts/opentelemetry-transformation-language-reaches-v1-7fr18f0qt)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"OpenTelemetry Transformation Language reaches v1","url":"https://daily.dev/posts/opentelemetry-transformation-language-reaches-v1-7fr18f0qt","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/opentelemetry-transformation-language-reaches-v1-7fr18f0qt"},"datePublished":"2026-10-27T15:29:13.873Z","dateModified":"2026-10-29T02:14:08.782Z","description":"The OpenTelemetry Transformation Language (OTTL) has reached v1, stable for traces, metrics, and logs starting with opentelemetry-collector-contrib v0.164.0....","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/98d24ffd1665dd1b58f33da16e02e5b6?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/98d24ffd1665dd1b58f33da16e02e5b6?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"OpenTelemetry","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"OpenTelemetry","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/058cf331ff204b6aa421b376d509f16e","url":"https://daily.dev/sources/opentelemetry"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/opentelemetry-transformation-language-reaches-v1-7fr18f0qt","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"architecture,observability,opentelemetry","timeRequired":"PT5M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"OpenTelemetry","item":"https://daily.dev/sources/opentelemetry"},{"@type":"ListItem","position":3,"name":"OpenTelemetry Transformation Language reaches v1"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/opentelemetry-transformation-language-reaches-v1-7fr18f0qt#faq","mainEntity":[{"@type":"Question","name":"What does OTTL v1 stability mean for backward compatibility?","acceptedAnswer":{"@type":"Answer","text":"OTTL v1, shipped starting with opentelemetry-collector-contrib v0.164.0, guarantees that syntax, standard functions, and the Go API stay backward compatible for the entire 1.x line. A statement that parses on one 1.x release will parse and behave the same on every later 1.x release, and existing function signatures won't change in backward-incompatible ways. Track collector upgrade guarantees like this on daily.dev before bumping pipeline dependencies."}},{"@type":"Question","name":"What got removed when upgrading to opentelemetry-collector-contrib v0.164.0?","acceptedAnswer":{"@type":"Answer","text":"Version 0.164.0 removes long-deprecated functions such as Base64Decode and old profile functions, plus feature gates that had already reached stable: ottl.PanicDuplicateName, ottl.contexts.enableOTelColContext, and ottl.set.allowNil. Anyone still passing these gates to the Collector needs to remove them before upgrading. Developers planning a collector bump can follow breaking-change notes like this via daily.dev."}},{"@type":"Question","name":"How do new experimental functions get added to OTTL now that it's v1?","acceptedAnswer":{"@type":"Answer","text":"New functions start as experimental in the xottl module, versioned at 0.x, and only parse when the pkg.ottl.functions.enableExperimental feature gate is enabled. A function moves to the standard, frozen set after at least two minor releases as experimental, complete tests and documentation, no open change proposals, and demonstrated user demand. Those evaluating OTTL extensibility can keep up with promotion criteria changes through daily.dev."}}]}
```

