UIで構築する代わりに、NerdGraph APIを使用して、プログラムでPathpointフローを作成および管理できます。
フローは、チェックアウト、認証、オンボーディングなどの1つのビジネスジャーニーを表します。これは、APIを通じて作成および管理する単位です。フローはエンティティであるため、それぞれに読み取り、更新、または削除に使用するエンティティGUIDがあります。
すべてのフローは4ティアの階層に従い、KPIはフローレベル、ステージレベル、またはその両方に関連付けられます:
Flow├── Flow KPIs└── Stages ├── Stage KPIs └── Levels └── Steps └── Signals (entity GUIDs, alert condition GUIDs, or a dynamic query)Pathpoint自体の概要については、Pathpointの利用開始をご覧ください。
あなたが始める前に
必要なもの:
- アカウントでPathpointが有効になっていること。
- requestsを認証するためのNew Relic 。
- アカウントID。
フローの操作
これらの例をインタラクティブに実行するには、NerdGraph GraphiQLエクスプローラーを開き、スキーマでpathPointを検索します。例を実行する前に、プレースホルダーを自身の値に置き換えてください:YOUR_ACCOUNT_ID、TARGET_ACCOUNT_ID、FLOW_GUID、SOURCE_FLOW_GUID、ENTITY_GUID、ANOTHER_ENTITY_GUID、ENTITY_NAME、ALERT_CONDITION_GUID、およびステージ、レベル、ステップのID。
フローの作成
ネストされたステージ、レベル、ステップ、およびシグナルを単一のミューテーションで渡すことにより、フローを作成します。
pathPointCreate アカウントscopeが必要です。ペイロード内では、nameのみが必要です。stagesを含むその他のすべてはオプションです。ステップは3つの方法のいずれかでシグナルを取得し、それらを組み合わせることができます:
- A dynamic query (
entitySearchQuery):クエリに一致するすべてのエンティティ。更新のたびに再評価されます。 - A pinned entity (
type: ENTITY):GUIDによって識別される1つの特定のエンティティ。 - A pinned alert condition (
type: ALERT):GUIDで識別される1つのアラート条件。
このtypeフィールドはオプションです。シグナルを識別するには、GUIDで十分です。
ステージは、ヘルスのロールアップとは無関係に、UIがステージ間のコネクタ矢印をどのように描画するかを制御するオプションのrelatedブロックも受け取ります。前のステージからの入力矢印を表示する場合はsource: trueを設定し、次のステージへの出力矢印を表示する場合はtarget: trueを設定します。すべてのステージが順番に次のステージに接続されるフローでは、1番目のステージはsource: false, target: true、最後のステージはsource: true, target: false、その間のすべてのステージは両方に対してtrueになります。
重要
KPIのaccountIdは、デフォルトでフローのアカウントになります。異なるアカウントに設定した場合、KPIは作成されず、エラーも返されません。ミューテーションがスキップしたKPIを確認するには、レスポンスのexcludedKpisフィールドを確認してください。
フローを読み取る
エンティティGUIDでフローを読み取ると、完全な設定に加えて、フロー、各ステージ、各レベル、各ステップの現在の稼働ステータスを取得できます。healthStatusは読み取り時にのみ表示されます。
ステージ、レベル、およびステップは、1ページあたり50個のアイテムを返します。nextCursorがnull以外で返された場合は、それを渡して次のページを取得します。
{ actor { account(id: YOUR_ACCOUNT_ID) { pathPoint { flow(guid: "FLOW_GUID") { guid name description category refreshInterval healthRollup healthStatus version message kpis { id name category accountId query { from where select { aggregationType attribute alias threshold } timeWindow { customRange relativeRange { since compareAgainst } } } metricQuery } stages { totalCount nextCursor items { id name link healthRollup healthStatus isExcluded related { source target } levels { totalCount nextCursor items { id healthStatus steps { totalCount nextCursor items { id name healthStatus isExcluded scopedAccounts config { healthRollup thresholdType thresholdValue } entitySearchQuery { query isExcluded } signals { guid name type isExcluded } } } } } } } metadata { createdAt createdBy { name email } updatedAt updatedBy { name email } } } } } }}ツリー全体が必要ない場合は、リクエストするフィールドを減らしてください。たとえば、nameとhealthStatusを読み取るだけで、フローのステータスをポーリングするのに十分です。
フローを更新
pathPointUpdate は差分ベースの操作です。送信したペイロードとフローの現在の状態を比較し、IDを含めたかどうかに応じて、各ステージ、レベル、ステップ、およびKPIに対してアクションを実行します:
- ID included:既存のオブジェクトを更新します。
- ID omitted:新しいオブジェクトを作成します。
- Object left out of the payload entirely:フローから削除します。
注意
省略は削除を意味するため、常に最初にフローを読み取り、返されたペイロードを変更して、意図した完全な状態を送信してください。部分的なペイロードを送信すると、省略したものはすべて削除されます。
versionフィールドも必須です。これは、楽観的並行性制御に使用される、エポックミリ秒単位のフローの最終更新タイムスタンプです。これを省略したり、古い値を送信したりすると、更新は失敗します。
フローの複製
構造のみ、またはフロー全体を複製できます:
STRUCTURE:シグナルやKPIを含まず、ステージ、レベル、ステップのみをコピーします。WHOLE_FLOW:シグナルやKPIとともに構造をコピーします。
入力で設定したプロパティは、ソースフローの値を上書きします。プロパティを省略すると、継承されます。
フローを削除
フローの削除はカスケードされます:フローとともに、そのすべてのステージ、レベル、ステップ、およびKPIが削除されます。シグナル自体、つまりフローが指していたエンティティとアラート条件は、アカウントに残ります。
注意
フローの削除は元に戻せません。
mutation { pathPointDelete(guid: "FLOW_GUID") { guid name }}部分的な失敗
個々のオブジェクトが失敗しても、作成または更新全体としては成功する場合があります。レスポンスの2つのフィールドで、それが発生したタイミングを確認できます:
message:失敗したステージ、レベル、またはステップの詳細。すべてが成功した場合はnullです。excludedKpis:作成されなかったKPIの名前。最も一般的な理由は、KPIのaccountIdがフローのアカウントと一致しなかったためです。
部分的な成功を完全な成功として扱わないように、ミューテーションで両方のフィールドをリクエストしてください。
制限
APIで構築するかUIで構築するかにかかわらず、すべてのフローに以下の制限が適用されます:
制限 | 価値 |
|---|---|
フローあたりの最大ステージ数 | 50 |
ステージあたりの最大レベル数 | 50 |
レベルあたりの最大ステップ数 | 50 |
1ページあたりに返される最大アイテム数 | 50 |
タイプリファレンス
これらの列挙型は、上記の操作に表示されます。各行には、受け入れられる値と、それに続いてそれらが制御する内容が記載されています:
イナム | 価値観 |
|---|---|
|
、
、
、
、
。フロー、ステージ、レベル、およびステップのヘルスが更新される頻度。 |
,
|
、
。ヘルスが子オブジェクトからロールアップされるか、フローまたはステージのKPI全体で最悪のアラート条件から取得されるか。 |
|
、
。ステップが最もヘルスの状態が悪いシグナルを取得するか、最もヘルスの状態が良いシグナルを取得するか。 |
|
、
。
が絶対数であるか、シグナルの割合であるか。 |
|
、
、
、
。読み取り時に返される計算ヘルス。 |
|
、
。GUIDが、APMサービスやホストなどのモニター・エンティティを指すか、アラート条件を指すか。 |
|
、
、
、
、
、
、
、
。KPIクエリが適用する集計。
を除くすべての関数には
が必要です。 |
|
、
、
、
、
、
、
。KPIの
および
の期間。 |
|
、
。ステージ、レベル、ステップのみをコピーするか、シグナルとKPIを含む構造をコピーするか。 |