zephyr-grafana-links について
zephyr-grafana-links は、ベイクログ内の Grafana ダッシュボードリンクを作成・更新するスキルです。ベイク全体とバルク発酵のビューを分け、記録されたイベント時刻から表示範囲を設定します。
主な機能
- 01全体とバルク発酵のリンク生成
- 02ベイクイベントに基づくリンク範囲設定
- 03ログの現地時刻を UTC に変換
- 04完了したベイクの終了時刻を固定
- 05Grafana のアノテーションブロックを保持
活用シーン
- 01ベイクログにダッシュボードリンクを追加
- 02ベイク完了後にリンクを更新
- 03時刻情報がない場合に TBD と記載
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ gkwa/ volcanicviper --skill zephyr-grafana-linksインストール後、Claude Code で/zephyr-grafana-linksを入力して読み込まれたか確認します。
同梱ファイルtile.json
詳細
概要
Grafana リンクを追加すると、ベイクログからダッシュボードをすぐに確認できるビューが2つ用意されます。1つはベイク全体、もう1つはバルク発酵の範囲を表示します。
このスキルは意図的に自己完結型にしてあるため、[[zephyr]] スキルに手を加えずに、別のリンク実装に置き換えられます。
ファイル名の解決、event_time タグ、Starter peak duration ブロック、パラメーターの優先順位は [[zephyr]] スキルが担当します。このスキルはそれらのルールを利用しますが、再掲はしません。
リンクを作成する前に、ベイクログの命名規則とパラメーターのデフォルト値を確認するため、[[zephyr]] スキルを読んでください。
アノテーションはまったく別の事項であり、[[grafana-bake-annotation]] スキルが担当します。詳しくは「セクションの担当範囲」を参照してください。
パラメーター
- ダッシュボードのベース URL —
https://taylormonacelli1.grafana.net/d/tatmmtv/new-dashboard - 固定クエリパラメーター —
orgId=1、timezone=browser、refresh=30m - ベイクログのディレクトリ — [[zephyr]] スキルの「パラメーター」セクションに従って解決します
トリガー
明示的に依頼された場合にのみ、リンクを作成または更新します。
ベイクログが開かれているという理由だけで、リンクを自動的に再生成してはいけません。
このコンポーネントを起動する依頼:
- 「このログの grafana リンクを更新して」
- 「ベイクログ 7-20 に grafana リンクを追加して」
- 「ベイクが終わったので、grafana リンクを直して」
- 「ベイクログ 7-20 に zephyr を適用して」 — [[zephyr]] スキルで定義されている複合的な依頼
このコンポーネントを起動しない依頼:
- 「Grafana アノテーションを適用して」 — これは [[grafana-bake-annotation]] スキルが担当します
- 「このログの Zephyr エントリをルーティングして」 — これは [[zephyr-routing]] スキルが担当します
- その他の目的でベイクログを読むこと
表示範囲の設定
表示範囲はベイクの開始と終了にぴったり合わせず、前後に余裕を持たせます。
各リンクでは、それぞれの開始イベントの1時間前から、ベイク終了のおよそ1時間後までを表示します。
この余裕があれば、プロットの端でトレースが途切れず、ベイク前の経過と終了後の状態をどちらも確認できます。
終了時刻の選択
to パラメーターは、ベイクがまだ進行中かどうかによって変わります。
ベイクの進行中は to=now を使用します。新しい測定値が届くたびにグラフの範囲が広がり、常に現在までのデータが表示されます。
ベイクが終わった後は to=now は適切ではありません。最後の測定値以降も表示範囲が広がり続けるため、グラフの左側でベイクが次第に小さな帯状に圧縮され、残りの部分が空の時間で埋まってしまいます。
ベイクが終了している場合は、終了からおよそ1時間後の固定タイムスタンプを to に設定します。
どちらに該当するかは、## bake log セクションにベイク終了時のエントリがあるか確認して判断します。パンがオーブンから出たこと、または最後のパンのベイクが終わったことを示すエントリです。
このイベントのアノテーションラベルは bake_done です。ログでは「オーブンから出した」「焼き上がった」「最後のパン」などの表現が使われている場合があります。
ベイク終了時のエントリがなければ、ベイクはまだ進行中です。両方のリンクで to=now を使用します。
エントリがある場合は、そのイベント時刻に1時間を加えて UTC に変換し、両方のリンクで to に固定タイムスタンプを使用します。
最後のパンのベイク開始だけが記録され、終了が記録されていない場合は、その開始から45分後にベイクが終了するとみなし、さらに1時間の余裕を加えます。
両方のリンクで、to の値は常に同じにします。
開始時刻の選択
それぞれ独自の from を指定したリンクを2つ記述します。
| リンク | 次の時刻の1時間前から開始 | 情報源 |
|---|---|---|
| 全体 | レヴァンの給餌 | ## Starter peak duration ブロックの fed フィールド |
| バルク発酵 | バルク発酵の開始 | 小麦粉を混ぜ入れたエントリのイベント時刻 |
バルク発酵の開始は mix イベントです。バルク発酵は生地がまとまった時点で始まり、long_bulk_start の時点ではありません。
必要な情報源が見つからない場合、または [TBD] のままの場合は、時刻を推測せず、その URL の代わりに [TBD] を記述します。
情報源が見つからない場合、影響するのはそのリンクだけです。もう一方のリンクは記述します。
タイムゾーン
Bake ログの時刻は、現地の壁時計時刻です。
Grafana の from と to には UTC を指定するため、書き込む前に変換してください。太平洋夏時間の場合は、7 時間引きます。
ダッシュボードと同じ形式である、ミリ秒付きで末尾に Z を付けた ISO 8601 形式にしてください:2026-07-21T02:02:47.000Z。
now という文字列は変換しません。
セクションの管理
リンクは、Bake ログの ## grafana セクションの先頭に、次の形式で記載します。
overall
<URL or [TBD]>
bulk ferment
<URL or [TBD]>
現在の内容が何であっても、実行のたびにリンクブロック全体を置き換えてください。テキストを部分修正するのではなく、再生成される出力として扱います。
## grafana セクションのそれ以外の内容はすべて、特にフェンスで囲まれた annotate-grafana.py コマンドブロックは、[[grafana-bake-annotation]] スキルに属します。
リンクを更新するときに、それらのブロックを削除、並べ替え、編集しないでください。
セクションにすでにプレースホルダーがある、または特定の内容があると想定しないでください。セクションは空の場合も、リンクのみの場合も、アノテーションのみの場合も、両方がある場合もあります。
完了した Bake の更新
Bake の途中で書き込まれたリンクには to=now が指定されており、Bake が終了した時点で古くなります。
終了時のエントリが、リンクにまだ to=now が指定されているログに追加された場合は、固定した終了時刻を使って両方のリンクを書き換えてください。
このコンポーネントではこのケースが一般的です。通常、Bake 1 回につき、早い段階と Bake 終了後の 2 回実行されます。
コミット
リンクの更新後に Bake ログをコミットしてください。