以下に、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 エージェントの特定のバージョンを「固定」する方法を提供し、プラットフォーム内での一貫性を確保します。バージョンを固定すると、予期しない変更や動作が発生する可能性のある自動更新を防ぐことができます。この機能の主な利点は次のとおりです。
Control
: 更新をいつ、どのように適用するかについての自主性を維持します。
Confidence
: テストされ承認されたバージョンのエージェントが常に実行されていることを確認します。
Testability
: 更新を決定する前に、隔離された環境で新しいバージョンを簡単にテストします。
Stability
: 予期しない中断を最小限に抑え、一貫したアプリケーション動作を維持します。
Efficiency
: デプロイ時間を短縮し、実行上の困難を軽減します。
ここでは、ブラウザ エージェント バージョン固定 API の使用方法の概要を示します。