公開プレビュー
ノートブックのBlob Storage APIは現在パブリック プレビュー段階です。この機能は、弊社のプレリリースポリシーに従って提供されています。
New Relic Notebooks APIを使用すると、ブロックの全コンテンツ(NRQLクエリ、テキスト)を含め、ノートブックをプログラムで作成、読み取り、更新、削除できます。ノートブックはバージョン管理されたblobとして保存されます。つまり、保存するたびに、後で取得できる新しい不変のリビジョンが作成されます。
このAPIを使用して次のことを行います:
- インシデントテンプレート、ランブック、またはCI/CDパイプラインからのノートブック作成を自動化する
- バージョン管理または外部オーサリングツールからノートブックのコンテンツを同期する
- 調査中にノートブックにプログラムでデータを入力するインテグレーションを構築する
重要
Notebooks 複数のAPIを使用
NotebooksAPIサーフェスは2つのシステムに分割されています:
Blob Storage APIはノートブックのコンテンツ(ブロック、バージョン履歴)を処理します
NerdGraphは、エンティティレベルの操作(リスト、名前変更、タグ、組織メタデータ)を処理します
この分離は意図的なものです。Blob Storage APIはファイルコンテンツの転送とバージョン管理に最適化されています;NerdGraphは構造化されたエンティティクエリとミューテーションに最適化されています。
前提条件
- ユーザーAPIキーを持つNew Relicアカウント
- お客様のNew Relic組織ID
- ノートブックを管理するための適切な権限
認証
すべてのNotebooks API requests New RelicユーザーAPIキーを使用した認証が必要です。
APIキーを生成する:
- one.newrelic.comにアクセスします
- 右上隅の自分の名前をクリックします。
- 選択する API Keys
- Userキーを作成します (Browserまたはライセンスキーではありません)
リクエストヘッダーに含める:
$Api-Key: NRAK-YOUR-USER-API-KEYヒント
Blob Storage APIはログインコンテキストもサポートしているため、New Relicユーザーとして認証されたUIからAPIを呼び出す場合、Api-Keyヘッダーは必要ありません。
ベースエンドポイント
https://blob-api.service.newrelic.com/v1/eEU地域のアカウントの場合は、以下を使用してください。
https://blob-api.service.eu.newrelic.com/v1/eノートブックのコンテンツ操作
エンティティ操作(NerdGraph)
一覧表示、名前変更、タグなどのエンティティレベルの操作では、Blob Storage APIではなくNerdGraphを使用します。
すべてのノートブックを一覧表示する
query listAllNotebooks { actor { entityManagement { entitySearch(query: "type='NOTEBOOK'") { entities { id name } } } }}ヒント
エンティティの作成は完全にトランザクションであるため、ノートブックはAPIを介してすぐに利用できます。ただし、レガシーactor.entitySearchクエリを使用してノートブックを一覧表示する場合、作成からノートブックがリスト結果に表示されるまでに短い伝播遅延が発生する可能性があります。
ノートブックの名前を変更する
mutation changeNotebookName { entityManagementUpdateNotebook( id: "<entity guid>" notebookEntity: { name: "<new name>" } ) { entity { name } }}ノートブックのタグを更新する
重要
タグの更新は置換操作です。変更されないものも含めて、タグの完全なセットを含める必要があります — ミューテーションから省略されたタグは削除されます。
mutation updateNotebookTags { entityManagementUpdateNotebook( id: "<entity guid>" notebookEntity: { tags: [ { key: "<key>", values: "<value>" } { key: "<key>", values: "<value>" } ] } ) { entity { name tags { key values } } }}組織IDを取得する
すべてのBlob Storage API呼び出しには、組織IDが必要になります:
query getOrgId { actor { organization { id } }}ベストプラクティス
- エンティティGUIDを保存する: 作成操作から返された
entityGuidを保存します。ノートブックの読み取り、更新、削除に必要になります。 - アップロード前にJSONを検証する: 送信する前に、ノートブックのペイロードが有効なJSONであり、
versionスキーマに準拠していることを確認してください。 - 分かりやすい名前を使用する:ノートブックの名前は組織内で一意である必要があるため、目的を明確に示す名前を選択してください(たとえば、
notebook-1ではなくprod-checkout-investigation)。 - 更新時にすべてのタグを含める: タグの更新により、タグセット全体が置き換えられます。変更する前に、常に既存のタグを読み取ります。
- 迅速に復元する: バージョン履歴は1日のみ保持されます。長期的な履歴が必要な場合は、更新のたびにノートブックのコンテンツを独自のストレージにアーカイブしてください。
- APIキーを保護する:ユーザーAPIキーをクライアント側のコードやパブリック リポジトリで公開しないでください。
- HTTPステータスコードを確認してください。APIは、操作が成功した場合は2xx、見つからない場合は404、エラーの場合はその他のステータスコードを返します。
よくあるエラーへの対応
ステータスコード | 説明 | 解決 |
|---|---|---|
| 無効なリクエストパラメーター、本文または
ヘッダーの不正なJSON、またはこの組織にノートブック名がすでに存在しています | リクエストの形式、ヘッダー値、およびノートブック名が組織内で一意であることを確認します |
| APIキーが欠落しているか無効です | ユーザーAPIキーが有効であり、
ヘッダーに含まれていることを確認してください。 |
| ノートブックまたはバージョンが見つかりません | エンティティのGUIDが正しいことを確認してください。 |
| 不正な
ヘッダー | 使用する
|
追加リソース
- ノートブックの概要 — New RelicUIでのノートブックの使用方法
- NerdGraphの概要 — GraphQL APIリファレンス
- エージェント設定用のBlob Storage API — 次によって使用される姉妹API Fleet Control
- New Relic APIキー — キーの種類と管理