【要約】インフラしかわからない民、CURLおじさんになることを決意する。CURLでNerdGraph APIを叩いてみた!やってみて!! [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
インフラエンジニアがNew Relicの運用を行う際、UIからのデータ取得に手間取ることがある。手動操作による以下の課題が、作業効率を低下させている。
- ・UI上のデータをコピーすると改行が崩れる。
- ・データの形式が不適切になり、再加工が必要になる。
- ・大量のデータを効率的に取得できない。
// Approach
筆者は、curlを用いてNerdGraph APIを直接叩くことで、この問題を解決しようと試みた。以下のステップで、コマンドラインからのデータ取得を実現している。
- ・curlによるPOSTリクエストの基本構造を定義。
- ・GraphQLを用いて、必要なデータ構造を指定。
- ・NRQLをクエリ内に埋め込み、詳細なメトリクスを取得。
- ・シェル上での複雑なクォート処理(エスケープ)を実装。
// Result
筆者は、コマンドラインから直接データを取得する具体的な手順を確立した。これにより、以下の情報がターミナル上で取得可能となった。
- ・管理対象のホスト一覧。
- ・特定サーバのCPUおよびメモリ負荷。
- ・特定サーバに関連するアラートの詳細情報。
Senior Engineer Insight
> 現場視点では、本手法は「即時性」において価値がある。トラブルシューティング時に、UIを介さず迅速にデータを取得できるためだ。シェルスクリプトへの組み込みも容易であり、運用の自動化に寄与する。ただし、クエリ内のエスケープ処理は極めて複雑である。これは、運用ミスやスクリプトの保守性低下を招くリスクがある。大規模環境では、本手法を直接叩くよりも、TerraformやSDKを用いた構造的な管理を優先すべきである。