ReportConcurrentAdminsToNewRelic.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\NewRelicReporting\Model\Observer;
  7. use Magento\Framework\Event\Observer;
  8. use Magento\Framework\Event\ObserverInterface;
  9. use Magento\NewRelicReporting\Model\Config;
  10. use Magento\NewRelicReporting\Model\NewRelicWrapper;
  11. /**
  12. * Class ReportConcurrentAdminsToNewRelic
  13. */
  14. class ReportConcurrentAdminsToNewRelic implements ObserverInterface
  15. {
  16. /**
  17. * @var Config
  18. */
  19. protected $config;
  20. /**
  21. * @var \Magento\Backend\Model\Auth\Session
  22. */
  23. protected $backendAuthSession;
  24. /**
  25. * @var NewRelicWrapper
  26. */
  27. protected $newRelicWrapper;
  28. /**
  29. * @param Config $config
  30. * @param \Magento\Backend\Model\Auth\Session $backendAuthSession
  31. * @param NewRelicWrapper $newRelicWrapper
  32. */
  33. public function __construct(
  34. Config $config,
  35. \Magento\Backend\Model\Auth\Session $backendAuthSession,
  36. NewRelicWrapper $newRelicWrapper
  37. ) {
  38. $this->config = $config;
  39. $this->backendAuthSession = $backendAuthSession;
  40. $this->newRelicWrapper = $newRelicWrapper;
  41. }
  42. /**
  43. * Adds New Relic custom parameters per adminhtml request for current admin user, if applicable
  44. *
  45. * @param Observer $observer
  46. * @return void
  47. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  48. */
  49. public function execute(Observer $observer)
  50. {
  51. if ($this->config->isNewRelicEnabled()) {
  52. if ($this->backendAuthSession->isLoggedIn()) {
  53. $user = $this->backendAuthSession->getUser();
  54. $this->newRelicWrapper->addCustomParameter(Config::ADMIN_USER_ID, $user->getId());
  55. $this->newRelicWrapper->addCustomParameter(Config::ADMIN_USER, $user->getUserName());
  56. $this->newRelicWrapper->addCustomParameter(
  57. Config::ADMIN_NAME,
  58. $user->getFirstName() . ' ' . $user->getLastName()
  59. );
  60. }
  61. }
  62. }
  63. }