> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ダッシュボードチャートのリリースマーカー

> タイルのログソースに設定されたサービスバージョン式に基づき、サービスの各バージョンが初めて現れた時点をダッシュボードの時系列チャートに重ねて表示します

export const Image = ({img, alt, size = "lg", background}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  const backgroundColor = background === "white" ? "white" : background === "black" ? "rgb(31 31 28)" : undefined;
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} style={{
    backgroundColor
  }} />
      </Frame>
    </div>;
};

レイテンシーやエラーが急増した際、まず確認したいのは何かがリリースされたかどうかです。ダッシュボードの時系列チャートなら、その場で確認できます。リリースマーカーをオンにすると、各タイルに、サービスのバージョンがテレメトリーに初めて現れた時点を示す破線の縦線が表示されます。

バージョン情報は、すでに送信しているテレメトリーから、タイルのログソースに設定された式を通じて取得されます。CIインテグレーションを設定する必要はなく、デプロイ時に何かをプッシュする必要もありません。

<div id="turn-on">
  ## リリースマーカーをオンにする
</div>

リリースマーカーはデフォルトでオフです。ダッシュボードのオーバーフローメニューを開き、**リリースマーカーを表示**を選択します。

<Image img="https://mintcdn.com/private-7c7dfe99/-i0voiP_5BwPYqYV/images/clickstack/dashboards/release-markers-menu.webp?fit=max&auto=format&n=-i0voiP_5BwPYqYV&q=85&s=15de1ec95ed1c9658230890fc2640055" alt="ダッシュボードのオーバーフローメニュー。View セクション内の「Show alert annotations」の下に「Show release markers」項目がある" size="sm" width="540" height="600" data-path="images/clickstack/dashboards/release-markers-menu.webp" />

このトグルにより、ダッシュボードの URL に `releaseMarkers=true` が追加されます。そのため、共有したリンクを開くと、マーカーはすでにオンになっています。これはダッシュボードの設定ではなく表示状態です。ダッシュボードとともに保存されることはなく、オフにするとパラメータも削除されます。

マーカーは、ログソースまたはトレースソースをソースとする時系列タイルに描画されます。[アラートアノテーション](/docs/ja/clickstack/features/alerts)も同じメニューから表示でき、同時に表示できます。2 種類のマーカーは一緒に描画され、それぞれのラベルが維持されます。

<div id="version-expression">
  ## バージョンの取得元を設定する
</div>

デフォルトでは、ClickStack は OpenTelemetry リソース属性 `ResourceAttributes['service.version']` を読み取ります。サービスが[サービスリソースのセマンティック規約](https://opentelemetry.io/docs/specs/semconv/registry/attributes/service/)に従っている場合、設定なしでマーカーを使用できます。

別の場所からバージョンを読み取るには、ログまたはトレースソースで **Service Version Expression** を設定します。**Team Settings → Sources** でログソースを編集します。ログソースでは、このフィールドは **Configure Optional Fields** 内にあります。トレースソースでは、フォームの **Service Name Expression** の下に直接表示されます。

<Image img="https://mintcdn.com/private-7c7dfe99/-i0voiP_5BwPYqYV/images/clickstack/dashboards/service-version-expression.webp?fit=max&auto=format&n=-i0voiP_5BwPYqYV&q=85&s=4ea311f6c8f17a0f717a2355aab18246" alt="ログソースの任意フィールドにある Service Version Expression フィールド。デフォルトのプレースホルダー ResourceAttributes['service.version'] が表示されている" size="lg" width="1540" height="290" data-path="images/clickstack/dashboards/service-version-expression.webp" />

この値は属性名ではなく SQL 式であり、よくある次の 2 つのケースに対応できます。

* **リリース識別子が別の属性にある場合。** GitOps では、リリースを識別する情報は通常コンテナーイメージのタグであり、`container.image.tag` として送られます。ログソースに `ResourceAttributes['container.image.tag']` を指定する方が、フリート全体のインストルメンテーションを変更するよりも大幅に低コストです。
* **同じテーブル内のサービスで値が一致しない場合。** `coalesce` を使用して属性をフォールバックします。

```sql theme={null}
coalesce(
  nullIf(ResourceAttributes['service.version'], ''),
  nullIf(ResourceAttributes['container.image.tag'], '')
)
```

このフィールドは、ログおよびトレースソースの [sources API](/docs/ja/clickstack/api-reference) でも `serviceVersionExpression` として公開されているため、ソースをプログラムでプロビジョニングする際に設定できます。[ログ](/docs/ja/clickstack/managing/config#logs)および[トレース](/docs/ja/clickstack/managing/config#traces)のソース設定の完全な一覧を参照してください。

<div id="what-a-marker-means">
  ## マーカーの意味
</div>

マーカーは、表示中のウィンドウ内のタイルデータで、あるバージョン値が初めて現れたことを記録します。これはデプロイメントに近いものですが、意図的に同じ事象を示すものではありません。そのため、これらはデプロイメントマーカーではなくリリースマーカーと呼ばれます。

* バージョン文字列を変更しないデプロイでは、マーカーはまったく生成されません。
* ルックバック期間を超えてアイドル状態だったサービスは、再びスケールアップするとマーカーが描画されます。

ウィンドウを開いた時点ですでに実行されていたバージョンは、実際には発生していないリリースとして描画されないよう、認識して除外されます。そのため、クエリはウィンドウ開始前まで遡り、30 分間、またはそれより長い場合はウィンドウの 10% の期間を対象に、既存のバージョンを特定します。

<div id="scoping">
  ## タイルに表示されるリリース
</div>

リリースクエリは、タイル独自のログソースに対し、タイル独自の条件 (`WHERE` 句、各系列のフィルター、[ダッシュボードフィルター](/docs/ja/clickstack/features/dashboards/overview#custom-filters)) を使用して実行されます。タイルに表示される内容は、何をチャート化しているかによって異なります。

| タイル             | マーカー                                        |
| :-------------- | :------------------------------------------ |
| 1つのサービスでフィルタリング | そのサービスのリリース                                 |
| サービスごとにグループ化    | チャート化されたすべてのサービスのリリース。それぞれ対応する線と同じ色で表示されます  |
| 複数のサービスにまたがる集計線 | なし。ただし、ウィンドウ内のすべてのリリースが1つのサービスからのものである場合を除く |

3つ目のケースでは、マーカーに対応するサービスの線がチャート上にないため、マーカーは除外されます。ウィンドウ内のすべてのリリースが単一のサービスからのものである場合は、代わりにデフォルトのマーカー色で描画されます。

<div id="reading-markers">
  ## 混み合ったチャートでマーカーを確認する
</div>

マーカーのラベルにカーソルを合わせると、その時点にあるすべてのリリースが一覧表示され、各リリースの提供元サービス、バージョン、時刻を確認できます。

<Image img="https://mintcdn.com/private-7c7dfe99/-i0voiP_5BwPYqYV/images/clickstack/dashboards/release-marker-tooltip.webp?fit=max&auto=format&n=-i0voiP_5BwPYqYV&q=85&s=665c133349841df4ce7fc61b6ac68597" alt="2 つのサービスを示すチャート上で、サービス frontend、バージョン 2.0.2、そのバージョンが初めて表示された時刻を示すリリースマーカーのホバーツールチップ" size="sm" width="826" height="854" data-path="images/clickstack/dashboards/release-marker-tooltip.webp" />

色はマーカーとその系列を対応付けますが、チャートの凡例には最大 4 件しか表示されず、残りは "+N more" にまとめられます。その場合、画面上では色を照合できません。ツールチップにはサービス名が直接表示されるため、タイルに表示される系列数にかかわらず確認できます。

個別にラベルを付けるには近すぎるマーカーは、`N releases` と表示された 1 つのアンカーにまとめられます。カーソルを合わせると、すべてのリリース名が表示されます。複数のサービスにまたがるクラスターは、いずれかのサービスの色ではなく中立色で描画されるため、所有者がいるように見せることなく件数を正確に示せます。

マーカーが表示されている場合でも、プロット上を水平方向にドラッグしてズームできます。

<div id="limitations">
  ## 制限事項
</div>

* \*\*時系列タイルのみ。\*\*テーブル、数値、ヒートマップにはマーカーを表示できません。
* \*\*ログおよびトレースソースのみ。\*\*メトリクスログソースでは、メトリクスタイプごとにテーブルが特定されるため、再集計対象となる単一のテーブルがなく、タイルのフィルターを意味のある形で適用することもできません。メトリクスデータに注釈を付けるには、同じダッシュボード上にログまたはトレースのタイルを並べて配置してください。
* \*\*空のバージョン値はスキップされます。\*\*バージョンを出力しないサービスはマーカーに反映されません。タイルでバージョンの変更がまったく見つからない場合、ClickStackは機能が壊れているのではないかと迷わせるのではなく、`No releases found`と表示します。
* **ウィンドウごとに最大500個の異なるバージョン**が読み取られます。
