• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

問題を作成する

NerdGraph チュートリアル: ブラウザー エージェントの監視の例

以下に、GraphQL を使用して作成できるさまざまなブラウザー構成の例をいくつか示します。

新しいブラウザ アプリケーションを作成する

UI を使用する代わりに、NerdGraph API を使用してブラウザー アプリケーションを作成できます。これの利点は、ブラウザ アプリケーションを New Relic で計測するときに、JavaScript スニペットをプログラムで作成および取得して、ブラウザ アプリにコピー アンド ペーストできることです。

npmを使った設定方法については複数のアプリケーションについては、 「 npm を使用して複数のアプリをインストルメントする」を参照してください。

デフォルト設定で新しいブラウザ アプリケーションを作成するミューテーションの例を次に示します。

突然変異:

mutation CreateExampleBrowserApplication(
$accountId: Int!
$name: String!
$settings: AgentApplicationBrowserSettingsInput
) {
agentApplicationCreateBrowser(
accountId: $accountId
name: $name
settings: $settings
) {
guid
name
settings {
cookiesEnabled
distributedTracingEnabled
loaderScript
loaderType
}
}
}

変数:

{
"accountId": Int!,
"name": String!,
"settings": {
"cookiesEnabled": Boolean,
"distributedTracingEnabled": Boolean,
"loaderType": AgentApplicationBrowserLoader
}
}

JavaScript スニペットを取得する

JavaScript スニペットを取得して、 アプリケーションにコピー/ペーストできます。返されるスニペットは JSON でエンコードされた文字列であり、コピー/ペーストする前に解析する必要があることに注意してください。

クエリ:

query FetchBrowserJavaScriptSnippet($guid: EntityGuid!) {
actor {
entity(guid: $guid) {
... on BrowserApplicationEntity {
guid
name
browserProperties {
jsLoaderScript
}
}
}
}
}

変数:

{
"guid": EntityGuid!
}

ブラウザ監視の構成例

ブラウザ設定は NerdGraph を通じて構成できます。以下は、アプリケーションのapdexを変更する突然変異の例です。

突然変異:

mutation UpdateBrowserApdexTarget(
$guid: EntityGuid!
$settings: AgentApplicationSettingsUpdateInput!
) {
agentApplicationSettingsUpdate(guid: $guid, settings: $settings) {
browserSettings {
browserConfig {
apdexTarget
}
}
errors {
description
errorClass
field
}
}
}

変数:

{
"guid": EntityGuid!,
"settings": {
"browserConfig": {
"apdexTarget": Float
}
}
}

NerdGraph 経由で更新できるブラウザ設定の詳細については、次の変更を参照してください。各フィールドのドキュメントは、 NerdGraph エクスプローラーで見つけることができます。

突然変異:

mutation UpdateBrowserSettingsExample($guid: EntityGuid!, settings: AgentApplicationSettingsUpdateInput!) {
agentApplicationSettingsUpdate(guid: $guid, settings: $settings) {
browserSettings {
browserConfig {
apdexTarget
}
browserMonitoring {
ajax {
denyList
}
distributedTracing {
allowedOrigins
corsEnabled
corsUseNewrelicHeader
corsUseTracecontextHeaders
enabled
excludeNewrelicHeader
}
loader
privacy {
cookiesEnabled
}
}
dataManagement {
sendTransactionEventsToInternalStream
}
}
errors {
description
errorClass
field
}
}
}

変数:

{
"guid": EntityGuid!,
"settings": {
"browserConfig": {
"apdexTarget": Float
},
"browserMonitoring": {
"ajax": {
"denyList": [String!]
},
"distributedTracing": {
"allowedOrigins": [String!],
"corsEnabled": Boolean,
"corsUseNewrelicHeader": Boolean,
"corsUseTracecontextHeaders": Boolean,
"enabled": Boolean,
"excludeNewrelicHeader": Boolean
}
"loader": AgentApplicationSettingsBrowserLoaderInput,
"privacy": {
"cookiesEnabled": Boolean
}
}
"dataManagement": {
"sendTransactionEventsToInternalStream": Boolean
}
}
}

アプリケーション構成を取得する

npm パッケージのインストール方法で使用するブラウザ アプリケーション構成を取得できます。ニーズに応じて、構成は 2 つの異なる形式で返されます。

  • ウェブページのhead要素に挿入するための JSON エンコード文字列。
  • アプリケーションのソース コード内でそのまま使用できるオブジェクト。

クエリ:

query FetchBrowserConfiguration($guid: EntityGuid!) {
actor {
entity(guid: $guid) {
... on BrowserApplicationEntity {
guid
name
browserProperties {
jsConfig
jsConfigScript
}
}
}
}
}

変数:

{
"guid": EntityGuid!
}

データをブラウザセグメントでグループ化する

ブラウザ監視結果をブラウザセグメントごとにグループ化して、より意味のあるデータを取得できます。これを UIで行う代わりに、GraphQL を使用して行うことができます。

リストセグメント

既存のセグメントをリストすることから始めます。

{
actor {
entity(guid: "YOUR_GUID") {
... on BrowserApplicationEntity {
segmentAllowListAggregate {
segments
}
}
}
}
}

応答は次のとおりです。

"data": {
"actor": {
"entity": {
"segmentAllowListAggregate": {
"segments": [
"urlsegment1",
"urlsegment2"
]
}
}
}
}
"data": {
"actor": {
"entity": {
"segmentAllowListAggregate": {
"segments": [
"urlsegment1",
"urlsegment2"
]
}
}
}
}

セグメントの作成

agentApplicationSegmentsReplaceAllBrowserSegmentAllowList ミューテーションを使用してブラウザ セグメントを作成します。

mutation {
agentApplicationSegmentsReplaceAllBrowserSegmentAllowList(
entityGuid: "YOUR_GUID"
allowList: { segments: ["urlsegment1", "urlsegment2", "urlsegment3"] }
) {
segments
}
}

応答は次のとおりです。

"data": {
"agentApplicationSegmentsReplaceAllBrowserSegmentAllowList": {
"segments": [
"urlsegment3",
"urlsegment2",
"urlsegment1"
]
}
}

ブラウザエージェントのバージョン固定

New Relic の GraphQL API は、New Relic Browser エージェントの特定のバージョンを「固定」する方法を提供し、プラットフォーム内での一貫性を確保します。バージョンを固定すると、予期しない変更や動作が発生する可能性のある自動更新を防ぐことができます。この機能の主な利点は次のとおりです。

  • 制御: 更新をいつどのように適用するかについての自律性を維持します。
  • 信頼性: テストおよび承認されたバージョンのエージェントが常に実行されていることを確認します。
  • テスト容易性: 更新を決定する前に、隔離された環境で新しいバージョンを簡単にテストできます。
  • 安定性: 予期しない中断を最小限に抑え、アプリケーションの一貫した動作を維持します。
  • 効率: 導入時間を短縮し、導入の問題を軽減します。

ここでは、ブラウザ エージェント バージョン固定 API の使用方法の概要を示します。

Copyright © 2024 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.