aeatech/snapshot-profiler-newrelic

Snapshot profiler newrelic

Installs: 9

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/aeatech/snapshot-profiler-newrelic

1.0.0 2025-12-18 16:06 UTC

This package is not auto-updated.

Last update: 2025-12-19 14:20:59 UTC


README

Code Coverage

The package contains implementation of aeatech/snapshot-profiler-contracts to profile applications with newrelic. It can be used for production profiling.

System requirements:

  • PHP >= 8.2
  • ext-newrelic (tested on 12.1+)

Installation (Composer):

composer require aeatech/snapshot-profiler-newrelic

Quick start

<?php
declare(strict_types=1);

use AEATech\SnapshotProfiler\Profiler;
use AEATech\SnapshotProfilerNewrelic\Adapter;
use AEATech\SnapshotProfilerNewrelic\Saver;

require_once 'vendor/autoload.php';

/**
 * Start initialization
 */
$saver = new Saver();
$adapter = new Adapter('appName', 'license');
$profiler = new Profiler($adapter);
$profilingOptions = [
    Adapter::OPTION_KEY_SNAPSHOT_NAME => 'snapshot name',
    /**
     * It must be true for cli processes or false for web processes
     */
    Adapter::OPTION_KEY_IS_BACKGROUND_PROCESS => true,
    Adapter::OPTION_KEY_CUSTOM_PARAMETERS => [
        'parameter 1' => true,
        'parameter 2' => 2,
        'parameter 3' => 3.14,
        'parameter 4' => 'string value',
    ],
];
/**
 * End initialization
 */

/**
 * Start profiling
 */
$profiler->enable();
$profiler->setProfilingOptions($profilingOptions);

for ($i = 0; $i < 10; $i++) {
    random_int(1, 10);
}

/**
 * $data is always empty and added for backward compatibility with xhprof
 */
$data = $profiler->disable();
/**
 * End profiling
 */

/**
 * Start customization (not necessarily)
 */

/**
 * Save profiling result
 * It's doing nothing and added for backward compatibility with xhprof
 */
$saver->save($data);

License

MIT License. See LICENSE for details.