Для некоторого сервиса мы хотим видеть только несколько частей каждой транзакции — все, кроме внешних веб-сервисов.
я обнаружил newrelic_ignore_apdex
а также newrelic_ignore_transaction
методы Вот.
Но вызов этих методов будет игнорировать всю транзакцию, а не только конкретную часть.
Есть ли способ полностью игнорировать часть транзакции?
Если бы я понял ваши потребности, возможно, было бы более целесообразно использовать
newrelic_end_of_transaction () или newrelic_end_transaction ([игнорировать])
остановить запись транзакции в определенный момент
вместе с newrelic_start_transaction (имя приложения [, лицензия])
если вам нужно открыть транзакцию позже.
вы найдете их обоих здесь https://docs.newrelic.com/docs/agents/php-agent/configuration/php-agent-api
Цитирование из документов NewRelic
newrelic_end_of_transaction ()
function newrelic_end_of_transaction (): null
Немедленно прекратите запись веб-транзакции. Обычно используется, когда
страница выполнена со всеми вычислениями и собирается передавать данные (файл
загрузка, передача аудио или видео и т. д.), и вам не нужно время
принятый к потоку, чтобы быть посчитанным как часть транзакции. Это
особенно актуально, когда время, необходимое для завершения операции
полностью за пределами вашего приложения. Например, пользователь
при очень медленном соединении загрузка может занять очень много времени, даже если
небольшие файлы, и вы не хотели бы, чтобы время загрузки искажало реальное
Время транзакции.
с другой стороны, вот описание функции запуска
newrelic_start_transaction (имя приложения [, лицензия])
function newrelic_start_transaction (string $appname, string $license = ini_get('newrelic.license')): bool
Если вы завершили транзакцию до завершения вашего скрипта (возможно,
из-за того, что он только что закончил задачу в диспетчере очереди заданий), и вы
хотите начать новую транзакцию, используйте этот вызов. Это выполнит
те же операции, которые происходят при первом запуске скрипта. Из
два аргумента, только имя приложения обязательно. Однако если вы
обрабатывают задачи для нескольких учетных записей, вы также можете предоставить
лицензия на связанный аккаунт. Лицензия, установленная для этого вызова API
заменит все лицензии для каждого каталога и глобальные лицензии по умолчанию
настроено в INI-файлах. Эта функция вернет true, если
транзакция была успешно запущена.
Обратите внимание на некоторую разницу между newrelic_end_transaction ([ignore]) и newrelic_end_of_transaction ()
Несмотря на то, что имя похоже на newrelic_end_of_transaction выше,
этот призыв служит совсем другой цели. newrelic_end_of_transaction
просто отмечает время окончания транзакции, но не принимает никаких других
действие. Транзакция все еще отправляется демону только тогда, когда PHP
Движок определяет, что скрипт завершен и завершает работу
вниз. Эта функция, с другой стороны, вызывает текущую транзакцию
немедленно прекратить, и отправит все метрики, собранные на данный момент
демону, если для параметра ignore не установлено значение true. В результате
этот вызов имитирует то, что произойдет, когда PHP завершает текущий
сделка.
Знайте, я много цитировал, но документация настолько ясна, что я не нашел смысла говорить то же самое по-другому.
Надеюсь, это поможет
Других решений пока нет …