Esempio n. 1
0
 public static function load()
 {
     if (!class_exists('Tideways\\Profiler')) {
         return;
     }
     \Tideways\Profiler::watchCallback('Cake\\Controller\\Controller::invokeAction', function ($context) {
         $controller = $context['object'];
         if (!$controller->request || !$controller->isAction($controller->request->params['action'])) {
             return;
         }
         $title = get_class($controller) . '::' . $controller->request->params['action'];
         $span = \Tideways\Profiler::createSpan('php.ctrl');
         $span->annotate(['title' => $title]);
         return $span->getId();
     });
     \Tideways\Profiler::watchCallback('Cake\\View\\View::render', function ($context) {
         $view = $context['args'][0] ?: get_class($context['object']);
         $span = \Tideways\Profiler::createSpan('view');
         $span->annotate(['title' => $view]);
         return $span->getId();
     });
     \Tideways\Profiler::watchCallback('Cake\\Event\\EventManager::dispatch', function ($context) {
         $event = is_object($context['args'][0]) ? $context['args'][0]->name() : $context['args'][0];
         $span = \Tideways\Profiler::createSpan('event');
         $span->annotate(['title' => $event]);
         return $span->getId();
     });
     \Tideways\Profiler::watchCallback('Cake\\Event\\EventManager::_callListener', function ($context) {
         $listener = $context['args'][0];
         if (is_array($listener)) {
             $title = get_class($listener[0]) . '::' . $listener[1];
         } else {
             return;
             // only support object listeners
         }
         $span = \Tideways\Profiler::createSpan('php');
         $span->annotate(['title' => $title]);
         return $span->getId();
     });
     \Tideways\Profiler::watch('Cake\\ORM\\Table::schema');
 }
Esempio n. 2
0
<?php

require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/../src/FileDumperBackend.php';
\Tideways\Profiler::setBackend(new \Cotya\TideGauge\FileDumperBackend());
\Tideways\Profiler::start(['api_key' => 'random_api_key', 'sample_rate' => 100]);
\Tideways\Profiler::setTransactionName("cli:" . basename($_SERVER['argv'][0]));
\Tideways\Profiler::watch('TestClass::FooBar');
\Tideways\Profiler::watch('Composer\\Autoload\\ClassLoader::loadClass');
class TestClass
{
    public function __construct()
    {
    }
    public function FooBar()
    {
    }
}
function createRandomString()
{
    $test = new TestClass();
    $test->FooBar();
    return "42";
}
//ld('start test');
$strings = [];
for ($i = 0; $i < 3; $i++) {
    $strings[] = createRandomString();
}
\Tideways\Profiler::stop();