[STATUS: ONLINE] 当サイトは要約付きのエンジニア向けFeedです。

TechDistill.dev

[DISCLAIMER] 当サイトの要約は正確性を保証しません。気になる記事は必ず原文を確認してください。
cd ..

【要約】New Relic のログ検索結果に直リンクする隠し URL 仕様 [Zenn_Python] | Summary by TechDistill

> Source: Zenn_Python
Execute Primary Source

// Problem

開発者がGitHub Actions等の外部システムからECS Fargateのバッチタスクを起動した際、実行後のログ調査を効率化したいという課題がある。具体的には以下の問題に直面している。


  • 公式の共有機能(Copy permalink)は手動操作を前提としており、プログラムによる動的なURL生成が困難である。
  • NerdGraph(GraphQL API)には、任意の検索クエリを埋め込んだLogs UIのURLを生成するMutationが存在しない。
  • 以前のURL仕様が変更され、従来の生成方法では検索窓が空になるなど、機能しなくなった。

// Approach

開発者は、New Relic Oneの内部的なURL Stateを解析し、非公式ながらも動的なURLを組み立てる手法を採用した。具体的な手順は以下の通りである。


  • Nerdlet IDとして logger.log-tailer を指定する。
  • pane パラメータに、nerdletId, accountId, duration, query を含むJSONをBase64エンコードして格納する。
  • 検索クエリには、Lucene構文を用いて ecs_task_arnlevel を指定する。
  • URLの短縮と安全性のために、JSONの空白削除や urlencodesafe オプションを活用する。

// Result

開発者は、GitHub ActionsのJob Summaryから、特定のECSタスクのログへワンクリックで遷移できる環境を構築した。これにより、ログ調査のリードタイムを短縮し、開発者のコンテキストスイッチを抑制できる。また、仕様変更に備え、NerdGraphによる直接取得やクエリの併記といった、運用継続性を担保する退路も設計に組み込んでいる。

Senior Engineer Insight

> 本手法は、公式APIの欠如を補う優れたハックだが、非公式仕様への依存というリスクを孕んでいる。大規模運用においては、このURLが突然機能しなくなる可能性を常に考慮すべきだ。実装時には、NerdGraphによるログ取得やダッシュボード利用といった「退路」を設計に組み込むことが、システムの堅牢性と運用継続性を保つ鍵となる。

[ RELATED_KERNELS_DETECTED ]

cd ..

> System.About()

TechDistillは、膨大な技術記事から情報の真髄(Kernel)のみを抽出・提示します。