Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save bfodeke/47804cbea9fa95cc90d40d5a09229cd4 to your computer and use it in GitHub Desktop.
Save bfodeke/47804cbea9fa95cc90d40d5a09229cd4 to your computer and use it in GitHub Desktop.
/**
* Implements hook_page_alter().
*
* We want to provide more detail to New Relic on the transaction and late in
* the page build seemed like the simplest place.
*/
function MYMODULE_page_alter(&$page) {
if (!extension_loaded('newrelic')) {
return;
}
$name = NULL;
// Look for a panel page.
$panel_page = page_manager_get_current_page();
if (isset($panel_page['name'])) {
// If it's a node page put the argument's node type into the transaction
// name.
if ($panel_page['name'] == 'node_view') {
if (isset($panel_page['contexts']['argument_entity_id:node_1']->data)) {
$node = $panel_page['contexts']['argument_entity_id:node_1']->data;
$name = 'page_manager_node_view_page/' . $node->type;
}
}
// If it's a page_manager page use the panel name.
elseif ($panel_page['task']['task type'] == 'page') {
$name = 'page_manager_page_execute/' . $panel_page['name'];
}
}
else {
$menu_item = menu_get_item();
if ($menu_item['path'] == 'node/%') {
// Looks like panels didn't have a variant and it's falling back to
// node_page_view.
$name = 'node_page_view/' . $menu_item['page_arguments'][0]->type;
}
}
// Add that name to list of transactions on newrelic.
if ($name) {
newrelic_name_transaction($name);
}
}
/**
* Implements hook_form_alter().
*
* Give more detailed reports as to which forms are taking the longest to
* load.
*/
function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
if (!extension_loaded('newrelic')) {
return;
}
$name = 'drupal_get_form/' . $form_id;
newrelic_name_transaction($name);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment