dd-trace-php

Datadog PHP Clients

OTHER License

Downloads
12.2M
Stars
464
Committers
76

Bot releases are hidden (Show)

dd-trace-php - 0.76.2

Published by krakjoe about 2 years ago

Fixed

  • Check for datadog-profiling in startup only instead of inside a message_handler #1670. This fixes a possible crash when all of tracer, profiler and appsec are loaded.
  • Add opcode shutdown handlers, fix integrations after repeated minit #1669. This fixes a crash when using reload on apache (sending SIGUSR1).
  • (PHP 7) Fix curl wrapper use after free #1662. This fixes a possible crash when curl handles are manually released within destructors inside the PHP shutdown sequence.
  • Fix -Werror=address-of-packed-member #1664

Internal changes

  • Skip curl test if curl is not loaded #1668

Profiling (v0.7.2)

  • Fix crash with SAPI env vars DataDog/dd-prof-php#46
  • Avoid .message_handler due to upstream bug DataDog/dd-prof-php#47
dd-trace-php - 0.76.1

Published by krakjoe over 2 years ago

apache reload will cause crashes

Please upgrade to 0.76.2, if you get crashes with apache with versions 0.76.0 or 0.76.1.

Fixed

  • Bump PHP minimum version in PECL #1652
  • PHP 7.3+ Fix compatibility with opcache #1656

Internal changes

  • %d resource ids in language tests #1657
dd-trace-php - 0.76.0

Published by labbati over 2 years ago

Instrumentation partly broken with opcache

Note: If you are using opcache with PHP 7.3 or newer, it is advised to skip this version in favor of 0.76.1.

As part of a major refactor of our instrumenting code, we made ourselves incompatible with JIT (it will report an error that JIT will be disabled, but still work).
Additionally, with opcache active, a lot of user functions are not traceable anymore on PHP 7.3 and newer. This means that the resulting traces will be missing a lot of information.

Tracer

Added

  • Add B3 headers injection and extraction #1629
  • Collect http.client_ip #1621

Changed

  • Filter x-datadog-tags for _dd.p. prefix and add DDTrace\add_distributed_tag #1618
  • ​​Rename query string obfuscation variable #1630
  • Collect query string by default and obfuscate #1615
  • Update regex to account for URL encoding #1622
  • Update library versions used in tests + support plesk paths #1632
  • Remove service name propagation #1635, #1636
  • Add integration loaded output for deferred integrations on DD_TRACE_DEBUG=1 #1639
  • ​Reduce memory footprint of strpprintf #1640
  • New implementation for hooks #1617
  • (PHP 5) Remove service name propagation and filter x-datadog-tags for _dd.p. prefix #1636

Fixed

  • Fix crash with numerical value in $_SERVER array #1634
  • Fix missing query string on http.url from integrations #1642

Internal changes

  • Add link to compatibility requirements in README.md #1610
  • Manually build PHP for randomized tests images #1616
  • Eliminate PHP 5 references from master #1626
  • Remove PHP 5 from CI and fetch it instead from the latest PHP-5 branch build #1624
  • Fix test_web on PHP 8.0 #1631
  • Add g1a/composer-test-scenarios and symfony/flex to composer allow-plugin list #1637
  • (PHP 5) Run Wordpress testsuite actually against PHP 5 #1638
  • Test debian bullseye instead of stretch in CI #1644
  • Update rel env to use 0.75.0 (#1620)
  • Disable clang format check in CI #1619
  • Add one more allow-plugins in root composer.json #1646
  • (PHP 5) Add g1a/composer-test-scenarios and symfony/flex to composer allow-plugin list #1647

Profiling (v0.7.0)

Changed

  • Do not upload empty profiles. See DataDog/dd-prof-php@e03ff23e5216f863061285e13170d011d0c04bc8 for details.

Fixed

  • Fix a small memory leak with env var handling.

Added

  • Add SAPI as profile tag.
  • Add support for DD_PROFILING_EXPERIMENTAL_CPU_TIME_ENABLED env var. It previously supported this functionality under a different, undocumented name.
dd-trace-php - 0.75.0

Published by labbati over 2 years ago

Tracer

Added

  • Add a new decision maker mechanism #1598
  • Rename DD_TRACE_X_DATADOG_TAGS_PROPAGATE_SERVICE to DD_TRACE_PROPAGATE_SERVICE #1612, #1613
  • Add support for unix domain sockets #1601
  • Add RedisCluster split by host #1602 (Thanks to @radykal-com)
  • Add http.useragent to root span #1607

Fixed

  • Fix #1582: *_id keys in meta and metrics are wrongly encoded #1599
  • Fix dlerror logging format #1605
  • Fix DD_TRACE_URL_AS_RESOURCE_NAMES_ENABLED accidentally guarding http.method and http.url as well #1608

Internal changes

  • Fix downstream job trigger for deployments to rel-env #1597
  • Update dd-trace-php link for reliability environment #1595
  • Move request-replayer from our internal deprecated repository to dd-trace-php #1600
  • Support restricting PHP versions while running randomized tests #1604
  • Transition to non-legacy circleci images #1609
dd-trace-php - 0.74.0

Published by labbati over 2 years ago

Tracer

Added

  • Add configurations for retaining select query string parameters in resources and http.url #1566

Changed

  • Respect autofinish on flush(), add warnings in debug mode when having unbalanced spans #1564, #1569
  • Loose restrictions around distributed tracing context setting #1571

Fixed

  • Fix dispatch resetting #1570
  • Fix run_time_cache initialization for closure calls with foreign scope on PHP 7.4-8.1 #1578
  • Eliminate the separate span id stack, fix distributed tracing trace_id #1586
  • Fix handling of INI and ENV changes post minit, pre runtime #1593
  • Fix inconsistent module load and unload sequence #1585
  • Fix installer setting check for extensions #1584

Internal changes

  • Pin composer on PHP 7 docker containers to version 2.2 #1565
  • Disable flaky test on PHP 5.4 #1583
  • Remove Symfony 4.2 from PHP 7.4 web tests #1587
  • Add the scenario name to the randomized test docker name #1590
  • Fix ownership of files within release artifact tars #1591

Profiling (v0.6.1)

Fixed

  • Bump profiling to v0.6.1 #1588. This re-initializes static variables on startup/minit which may help prevent Apache reload from crashing.
  • Enable profiling installation on PHP 8.1 #1576

Application Security Monitoring (v0.3.2)

Fixed

  • Fix hybrid extension initialisation #92
dd-trace-php - 0.73.0

Published by labbati over 2 years ago

Application Security Monitoring

Breaking Changes

  • Rename ini settings from datadog.appsec.rules_path to datadog.appsec.rules #74
  • Interpret datadog.appsec.waf_timeout as microseconds rather than milliseconds #74

Fixes

  • Add obfuscator strings when initialising WAF from client settings #83
  • Fix relative module order with ddtrace on PHP 7.3 issue #88 - #86

Additions

  • Add WAF metrics and errors to traces #79
  • Actor IP resolution from request headers #80
  • Add support for WAF event obfuscator #82
  • Add obfuscator regex for values #84

Miscellaneous Changes

  • Update installer links in documentation and tests #76
  • Add parameter_view for non-ownership of WAF parameters #78
  • Accept IP list on X-Cluster-Client-IP header #81
  • Update ruleset to v1.3.1 #82
  • libddwaf upgraded to v1.3.0 #82
  • Update installation instructions #84
dd-trace-php - 0.72.0

Published by labbati over 2 years ago

Added

  • Add support for memcached on PHP 8 #1558

Fixed

  • Fix #1544: Handle hook dummy span hack when assigning parent #1557

Internal changes

  • Add gdbinit files for php 8.0 and 8.1 #1556
  • Add system tests in CI #1552
  • Use latest 8.0.17 in buster images #1559
  • Update flex to v1.18.5 in composer.lock files for Symfony 4.0 and 5.0 #1560
  • Add a single test to xfail after upgrade of docker image to 8.0.18 #1561
  • Update link to download 0.71.1 in the reliability environment #1555
dd-trace-php - 0.71.1

Published by labbati over 2 years ago

⚠ This release fixes a critical issue in this library that exists for PHP 8.1.4+ and PHP 8.0.18+ ⚠

Fixed

  • Use -1 as uninitialized op_array_extension marker #1550 (thanks @blazarecki for the report)

Internal changes

  • Use latest ubuntu images in CI #1543
  • Use 8.1.4 in development buster images #1553
  • Add randomized tests for PHP 8.1 and make buster containers arm64 ready #1551
  • Remove regressions from randomized tests #1547
dd-trace-php - 0.71.0

Published by labbati over 2 years ago

Not supported with PHP 8.1.4+ and PHP 8.0.18+

Due to a subtle behaviour change in PHP 8.1.4 and PHP 8.0.18 respectively, all versions of the datadog tracer up to 0.71.0 are not compatible with PHP versions newer than PHP 8.1.4 or PHP 8.0.18.

Changed

  • Do not disable tracing when ionCube loader and ZendGuard loader are detected #1520

Added

  • Added ES integration support for newer PHP and ES versions #1516
  • Add support for wordpress on PHP 8 and use a different hook #1522
  • Add Code Hotspots #1517
  • Implement split by instance in PDO #1498

Fixed

  • Trigger profiling interrupt function before internal observer_end #1499
  • Fix compatibility with PHP 8.2 (master) #1521

Internal changes

  • Clean up Tea SAPI and allow ddtrace to run there #1502
  • Use a new curl session for each writer iteration and clear it after #1504
  • Increase bgs backlog by 20% #1506
  • Always include the Tea SAPI Catch2 test header #1507
  • Add is_nil function to UUID component #1515
  • Fix randomized testsuite memory limits and background sender curl handling #1525
  • Run cmake-format on TEA's CMakeLists.txt #1527
  • Simplify calls (zai symbols), add support for generators #1529
  • Update profiling to v0.5.0 #1537
  • Update profiling to v0.5.1 #1541
  • Move from checking status code reported by vegeta to check error logs #1540
  • Fix ZAI symbols on PHP 7.3+ (randomized tests failures) #1536
  • ​​Add a test case for guzzle url no schema + split by domain #1534
  • Point rel-env deployment to GH release 0.70.1 #1531
  • Tea ZE Suppport #1526
  • Show curl response status code in tests #1524
  • Add long running script memory check to randomized tests #1356
  • Add a test for sub path and wildcards normalization #1505
dd-trace-php - 0.70.1

Published by labbati over 2 years ago

Changed

  • Disable x-datadog-tags header propagation #1528

Fixed

  • Fix Laravel exceptions being over-reported #1361
  • Fix too aggressive symbol exporting #1523
  • Hide the dummy span during trace hooks away #1519
  • (PHP 5) Remove empty multi_curl handles hashtables #1513
  • Do not mess with the span duration in curl integration #1512
  • Fix #1510 post-install not detecting required extension #1511
  • ​​Explicitly depend on ext/standard and fix in-tree builds #1509
dd-trace-php - 0.70.0

Published by labbati over 2 years ago

Changed

  • Make the legacy API a pure proxy to internal spans #1471
  • Load the legacy tracer only when actually used #1449
  • Update profiling to v0.4.0 #1495

Added

  • Add appsec library to the release bundle #1469
  • Add appsec installation #1470

Fixed

  • Always emit NoopSpans if the tracer extension is disabled #1475
  • fix dd_update_upstream_services on php5 #1476
  • Setup: Error if profiling is given but unavailable #1477
  • Ensure dropped spans are distinguishable from unfinished spans #1480
  • Fix Span::setError docblock #1481
  • Fix invalid reads in background sender #1483
  • Restore support for manual distributed tracing #1484
  • Remove version number from datadog-setup.php's help output #1487
  • Improve error detection for datadog-setup.php #1489

Internal changes

  • Add parallelism to makefile for builds and test runs #1382
  • Add profiling module to randomized tests #1412
  • Run randomized internal API stress testing in CI #1445
  • Switch to Symbols interface, cleanup tests #1465
  • Improve Symbol Call interface, introduce closure support #1467
  • Support in-tree builds of Tea #1472
  • Sandbox Bailout #1473
  • Patch zend_alloc.c to not crash in CI for PHP 7.0 to 7.2 #1478
  • build tea once during development #1479
  • Update PHP 8.1 dependencies, include laravel testing #1482
  • Inline queue function pointers #1490
  • Adjust stack sample max stack depth #1491
  • Remove unused profiling components #1492
dd-trace-php - 0.69.0

Published by labbati over 2 years ago

⚠ Breaking changes

  • Query string is now not included in http.url in Nette integration and in generic web frameworks tracing.

Added

  • Implement x-datadog-tag propagation and _dd.p.upstream_services #1405

Changed

  • Get rid of ini-ignoring and redundant checking of ddtrace being enabled #1448
  • Strip query string from http.url in generic web tracing #1454
  • Use internal root spans in Integrations in place of using the legacy API #1383
  • Hard-code version in installer, remove --url option, rename it #1463
  • Remove generator support on PHP 7 #1464

Fixed

  • Ensure a proper sampling decision is also evaluated when distributed tracing is used #1450
  • Fix ObjectKVStore compatibility with throwing autoloaders #1451
  • Properly report error for artisan command in Laravel 7+ #1456 (thank you @ls-paul-julien-vauthier)

Internal changes

  • Migrate ZAI tests to use ZAI SAPI harness #1457
  • Move ZAI SAPI to root directory #1411 #1443
  • ZAI methods on PHP 5: Args and retval #1401
  • Implement ZAI Value interface #1453
  • Implement ZAI SAPI test harness (catch2) #1455
  • Implement ZAI SAPI test fixture (catch2) #1458
  • Refactor ZAI SAPI into Tea SAPI, brings various improvements #1462
  • Implement ZAI Symbols interface #1452
  • Address Sanitizer check for ZAI SAPI - 1459
  • Fix ZaiSapi_ROOT path in Makefile #1443
dd-trace-php - 0.68.2

Published by SammyK almost 3 years ago

Changed

  • Clean up generate-final-artifact.sh #1442

Fixed

  • Replace direct access of meta/metrics zvals by safe array access in most places #1440 (thank you @mente for the report and the repro!)
  • Always separate meta and metrics arrays on access #1441
  • Bump profiling to v0.3.0-rc.6 (fixes some linking bugs) #1444
dd-trace-php - 0.68.1

Published by labbati almost 3 years ago

Fixed

  • Do not diagnostics when ddtrace is disabled #1434
  • Fix json symbol address resolving logic #1432
  • Disable tracing when PHP is executed during RINIT #1429
  • Change Predis integration type to "redis" #1427
dd-trace-php - 0.68.0

Published by labbati almost 3 years ago

Note: the internal structure of the newly released dd-library-php-x86_64-linux-*.tar.gz archive is intended for internal use and might vary in the future.

Added

  • Bring priority sampling to internal #1366
  • SpanData::$parent property #1369
  • Add queue and channel components #1388
  • Add log component #1390
  • Add arena component #1391
  • Add stack sample component #1392
  • Add uuid component #1393
  • Add time component #1394, #1408
  • Add profiler installation #1422
  • Zai/json #1378, #1397
  • Add Code Coverage #1389

Changed

  • (PHP 8) Migrate ObjectKVStore to WeakMap internally #1362
  • Adjust components #1387
  • Export only specific symbols #1407
  • Sanitize user information from urls #1396
  • Split INI setting in installer so they can be added separately when missing #1415
  • Use the new targz bundle format with the new PHP installer #1421
  • Have both legacy and new installer to fail when json PHP extension is not enabled #1410

Fixed

  • Fix Laravel unnamed route with caching and domain specification #1364
  • Fix http.url of internal root span #1360
  • Add small framework to stress test our internal API with bogus inputs #1365
  • PDOIntegration::parseDSN fails to parse some DSN #1373
  • Fix constructor of OpenTracing wrapper when no Datadog tracer is provided #1406 - thanks @OGKevin for the reproduction case
  • Fix parsing of urls without schema into host name #1385
dd-trace-php - 0.67.0

Published by labbati almost 3 years ago

Added

  • (PHP 5) Add zai config, internal spans, and exception handling (#1339)
  • (PHP 7, 8) Add mongodb instrumentation (#1345)
  • PHP installation script (beta) (#1335)

Changed

  • (PHP 5, 7) Move _dd.origin handling to internal #1347

Fixed

  • (PHP 7, 8) Fix exception handling with opcache cfg optimization enabled (#1344)
  • (PHP 7, 8) Fix memory leaks in curl and error handling (#1350)
  • Use ObjectKVStore in place of internal registry to store PDO connection parameters (#1355)
dd-trace-php - 0.66.0

Published by labbati about 3 years ago

⚠️ Breaking changes ⚠️

  • Global tags are now assigned early. This means that users have to make sure to not overwrite meta, but only add to it instead, if they don't want to lose global tags. Wrong: $span->meta = [ 'some' => 'tag' ]. Correct $span->meta['some'] = 'tag'.
  • Support for legacy param DD_TRACE_RESOURCE_URI_MAPPING has been dropped with the migration to C code, after more than a year of deprecation. Use DD_TRACE_RESOURCE_URI_FRAGMENT_REGEX, DD_TRACE_RESOURCE_URI_MAPPING_INCOMING, and DD_TRACE_RESOURCE_URI_MAPPING_OUTGOING instead. See resource mapping for more details.

Added

  • (PHP 8) Migrate _dd.origin and distributed header sending to internal (#1267)
  • (PHP 5) Add headers ZAI implementation (#1308)
  • Add support for PHP 8.1 (#1297)

Changed

  • (PHP 7, 8) Internal (root) span initialization (#1329)

Fixed

  • (PHP 5, 7, 8) Remove all lines containing zai_sapi from config.m4 (#1333)
  • (PHP 7, 8) Fix unnamed service spans caused by improper handling of DD_TRACE_ENABLED (#1332)
dd-trace-php - 0.65.1

Published by labbati about 3 years ago

Fixed

  • Prevent flushing traces of requests without actual PHP code #1327
dd-trace-php - 0.65.0

Published by labbati about 3 years ago

WARNING: Resource names for “Lumen” applications will change by default to GET /actual/uri/path from the previous format GET action_name or GET App\Controller@action_method. You might need to adjust your monitors and filters for the change. In order to go back to the previous behavior, instead, you can temporarily set DD_TRACE_URL_AS_RESOURCE_NAMES_ENABLED=false

Added

  • Add functions ZAI support for PHP 5 and 7 #1300
  • Add properties and exceptions ZAI implementations for PHP 5 #1306
  • Enhance exception reporting on Laravel 5+ #1322

Changed

  • Remove src/dd-doctor.php #1316
  • Honor DD_TRACE_URL_AS_RESOURCE_NAMES_ENABLED in Lumen resource naming #1318

Fixed

  • Fix CLI processes emitting empty root spans when CLI tracing is not enabled #1320
dd-trace-php - 0.64.1

Published by labbati about 3 years ago

WARNING: Users doing manual instrumentation using the GlobalTracer::get()->startActiveSpan() api should update to this version from 0.63.0 and 0.64.0.

Fixed

  • Fix span start times of userland spans (#1312)