All notable changes to this project will be documented in this file, in reverse chronological order by release.
- #249 Added HTTP spans for file_get_contents and curl_exec
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #252 Fix for Composer 2.2.3 where phpvfscomposer stream added
- Nothing.
- #246 Updated Core Agent version to 1.4.0
- Nothing.
- Nothing.
- Nothing.
- #238 Add scheduled CI run every month to ensure compatibility with dependency updates
- #240 Add support for psr/log ^1.0|^2.0|^3.0, and added Roave/BackwardCompatibilityCheck to CI
- #241 Added support for aarch64 Linux and arm64 M1 Macs
- #236 Replace
doctrine/cache
withcache/array-adapter
in tests- Note - this change only affects our internal tests, the
Agent
still depends on any PSR-16 compatible cache (includingdoctrine/cache
)
- Note - this change only affects our internal tests, the
- #237 Made 'leaf span' recording more efficient so child spans are not recorded at all
- Nothing.
- Nothing.
- Nothing.
- #228 Added configuration for URL Path and query parameter filtering
- #233 Adjusted log levels
- Default log level is
debug
again to assist in support enquiries - Reduced log level of span limit being reached to
info
- Increased span limit to 3000
- Default log level is
- Nothing.
- Nothing.
- #229 Updated
scoutapm.stub.php
stub to match latest extension version - #227 Fixed "double logging" of SQL queries with new "leafNode" flag on spans
- #231 Fixed how TwigMethods traits are included to work with Composer optimised autoloader properly
- #232 Ensure
uri_filtered_params
are coerced from JSON
- #224 Integrated with MongoDB APM hook
- #226 Increased recommended extension version to 1.4.0
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #221 Change default log level to "warning"
- #216 Log invalid log levels and default to "debug" (thanks @pjohnmeyer)
- Nothing.
- Nothing.
- #222 Added guard against json_encode returning false
- #210 Add support for Lumen 6+
- Nothing.
- Nothing.
- Nothing.
- #213 Fix X-Request-Start header not being recognised in some situations
- #214 Additional type checking for rootPackageGitSha method
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #208 Prevent calling socket_create prior to connection attempt
- #202 Added support for PHP 8
- #204 Merge
scoutapp/scout-apm-laravel
library intoscoutapp/scout-apm-php
- #205 Merge
scoutapp/scout-apm-symfony-bundle
library intoscoutapp/scout-apm-php
- Nothing.
- Nothing.
- #206 [BC] Removed
\Scoutapm\Events\Span\Span::INSTRUMENT_*
constants- You must use
\Scoutapm\Events\Span\SpanReference::INSTRUMENT_*
constants instead. - See issue #196.
- You must use
- Nothing.
- Nothing.
- #200 Replace usage of
ocramius/package-versions
withcomposer-plugin-api:^2.0
if available.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #198 Adjust log level for
Response length returned (%d) exceeded our limit for reading (%d)
message
- Nothing.
- Nothing.
- Nothing.
- #190 Added check to ensure response length is not larger than a reasonable limit (10mb currently) to avoid allocating too much memory on reading responses.
- #195 Added a TTL to metadata cache status of 10 minutes. This means metadata will be sent more often (every ~10 minutes) than just once per cache clear.
- Nothing.
- #194 Deprecated
Span::INSTRUMENT_*
constants. Use theSpanReference::INSTRUMENT_*
constants instead.Span::INSTRUMENT_*
constants will be removed in6.0.0
.
- Nothing.
- Nothing.
- #185 Added support for TCP communication to core-agent via a
tcp://
formatted URI and set as default strategy.
- #187 [BC] Limit number of spans to 1,500
- Span information collected is hard-limited to 1,500 spans to avoid collecting too much data. A new
notice
will be emitted into the logger if this happens, and aTagRequest
applied. \Scoutapm\ScoutApmAgent::startSpan
may now returnnull
. A not-null
-check should be performed on the result, for exampleif ($span !== null) { ... }
.\Scoutapm\ScoutApmAgent::startSpan
now returns a\Scoutapm\Events\Span\SpanReference
which is a new public API for accessing aSpan
(which is marked@internal
).\Scoutapm\ScoutApmAgent::instrument
,::webTransaction
,::backgroundTransaction
all now acceptcallable
for their respective$block
parameters instead of\Closure
. Additionally, if a parameter type declaration has been applied on the givencallable
, they must be updated to accept anull
able?SpanReference
instead of aSpan
. For example changestatic function (Span $span) { ... }
tostatic function (?SpanReference $span) { ... }
.
- Span information collected is hard-limited to 1,500 spans to avoid collecting too much data. A new
- #183 Try to filter out all
vendor/
files from backtraces
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #177 Fixes libraries in metadata serialisation
- Nothing.
- #178 Make GitLab Actions work for CI with SCOUT_APM_KEY
- #177 Updated dependencies (and allow ramsey/uuid ^4.0)
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #175 Upgraded core-agent version to 1.2.9
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #173 Updated to use core-agent 1.2.8
- Nothing.
- Nothing.
- Nothing.
- #172 Option to display payload content in debugging logs
- #164 Added additional logging and testing around core-agent launching
- #170 Always use musl instead of trying to detect libc flavour
- Nothing.
- Nothing.
- #169 Fixed queue time calculation for various scales
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #158 Fixed bug where cyclic references would cause memory leak in long-running processes
- Nothing.
- #156 Added configuration option
disabled_instruments
to be used by framework specific bindings - #155 More test coverage
- Nothing.
- Nothing.
- Nothing.
- #151 Add check to make sure we have a recent version of the PHP extension
- #149 Capture request queue time
- #152 Added some Agent test coverage
- #150 Updated framework/framework version to come from configuration, not hard-coded
- Nothing.
- Nothing.
- Nothing.
- #148 [BC] Added new method
Scoutapm\ScoutApmAgent::startNewRequest
- implementors of
Scoutapm\ScoutApmAgent
will now need to implement this new method
- implementors of
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #140 Increase core version to 1.2.7
- Fixes some upstream bugs with payload delivery
- #141 Only tag args from PHP internal functions if there are any
- Nothing.
- Nothing.
- #144 Suppress notices/errors emitted from socket calls
- #145 Only register with core agent once per connection
- #146 Do not pre-emptively connect if monitoring is disabled
- Reset the request after each call to
send()
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #130 Correctly handle warnings raised during core agent connections
- #131 Support PHP 7.4
- #133 Removed incorrect auto detection of SCM subdirectory
- #134 Catch exceptions raised whilst sending metadata
- Nothing.
- Nothing.
- Nothing.
- #110 Added
language_version
key to be sent with metadata - #111 #115 #117 Added more debug logging to isolate issues easier
- #118 Added detection of
musl
by checking if/etc/alpine-release
exists - #123 [BC] Third parameter for
\Scoutapm\Agent::fromConfig
is now a\Psr\SimpleCache\CacheInterface
implementation (null
-able)- Unlikely to affect most customers, unless they explicitly provided a
\Scoutapm\Connector\Connector
implementation to theAgent
- Unlikely to affect most customers, unless they explicitly provided a
- [BC]
\Scoutapm\Connector\Connector::sendCommand
now returnsstring
notbool
- Unlikely to affect most customers, unless they wrote a custom implementation of
\Scoutapm\Connector\Connector
- Unlikely to affect most customers, unless they wrote a custom implementation of
- [BC]
\Scoutapm\Agent::fromConfig()
second parameter for a\Psr\Log\LoggerInterface
implementation is no longer optional- You should pass in an implementation of
\Psr\Log\LoggerInterface
as the second parameter - If you do not want logging, you can use
\Psr\Log\NullLogger
(although this is not advisable)
- You should pass in an implementation of
- #127 Updated core agent version to
1.2.6
- Nothing.
- [BC]
\Scoutapm\Agent::__construct
is now private- Use the named constructor
\Scoutapm\Agent::fromConfig()
instead
- Use the named constructor
- [BC]
\Scoutapm\Agent::fromDefaults()
named constructor was removed- For exactly matching behaviour, use
::fromConfig(new \Scoutapm\Config(), new \Psr\Log\NullLogger())
- For exactly matching behaviour, use
- #126 Fixing bug with instrumentation delivery to dashboard
- #124 Handle warning that was escaping from
socket_connect
- Nothing.
- #106 Improved error message when invalid log level given for
log_level
configuration - #109 Updated installation instructions to remove
-alpha
flag from PHP extension
- Nothing.
- Nothing.
- Nothing.
- #83 New
\Scoutapm\Config\ConfigKey
class containingpublic const
s for configuration key names - #83 Added config key
log_level
which overrides Scout APM's minimum log level - #88 Added more new config keys:
application_root
(defaults tocomposer.json
location, or$_SERVER['DOCUMENT_ROOT']
scm_subdirectory
(defaults to.git
location, orapplication_root
value)revision_sha
(defaults to version detected byocramius/package-versions
)hostname
(defaults to value ofgethostname()
)core_agent_permissions
(defaults to0777
)
- Added warning when
name
orkey
configurations are not set - #93 All log messages are prepended with
[Scout]
- #81 Build status badges added to README
- #89 Added memory usage statistics to request
- #96 Suppress backtraces for Controller, Job, and Middleware spans
- #102 Tag the request URI automatically with
$_SERVER['REQUEST_URI']
or override with alternative - #103 Update CoreAgent to 1.2.4
- #83 [BC] Renamed the following configuration keys
log_level
=>core_agent_log_level
log_file
=>core_agent_log_file
config_file
=>core_agent_config_file
socket_path
=>core_agent_socket_path
download_url
=>core_agent_download_url
- #84 Improved stack trace filtering
- #92 CI updated to use
pecl
to install scoutapm extension
- Nothing.
- Nothing.
- #91 Fixed missing request stop timestamp
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #80 Corrected naming of core agent config values
- Nothing.
- #78 Lock CoreAgent version to 1.2.2
- #76 Always provide
--log-file
parameter for core agent - #72 Added an interface for the agent
Scoutapm\ScoutApmAgent
- #55 Support fetching function call arguments from PHP ext
- Nothing.
- Nothing.
- Nothing.
- Nothing.
- #47 Internal data model now preserves order
- #50 Loosen several dependency version requirements
- #48 Licensed as MIT
- #42 #54 Initial support for Scout Native Extension
- #43 Updated default socket path
- #46 Added integration test execution into CI
- #39 Fetch
git_sha
metadata fromocramius/package-versions
- Nothing.
- Nothing.
- Nothing.
- #33 Added
ignore
configuration option - #32 Pass metadata along with each request made to Scout
- #31 Added coercion for JSON-formatted configuration values
- #34 Large refactoring internally
- API for creating the agent should be
Agent::fromConfig(Config::fromArray([]))
at minimum - Most of what is intended to be "internal" with no promise of BC is now marked
@internal
- Strict type hints introduced throughout the library
- Internal interfaces for
\Scoutapm\Connector\Connector
,\Scoutapm\CoreAgent\Manager
, etc. introduced - Applied
doctrine/coding-standard
throughout - Applied Psalm static analysis throughout
- API for creating the agent should be
- Nothing.
- Nothing.
- #38 Fixed agent launch bug
- Initial Release. See documentation at https://docs.scoutapm.com
- Nothing.
- Nothing.
- Nothing.
- Nothing.