3.0.0
Logs, logs, logs and more:
- Dedicated logging: new first-class logger on
$flare->log()that records messages in the OpenTelemetry log format, replacingreportMessage(). Log levels now use Monolog'sLevelenum. See Logs. - Dynamic sampling: new
DynamicSamplerwithSamplingRuledefinitions, letting you sample per entry point (e.g. health checks at 0%, checkout flows at 100%) without writing a custom sampler. See Sampling. - W3C traceparent aware sampling: samplers now receive an
?bool $parentSampledand can honor (or override) the inherited decision. - Job and queue recorders: first-class
JobRecorderandQueueRecorderas part of the standard recorder pipeline. See Jobs and queues. - Subtask mode: jobs and commands executed inside an existing trace attach as subtasks instead of starting a new root trace.
- Entry points: new
EntryPointvalue object resolved viaEntryPointResolver, replacing the looseentryPointClassarguments and array context passed to samplers. - Attribute providers: recorders now accept dedicated
RequestAttributesProvider,ResponseAttributesProvider,RouteAttributesProvider,CommandAttributesProvider,JobAttributesProvider, andUserAttributesProvidercontracts, replacing ad-hoc recorder arguments. See Attribute providers. - Lifecycle: new
Lifecycleclass on$flare->lifecyclethat owns flushing, resets, and internal state previously exposed onFlare. See Application lifecycle. - Flare daemon bundled by default:
DaemonSenderships with the client and routes errors, traces, and logs through the local Flare daemon, with curl fallback when it's unreachable. Flareaccessors are now properties:$flare->tracer,$flare->backTracer,$flare->sentReports,$flare->ids,$flare->time,$flare->lifecycle,$flare->logger,$flare->reporterare public readonly properties.- Removed: error solutions (
collectSolutions(),withSolutionProvider(),AddSolutionsmiddleware, thespatie/error-solutionsdependency). - Removed:
reportMessage(),includeStackTraceWithMessages(),MessageLevelsenum,sendReportsImmediately(),Flare::reset(),$flare->application(). - Renamed:
collectLogs()→collectLogsWithErrors(),ignoreLogs()→ignoreLogsWithErrors(),Tracer::addRawSpan()→addSpan().
Full upgrade notes in UPGRADING.md.