dd-trace-php

Datadog PHP Clients

OTHER License

Downloads
12.2M
Stars
464
Committers
76

Bot releases are hidden (Show)

dd-trace-php - 0.48.0

Published by morrisonlevi about 4 years ago

Important!

The legacy API for custom instrumentation dd_trace() is now a no-op in this release. See the upgrade guide for instructions on upgrading.

The way PHP 5.4 and 5.6 hook into the engine has changed. Please read deep call stacks on PHP 5 for more information on potential issues.

All calls to DDTrace\trace_function or DDTrace\trace_method functions need to happen before the first invocation of the target e.g. DDTrace\trace_function('foo', ...) should be done before foo is called for the first time. In the future this may need to be done before the target is even defined. This was previously noted in 0.45.0, but is now enforced for all PHP versions.

Added

  • Deferred initialization of integrations, and matching integration to a callable at compile time #891 #972
  • Test for non-zero durations #950
  • Add support for PHPRedis 3 extension on PHP 7 #948
  • Add support for PHPRedis 4 extension on PHP 7 #982
  • Add support for PHPRedis 5 extension on PHP 7 #983
  • Add non-tracing API (hook_function/hook_method) #984

Changed

  • Improve CGI usage in test suite #952 (thank you @remicollet!)
  • Remove ddtrace.strict_mode INI setting #955
  • Sandbox PHP 5.6 using zend_execute_ex + zend_execute_internal #970
  • Package _generated.php with PECL #980
  • Move startup logs behind debug mode #986
  • Split PHP 7's opcode handlers for previous case #987
  • Sandbox PHP 5.4, cache negative lookups on PHP 5, and delete integrations using dd_trace #988
  • Cleanup PHP 7 curl handlers #989
  • Update dd_trace warning for being a no-op #990
  • Defer loading of PHPRedis #992
  • Defer loading of Predis #994

Fixed

  • Compatibility issues with PECL #845 (thank you @remicollet!)
  • Fix package.xml validation for PECL #954
  • Removed obsolete pre-integrations loading check from dd-doctor.php #956
  • Fix off-by-one error with longest config name for integrations #985
dd-trace-php - 0.47.1

Published by SammyK about 4 years ago

Deprecation notice: The following environment variable names have changed. The old names are deprecated. See #969 for more details.

Old Name New Name
DD_<INTEGRATION>_ANALYTICS_ENABLED DD_TRACE_<INTEGRATION>_ANALYTICS_ENABLED
DD_<INTEGRATION>_ANALYTICS_SAMPLE_RATE DD_TRACE_<INTEGRATION>_ANALYTICS_SAMPLE_RATE
DD_INTEGRATIONS_DISABLED DD_TRACE_<INTEGRATION>_ENABLED

Added

  • Add DD_TRACE_AGENT_URL environment support #926 (thank you @nurcahyo!) #962
  • Support for DD_TRACE_<INTEGRATION>_<SUFFIX> env vars #969
  • Deeper instrumentation of Symfony 4.4 #967

Fixed

  • Move startup logging to first RINIT #961
  • Fix propagation of DD_ENV and DD_VERSION to children spans #963
  • Remove query string when new resource mapper is used #973
dd-trace-php - 0.47.0

Published by morrisonlevi over 4 years ago

Deprecation notice:

  • Setting service name via DD_SERVICE_NAME is now deprecated and will be removed in a future release. Use DD_SERVICE instead for consistency with other Datadog tracers and services.
  • Setting global tags via DD_TRACE_GLOBAL_TAGS is now deprecated and will be removed in a future release. Use DD_TAGS instead (with the same format) for consistency with other Datadog tracers and services.
  • DD_TRACE_RESOURCE_URI_MAPPING is deprecated now that it has been split into DD_TRACE_RESOURCE_URI_MAPPING_INCOMING and DD_TRACE_RESOURCE_URI_MAPPING_OUTGOING.
  • The functions dd_trace and dd_trace_forward_call are deprecated and will be made a no-op in the next release. See #924 for how to migrate.
  • When setting DD_ENV, make sure to remove any existing env:* references from DD_TAGS/DD_TRACE_GLOBAL_TAGS.

Added

  • Apply new uri to resource normalization rules #928
  • Add DDTrace namespace for internal functions #930
  • Startup logging (can be disabled by setting DD_TRACE_STARTUP_LOGS=0) #935

Changed

  • Sandboxed cURL (PHP 5) #911, #938
  • Sandbox Lumen (PHP 5) #945
  • Sandboxed Symfony (PHP 5) #946
  • Add support for service name configuration via DD_SERVICE #919
  • Add support for DD_TAGS, fallback to DD_TRACE_GLOBAL_TAGS #920
  • Add support for DD_VERSION and DD_ENV variables #803 - thanks @brettlangdon
  • Enable OpenTracing test suite in CI #921
  • Defaults for name and resource on SpanData #923
  • Refactor dispatch.{c,h} #932
  • Extract ddtrace_sandbox_begin/ddtrace_sandbox_end helpers #940
  • Warn on dd_trace usage if DD_TRACE_WARN_LEGACY_DD_TRACE #941

Fixed

  • Only build on 64-bit platforms #929 (thanks for the report @remicollet)
  • (PHP 5.4) Make compilation to single file compatible with include __DIR__ . '...' in files #943
dd-trace-php - 0.46.0

Published by morrisonlevi over 4 years ago

Important behavior changes in this release

If you use the OpenTracing API, the OpenTracing compatible tracer will no longer be returned from OpenTracing\GlobalTracer::get automatically. See #899 or the documentation for more details.

On PHP 7, dd_trace will no longer work on internal functions e.g. curl_exec; use dd_trace_method or dd_trace_function instead. Additionally, when targeting internal functions they also need to be added to the environment variable DD_TRACE_TRACED_INTERNAL_FUNCTIONS which is a comma separated list e.g. DD_TRACE_TRACED_INTERNAL_FUNCTIONS=array_sum,mt_rand,DateTime::add. These two changes enable a significant performance optimization.

Changed

  • Avoid usage of spl_autoload_register while still allowing noop manual instrumentation without ext installed #877
  • Sandbox Slim integration #878
  • Sandbox Lumen integration #884
  • Sandbox CakePHP integration #898
  • Remove legacy hook for OpenTracing #899
  • Noop the legacy API when a potentially conflicting module detected #900, #905
  • Move the request init hook to auto_prepend_file #907
  • Optimize internal functions handlers at startup (PHP 7) #895

Fixed

  • Fix early return in dd-doctor #894 (thank @tatsuo48!)
  • Fix opcache check in dd-doctor #896 - thanks @tatsuo48
  • Update CONTRIBUTING.md #897 - thanks @askkaz
dd-trace-php - 0.45.2

Published by labbati over 4 years ago

Fixed

  • Be compatible with psr4 composer autoloading now that we have non-psr4 config functions #889
dd-trace-php - 0.45.1

Published by labbati over 4 years ago

Fixed

  • Fix uncaught exceptions with auto flushing enabled #882
  • Prevent curl and guzzle from inheriting top level app name #885
  • Change PDO service name to lowercase #886
dd-trace-php - 0.45.0

Published by labbati over 4 years ago

Important behavior changes in this release

If you are using dd_trace, dd_trace_function, or dd_trace_method then you need to call these functions before the first invocation of the target e.g. dd_trace('foo', ...) should be done before foo is called for the first time. In the future this may need to be done before the target is even defined.

Changed

  • Compile to one single file #840, #874
  • Simplify configuration #833, #870
  • Refactor module blacklist #852
  • Cache that a function is not traced #854, #863
  • Simplify spl_autoload_register instrumentation #867
  • Use normalized URL as the resource name for curl #869 (thanks, @akdh!)
  • Sandbox header and http_response_code #875

Fixed

  • Fix variadic args with empty function signature #872
  • Bump phpstan to 0.12 and fix issues #841
dd-trace-php - 0.44.1

Published by morrisonlevi over 4 years ago

Fixed

  • Revert "Merge pull request #815 from DataDog/levi/ddtrace_moment" #859
    This fixes issue #855.
dd-trace-php - 0.44.0

Published by labbati over 4 years ago

WARNING: use 0.44.1: this version presents a bug in specific builds of PHP and we recommend using version 0.44.1+ instead.

Fixed

  • Fix ddtrace_config_* functions to use sapi_getenv #848
  • Fix curl integrations #851

Changed

  • Whitelist the cgi-fcgi SAPI #835
  • Add ddtrace_hash_find_ptr_lc which stack-allocates small strings #839
dd-trace-php - 0.43.0

Published by labbati over 4 years ago

WARNING: use 0.44.1: this version presents a bug in specific builds of PHP and we recommend using version 0.44.1+ instead.

Important notes for this release:

  • This release comes with minor behavior changes for tracing closures on PHP 7. Please see the PR for details.
  • This release removes support for the already deprecated environment variables ddtrace_app_name and DD_TRACE_APP_NAME. Use DD_SERVICE_NAME instead.

Added

  • Service mapping with DD_SERVICE_MAPPING=pdo:payments-db,mysqli:orders-db #801, #817
  • Auto flushing with DD_TRACE_AUTO_FLUSH_ENABLED=1 (PHP 7) #819, #826
  • Disable automatic root-span creation with DD_TRACE_GENERATE_ROOT_SPAN=0 #834

Changed

  • Always return unaltered VM dispatch (PHP 7) #762
  • Uri to resource name ON by default #798
  • Sandbox Guzzle #809, #816
  • Sandbox predis integration #813
  • Sandbox curl (PHP 7) #814, #817, #831
  • Convert pid from long to string for internal spans #825
  • Move some Configuration methods to functions written at the C level #829
dd-trace-php - 0.42.0

Published by labbati over 4 years ago

Added

  • Close open sandboxed spans on exit (PHP 5) #780
  • Prehook feature to run tracing closures before the original call #784

Changed

  • Enable background sender (BGS) by default #796, #800
    - Improves alpine extensions build/verify process #774
  • Refactor Symfony integration #786
  • Let curl calculate Content-Length header value when sending requests to the agent #804

Fixed

  • Pass return value as null to tracing closure when value IS_UNDEF #791 (thanks for the report @wajdisawaf!)
  • Set a sane memory limit when running php from inside post-install hook #792
dd-trace-php - 0.41.1

Published by morrisonlevi over 4 years ago

Fixed

  • Fix pecl installs #781
  • Fix background sender logging for ZTS #783
dd-trace-php - 0.41.0

Published by SammyK over 4 years ago

Added

  • Put compile_file hook behind a feature flag, default on #757

Changed

  • Require curl at configuration time #766
  • Log background sender messages to error_log #776
  • Deprecate manual usage of legacy Symfony bundles and Laravel provider #772
  • Separate background sender timeout env vars from userland #773

Fixed

  • Gracefully handle a dropped span on exit #765
  • Update contribution guidelines #769
  • Trace http response code when set via function 'http_response_code' #755 - thanks @aderiyenko
  • Fix execinfo on builds from source in Alpine containers #752
dd-trace-php - 0.40.0

Published by SammyK over 4 years ago

Added

  • Background sender debug info in dd-doctor #758

Changed

  • Run neighboring extension's opcode handlers before instrumenting #754

Fixed

  • Circuit breaker should not prevent background sender #760
dd-trace-php - 0.39.2

Published by morrisonlevi over 4 years ago

Fixed

  • Traces are flushed when in limited mode #745

Changed:

  • Tracer will disable itself when an unsupported SAPI is detected #742
  • Move the "Found blacklisted module" message to the debug level #742
  • Increase connect timeout for background sender #744
dd-trace-php - 0.39.1

Published by morrisonlevi over 4 years ago

Important: There was an error made while creating this release; please use 0.39.2 instead.

dd-trace-php - 0.39.0

Published by SammyK over 4 years ago

Changed:

  • Bring background sender to feature parity #738
dd-trace-php - 0.38.1

Published by SammyK over 4 years ago

Fixed

  • MessagePack serialization with a reference #730
dd-trace-php - 0.38.0

Published by labbati over 4 years ago

Added

  • Official support for PHP 7.4 #723

Changed

  • Move Laravel to sanboxed api #700
  • Remove the sandbox API for PHP 5.4 #719
  • Dual-licensed under Apache 2.0 or BSD3 #727

Fixed

  • README reference to RELEASING.md was removed #720 (thanks @v1v!)
dd-trace-php - 0.37.1

Published by labbati almost 5 years ago

Fixed

  • Set global tags in internal spans #716