/** * @param \Nette\Application\Application $application * @param \Nette\Application\Request $request */ public function __invoke(Application $application, Request $request) { if (PHP_SAPI === 'cli') { newrelic_background_job(TRUE); } $params = $request->getParameters(); $action = $request->getPresenterName(); if (isset($params[$this->actionKey])) { $action = sprintf('%s:%s', $action, $params[$this->actionKey]); } if (!empty($this->map)) { foreach ($this->map as $pattern => $appName) { if ($pattern === '*') { continue; } if (Strings::endsWith($pattern, '*')) { $pattern = Strings::substring($pattern, 0, -1); } if (Strings::startsWith($pattern, ':')) { $pattern = Strings::substring($pattern, 1); } if (Strings::startsWith($action, $pattern)) { \VrtakCZ\NewRelic\Tracy\Bootstrap::setup($appName, $this->license); break; } } } newrelic_name_transaction($action); newrelic_disable_autorum(); }
public function loadConfiguration() { $config = $this->getConfig(); if ($this->skipIfIsDisabled && (!extension_loaded('newrelic') || !Bootstrap::isEnabled())) { $this->enabled = FALSE; } if (isset($config['enabled']) && !$config['enabled']) { $this->enabled = FALSE; } $this->setupRUM(); if (!$this->enabled) { return; } if (!extension_loaded('newrelic')) { throw new \RuntimeException('NewRelic extension is not loaded'); } elseif (!Bootstrap::isEnabled()) { throw new \RuntimeException('NewRelic is not enabled'); } $this->setupApplicationOnRequest(); $this->setupApplicationOnError(); }
/** * @param string $function functionName / ClassName::functionName */ public static function addTracer($function) { if (\VrtakCZ\NewRelic\Tracy\Bootstrap::isEnabled()) { newrelic_add_custom_tracer($function); } }
/** * @param string $name * @param mixed $value */ public static function addParameter($name, $value) { if (\VrtakCZ\NewRelic\Tracy\Bootstrap::isEnabled()) { newrelic_add_custom_parameter($name, $value); } }
/** * @param string $name * @param float $value miliseconds */ public static function addMetric($name, $value) { if (\VrtakCZ\NewRelic\Tracy\Bootstrap::isEnabled()) { newrelic_custom_metric('Custom/' . $name, $value); } }