<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title><![CDATA[Pawel Filipczak - Elastic Observability Labs]]></title>
    <description><![CDATA[Trusted security news & research from the team at Elastic.]]></description>
    <copyright><![CDATA[© 2026. Elasticsearch B.V. All Rights Reserved]]></copyright>
    <image>
      <title><![CDATA[Pawel Filipczak - Elastic Observability Labs]]></title>
      <url>https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/bltad972c1c27dbefc6/6a88d9782904ea5e8511d473/observability-labs-thumbnail.png</url>
      <link>https://www.elastic.co/observability-labs/author/pawel-filipczak</link>
    </image>
    <link>https://www.elastic.co/observability-labs/author/pawel-filipczak</link>
    <atom:link href="https://www.elastic.co/observability-labs/rss/author/pawel-filipczak.xml" rel="self" type="application/rss+xml"/>
    <language><![CDATA[en]]></language>
    <lastBuildDate>Sun, 20 Sep 2026 17:46:30 GMT</lastBuildDate>
  <item>
    <title><![CDATA[Why Elastic donated its OpenTelemetry PHP distribution]]></title>
    <description><![CDATA[Learn what the OpenTelemetry PHP distro donation changes for package-managed PHP environments, how it compares to existing options, and what contributors can do next.]]></description>
    <content:encoded><![CDATA[<p>We <a href="https://www.elastic.co/observability-labs/blog/opentelemetry-accepts-elastics-donation-of-edot">donated EDOT PHP</a> to make OpenTelemetry for PHP as easy to deploy as any other runtime.
PHP powers a significant number of websites and SaaS platforms, and we hope our contribution helps more teams adopt OpenTelemetry.
In many production environments, runtimes are locked down and building native extensions during deploy is not possible, so we focused on an OS-package-first path (<code>deb</code>, <code>rpm</code>, <code>apk</code>) for zero-code instrumentation.</p>
<p>Since we announcement of the donation, we have been actively working on the project and are about to release a first beta version.</p>
<p>In this post, we will walk through what was donated, why it matters for production PHP systems, how it relates to existing OpenTelemetry PHP projects, and what is the status of the project.</p>
<h2 id="whyphpobservabilitycanstillbehard">Why PHP observability can still be hard</h2>
<p>OpenTelemetry gives us a common standard, but deployment reality still matters. In many PHP environments, the blocker is not instrumentation APIs. The blocker is operations.</p>
<p>At Elastic, we are committed to open standards and to OpenTelemetry as the industry standard for observability data collection. To help the community with these operational constraints, we donated our EDOT PHP distribution to OpenTelemetry.</p>
<p>Common constraints include:</p>
<ul>
<li>Shared hosting or hardened servers without build toolchains</li>
<li>Production images that cannot be rebuilt frequently</li>
<li>Package-managed PHP runtimes where OS-native install flows are required</li>
<li>Teams that need adoption without app code changes</li>
</ul>
<p>This is where an OS-package distribution helps. If you can install a package and restart PHP, you can usually start collecting telemetry.</p>
<h2 id="whattheopentelemetryphpdistroprovides">What the OpenTelemetry PHP distro provides</h2>
<p>The project we donated combines native and PHP runtime components into one production path.
The key features we announced in our original donation proposal are implemented and we are close to a first beta release. 
This includes:</p>
<ul>
<li>Native extension and loader artifacts so teams can install prebuilt components instead of compiling in restricted environments.</li>
<li>Runtime/bootstrap logic for auto-instrumentation so applications can emit telemetry with little or no code changes.</li>
<li>Packaging support for <code>deb</code>, <code>rpm</code>, and <code>apk</code> so rollout fits existing Linux package management and operations workflows.</li>
<li>Background telemetry sending and automatic root span behavior so trace data is captured consistently without custom bootstrapping logic or blocking of the main flow.</li>
<li>OTLP protobuf serialization works out of the box, with no need for the <code>ext-protobuf</code> extension. This means teams don't have to install extra dependencies, which is especially important in PHP environments where adding new extensions is difficult or restricted.</li>
<li>Inferred spans so users get added visibility into work that is not explicitly instrumented in application code.</li>
<li>URL grouping for transaction/root spans so high-cardinality route data is easier to aggregate and analyze.</li>
<li>Built-in OpAMP support utilizing an OpAMP client already present in the agent.</li>
</ul>
<p>For teams running PHP <code>8.1</code> through <code>8.4</code>, this gives a practical onboarding path that fits existing OS package operations.</p>
<h2 id="howinstallationlooksinpractice">How installation looks in practice</h2>
<p>A typical flow is simple:</p>
<ol>
<li>Install distro package for your Linux platform.</li>
<li>Set exporter endpoint and auth headers.</li>
<li>Restart PHP processes.</li>
<li>Verify traces in your collector or backend.</li>
</ol>
<p>Example environment variables:</p>
<pre><code>export OTEL_EXPORTER_OTLP_ENDPOINT="https://your-collector.example:4318"
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer &lt;token&gt;"
</code></pre>
<p>The key idea is predictable rollout through standard operational controls rather than custom build steps in each application pipeline.</p>
<p>For a detailed guide on how to setup the distro, see the <a href="https://github.com/open-telemetry/opentelemetry-php-distro/blob/main/docs/getting-started/setup.md">setup documentation</a>.</p>
<h2 id="relationshiptoexistingopentelemetryphpinstrumentation">Relationship to existing OpenTelemetry PHP instrumentation</h2>
<p>The current message from maintainers is coexistence with clear differentiation:</p>
<ul>
<li><strong>Distro path</strong>: package-managed, production-first, zero-code onboarding</li>
<li><strong>Composer-centric path</strong>: more manual control and portability where that is needed</li>
</ul>
<p>This distinction matters for users choosing a starting point. If you control application packaging tightly and can build extensions as part of app install, Composer-oriented paths can still be a fit. If you need an operations-first rollout through OS packages, the distro can reduce adoption friction.</p>
<p>The donation discussion also raised an important usability concern: too many overlapping options can confuse users. That is why compatibility and long-term alignment across projects is a key follow-up topic. The original proposal details are available in the <a href="https://github.com/open-telemetry/community/issues/2846">OpenTelemetry community donation issue</a>.</p>
<h2 id="whattovalidatebeforebroadproductionrollout">What to validate before broad production rollout</h2>
<p>If you want to test this path in your own environment, validate these points early:</p>
<ul>
<li><strong>Runtime coverage</strong>: verify your PHP version and SAPI mode (PHP-FPM, Apache <code>mod_php</code>, CLI)</li>
<li><strong>Packaging fit</strong>: confirm your distro package format and architecture support</li>
<li><strong>Telemetry behavior</strong>: check span completeness, service naming, and exporter reliability</li>
<li><strong>Operational safety</strong>: verify restart procedures, rollback steps, and version pinning policy</li>
</ul>
<p>A lightweight validation matrix can save rework later, especially when multiple runtime profiles exist in the same organization.</p>
<h2 id="thecurrentstatusandwhatsnext">The current status and what's next</h2>
<p>With the completion of the initially-announced, above-mentioned features, we reached a significant milestone and are about to release a first beta version.</p>
<p>However, the work does not stop here. More enhancements and features are planned, including:</p>
<h3 id="classshadowing">Class Shadowing</h3>
<p>In some situations it is possible that the PHP distro loads classes that are already loaded by the application itself. 
This can lead to collisions and unexpected behavior. 
We are working on implementing shadowing of classes and namespaces of the PHP distro dependencies to avoid collisions.
This new feature will increase the stability and reliability of the PHP distro across a wider range of applications.</p>
<h3 id="declarativeconfigurationsupport">Declarative Configuration Support</h3>
<p>Just recently the OpenTelemetry community announced the <a href="https://opentelemetry.io/blog/2026/stable-declarative-config/">stability of the declarative configuration specification</a>. 
Including native support for the declarative configuration specification in the PHP distro is a feature that is on our roadmap and one of the next major features we will be working on.
With declarative configuration support, teams will be able to configure the PHP distro in a more flexible way without having to modify their application code.</p>
<p>We are working on implementing declarative configuration support in the distro to allow for more fine-grained configuration of the agent.
This new feature will increase the flexibility and usability of the PHP distro.</p>
<h3 id="php85support">PHP 8.5 Support</h3>
<p>In November 2025, PHP 8.5 was released with major changes to the language and runtime.
We are working on supporting it in the PHP distro which will expand the scope of compatibility and usability of the PHP distro across a wider range of applications and environments.</p>
<h3 id="centralconfigurationsupport">Central Configuration Support</h3>
<p>Both, the declarative configuration as well as the <a href="https://github.com/open-telemetry/opentelemetry-specification/pull/4738">new proposal around telemetry policies</a> are potential and promising enablers for dynamic, central configuration of OTel SDKs and distors.
Once the discussion around telemetry policies is resolved, we will be able to implement central configuration support in the PHP distro.
This will combine the concepts around declarative configuration, telemetry policies and the OpenTelemetry Agent Management Protocol (OpAMP) to provide a more flexible and powerful way to configure the PHP distro centrally.</p>
<h3 id="baseedotontheupstreamdistribution">Base EDOT on the upstream distribution</h3>
<p>With the new OpenTelemetry PHP distro reaching a first beta release, we are working on basing Elastic's OTel PHP distribution (EDOT PHP) on the upstream distribution to increase the compatibility and avoid feature drift.
This will ensure that the PHP distro is always up to date with the latest features and bug fixes from the OpenTelemetry community.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Our OpenTelemetry PHP distro donation is mainly about operational accessibility. It gives PHP teams a package-native way to adopt OpenTelemetry where build-time instrumentation is difficult.
As community alignment progresses, we expect this to become a clearer and lower-friction option for production PHP observability. Try out the <a href="https://github.com/open-telemetry/opentelemetry-php-distro">OpenTelemetry PHP distro repository</a>, document gaps, and feed findings back to the maintainers.</p>]]></content:encoded>
    <link>https://www.elastic.co/observability-labs/blog/otel-php-distro-donation</link>
    <guid isPermaLink="false">otel-php-distro-donation</guid>
    <category><![CDATA[OpenTelemetry]]></category>
    <dc:creator><![CDATA[Pawel Filipczak]]></dc:creator>
    <enclosure url="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt750d8298af04ae7c/6a7f1973b437702d614d70e2/header.jpg" length="0" type="image/jpeg"/>
    <pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate>
  </item>
  <item>
    <title><![CDATA[OpenTelemetry for PHP: EDOT PHP joins the OpenTelemetry project]]></title>
    <description><![CDATA[Explore Elastic’s donation of its EDOT PHP to the OpenTelemetry community and discover how it makes OpenTelemetry for PHP simpler and more accessible.]]></description>
    <content:encoded><![CDATA[<p>The OpenTelemetry community has officially accepted Elastic's proposal to contribute the <strong>Elastic Distribution of OpenTelemetry for PHP (EDOT PHP)</strong> — marking an important milestone in bringing first-class observability to one of the web's most widely used languages.</p>
<p>For decades, PHP has powered everything from small business websites to large-scale SaaS platforms. Yet observability in PHP has often required manual setup, compilers, custom extensions, or changes to application code — challenges that limited adoption in production environments.
This upcoming donation aims to change that, by making OpenTelemetry for PHP <strong>as easy to deploy as any other runtime</strong>.</p>
<h2 id="whatscoming">What's coming</h2>
<p>Once the contribution process is complete, EDOT PHP will become part of the OpenTelemetry project — providing a <strong>complete, production-ready distribution</strong> that's optimized for performance, simplicity, and scalability.</p>
<p>EDOT PHP introduces a new approach to PHP observability:</p>
<ul>
<li><strong>Simple installation</strong> - installing OpenTelemetry for PHP will be as straightforward as installing a standard system package. From that point, the agent automatically detects and instruments PHP applications — no code changes, no manual setup.</li>
<li><strong>Automatic agent loading</strong> - works transparently in cloud and container environments without modifying application deployments.</li>
<li><strong>Zero configuration</strong> - ships as a single, self-contained binary; no need to install or compile any external extensions.</li>
<li><strong>Native C++ performance</strong> - a built-in serializer written in C++ reduces telemetry overhead by up to <strong>5×</strong>.</li>
<li><strong>Automatic instrumentation</strong> - instruments popular frameworks and libraries out of the box.</li>
<li><strong>Inferred spans</strong> - reveals the behavior of even uninstrumented code paths, providing full trace coverage.</li>
<li><strong>Automatic root spans</strong> - ensures complete traces, even in legacy or partially instrumented applications.</li>
<li><strong>OpAMP readiness</strong> - while the OpenTelemetry community continues to standardize configuration schemas and management workflows, the implementation in EDOT PHP is fully prepared to support these upcoming specifications — ensuring seamless adoption once the OpAMP ecosystem matures.</li>
<li><strong>Asynchronous backend communication</strong> - telemetry data is exported to the OpenTelemetry Collector or backend <strong>asynchronously</strong>, without blocking the instrumented application.
This ensures that span and metric exports do not add latency to user requests or impact response times, even under heavy load.</li>
</ul>
<p>Together, these features make EDOT PHP the first truly <strong>zero-effort observability solution for PHP</strong> — from local testing to cloud-scale production systems.</p>
<p><img src="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt340e08b58598fdb7/6a7f0f6ce88c651ef700b7ca/performance.png" alt="Performance comparision" /></p>
<blockquote>
  <p>The native C++ serializer and asynchronous export pipeline in EDOT PHP reduce average request time from <strong>49 ms</strong> to <strong>23 ms</strong>, more than <strong>2× faster</strong> than the pure PHP implementation.</p>
</blockquote>
<h2 id="buildingontheexistingfoundation">Building on the existing foundation</h2>
<p>EDOT PHP doesn't replace the existing OpenTelemetry PHP SDK — it <strong>extends and strengthens it</strong>.
It packages the SDK, automatic instrumentation, and native extension into a single, unified agent package that works seamlessly with existing OpenTelemetry specifications and APIs.</p>
<p>By contributing this work, Elastic helps the OpenTelemetry community accelerate PHP adoption, align implementations across languages, and make distributed tracing truly universal.</p>
<blockquote>
  <p>“This isn't a hand-off — it's a collaboration.
  We're contributing years of development to help OpenTelemetry for PHP evolve faster, run more efficiently, and reach more users in every environment.”</p>
  <ul>
  <li><em>Elastic Observability team</em></li>
  </ul>
</blockquote>
<h2 id="ongoingimprovements">Ongoing improvements</h2>
<p>Elastic continues to invest in advancing EDOT PHP ahead of its integration into OpenTelemetry.
The team is currently focused on <strong>reducing resource usage and memory footprint</strong>, particularly in <strong>multi-worker server environments</strong> such as PHP-FPM or Apache prefork.
These optimizations aim to make the agent more predictable and efficient under heavy load — ensuring that telemetry remains lightweight even in large-scale production deployments.</p>
<p>Beyond that, we're exploring further improvements that can enhance both performance and interoperability.
Areas under investigation include smarter coordination in high-concurrency scenarios, better sharing of telemetry resources across workers, and future alignment with additional OpenTelemetry signals such as metrics and logs.</p>
<p>Together, these efforts will help make EDOT PHP not only faster, but also more adaptable and seamlessly integrated into diverse runtime architectures.</p>
<h2 id="whyitmatters">Why it matters</h2>
<p>This contribution is about more than performance — it's about <strong>removing barriers</strong>.
By making OpenTelemetry for PHP installable as a simple system package and automatically loaded into running applications, the project opens observability to every PHP developer, operator, and platform provider.</p>
<p>For the OpenTelemetry ecosystem, it fills one of the last major language gaps, extending visibility to a vast portion of the internet — all under open governance and community collaboration.</p>
<h2 id="lookingahead">Looking ahead</h2>
<p>In the months ahead, Elastic and the OpenTelemetry PHP SIG will work closely on the technical integration, documentation, and community onboarding process.
Once the transition is complete, developers will gain a fully open, community-driven, and production-ready OpenTelemetry agent that “just works” — without friction, configuration, or code changes.</p>
<p>Together, we're building a future where <strong>observability just works — for every language, every framework, and every environment</strong>.</p>
<p>For more information:</p>
<p><a href="https://www.elastic.co/docs/reference/opentelemetry">EDOT documentation</a><br />
<a href="https://www.elastic.co/observability-labs/blog/elastic-managed-otlp-endpoint-for-opentelemetry">Learn about</a> OTLP Endpoint</p>]]></content:encoded>
    <link>https://www.elastic.co/observability-labs/blog/opentelemetry-accepts-elastics-donation-of-edot</link>
    <guid isPermaLink="false">opentelemetry-accepts-elastics-donation-of-edot</guid>
    <category><![CDATA[OpenTelemetry]]></category>
    <category><![CDATA[APM]]></category>
    <dc:creator><![CDATA[Pawel Filipczak]]></dc:creator>
    <enclosure url="https://static-www.elastic.co/v3/assets/bltefdd0b53724fa2ce/blt9499757f899f3979/6a7f18da227b1c46675989e1/otel-php.jpg" length="0" type="image/jpeg"/>
    <pubDate>Mon, 10 Nov 2025 00:00:00 GMT</pubDate>
  </item>
  </channel>
</rss>