jomashop/module-new-relic-monitoring-for-gql 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

jomashop/module-new-relic-monitoring-for-gql

最新稳定版本:1.1.1

Composer 安装命令:

composer require jomashop/module-new-relic-monitoring-for-gql

包简介

Send GraphQL transactions to New Relic

README 文档

README

New Relic's PHP agent has support for automatic transaction naming for REST and SOAP, but not GraphQL. Thus, this Magento 2 module is developed to support sending a GraphQL transaction name to New Relic automatically.

Details

A transaction is named based on the service class and method that handled the request, /GraphQl/Controller/GraphQl\{operation name|(query|mutation)}\{name|Multiple}.

The logic is explained as follows:

  1. If the operationName field is set, use the operation name.
  2. If the operationName field is not set, use the name of the query or mutation.
  3. If a GraphQL query consists of multiple queries or mutations, the transaction would be indicated as 'Multiple'. Note that in any cases, the operationName field takes the priority.

Installation

composer require jomashop/module-new-relic-monitoring-for-gql

Examples

  1. Operation name is set
mutation createCustomerTest{
  createCustomer(
    input: {
      firstname: "Bob"
      lastname: "Loblaw"
      email: "test@example.com"
      password: "b0bl0bl@w"
      is_subscribed: true
    }
  ) {
    customer {
      firstname
      lastname
      email
      is_subscribed
    }
  }
}

In New Relic, the transaction name would be: /GraphQl/Controller/GraphQl\Mutation\createCustomerTest

  1. Operation name is not set and only 1 query/mutation is requested
mutation {
  createCustomer(
    input: {
      firstname: "Bob"
      lastname: "Loblaw"
      email: "test@example.com"
      password: "b0bl0bl@w"
      is_subscribed: true
    }
  ) {
    customer {
      firstname
      lastname
      email
      is_subscribed
    }
  }
}

In NR, the transaction name would be /GraphQl/Controller/GraphQl\Mutation\createCustomer

  1. Operation name is not set and multiple queries/mutations are requested
query {
  cmsBlocks(identifiers: "footer_links_block") {
    items {
      identifier
      title
      content
    }
  },
  storeConfig {
    id
    code
    website_id
    locale
    base_currency_code
    default_display_currency_code
    timezone
    weight_unit
    base_url
    base_link_url
    base_static_url
    base_media_url
    secure_base_url
    secure_base_link_url
    secure_base_static_url
    secure_base_media_url
    store_name
  }
}

In NR, the transaction name would be /GraphQl/Controller/GraphQl\Query\Multiple

Change Log

  • v1.1.1: Send requested fields as a custom parameter to NR
  • v1.1.0: Able to log GraphQl errors

统计信息

  • 总下载量: 139.38k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 15
  • 点击次数: 1
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 15
  • Watchers: 3
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2021-01-19