コンセプト

Instana Pipeline Feedbackは、アプリケーション開発とデプロイのパイプラインイベントの最初の自動分析で、アプリケーション、インフラストラクチャ、サービスパフォーマンスデータと直接相関しています。

DevOpsチームが継続的デプロイモデルに移行するにつれて、開発におけるダイナミズムが大幅に増加します。より多くのソフトウェアがより多様なインフラでより頻繁に更新または追加されます。 そのため、各リリースのエンドツーエンドの可視性と、アプリケーションやインフラの健全性への影響を把握することが不可欠です。たとえば、リリースがいつ発生したかというコンテキストがないと、サービスレイテンシーのスパイクが問題を示しているのか、それともデプロイプロセスの副作用なのかを理解するのは困難です。この情報は、リリースによってパフォーマンスが低下したことを示している可能性があり、以前のバージョンにロールバックするか、解決すべき問題を特定するかを決定するのに役立ちます。

用語

リリース

そのアーキテクチャが一般的に利用可能になるために、コードやインフラに変更が発生した時点。変更によりシステムの健全性やパフォーマンスに影響を与える可能性があります。

リリースマーカー

システムの変更がユーザーに利用可能になったときのチャートまたはリストのインジケーター。

インシデント

人間が調査する必要があるパフォーマンスの低下に関連した問題。

設定

以下のセクションでは、デプロイプロセスの一部としてリリースを作成する方法、Instanaのダッシュボードでリリースを表示する方法、そしてCI/CDによる継続的な変更で発生する問題の解決にどのように役立つかについて説明します。

Instana REST APIまたはJenkinsとのInstana Pipeline Feedback Integrationを使用して、デプロイプロセスの一部としてリリースを簡単に作成します。

リリースAPI

リリースAPIは、リリースを作成、読み込み、更新、削除するエンドポイントを提供します。 例として、次のcurlコマンドは、ミリ秒単位のUNIXタイムスタンプで指定された時点の My First Release という名前の新しいリリースを作成します。

curl --location --request POST "{{base}}/api/releases" \
  --header "Authorization: apiToken {{apiToken}}" \
  --header "Content-Type: application/json" \
  --data "{
	\"name\": \"My First Release\",
	\"start\": 1565610536335
}"

注意:

  • 使用されたAPIトークンには「Configuration of releases」権限が必要です。
  • リリースにはスコープがないため、監視対象システム全体にグローバルに適用されます。

JenkinsとのInstana Pipeline Feedback Integration

Jenkinsプラグインを使って、既存のCI/CDツールとのスムーズなインテグレーションも可能です。プラグインと詳細情報はGitHubにあります。

使用法

ヘルスマーカーのリリース

アウトライナーとメトリックの異常や変異を関連付けるために、Instanaはさまざまな方法で各リリースの情報を含めます。たとえば、メトリックの急上昇がデプロイの結果であるかどうかを判断するための追加のコンテキストが提供されます。リリースヘルスマーカーは、リリース前後のシステムの健全度を比較するツールとして使用できます。

チャート

下のスクリーンショットに示すように、リリースマーカーは、環境内のすべてのグラフに注釈として表示されます。このマーカーは、アプリケーションのパフォーマンスの低下や向上などをすばやく見つけるための参照ポイントとして機能します。

release-marker-charts

インシデントビュー

トリガーされたインシデントをリリースの前と後に分けるために、リリースマーカーが以下に示すようにインシデントビューに挿入されます。

release-marker-incidents

インシデントビューのリリースマーカーには、次の情報が含まれています。

  • Name:ユーザー定義のリリース名
  • Release time:リリースが発生した時点
  • Timeframe:タイムフレーム。健全性とカウントメトリックが基づく時間枠。これは通常、Instanaのタイムピッカーで選択された時間枠と同じです
  • Number of ongoing Incidents:指定された時間枠内の各リリースの前と後で進行中のインシデントの数。リリースをまたいで進行中の単一インシデントは、リリースの前後双方にカウントされます
  • Health:進行中のインシデントに基づくリリースの前と後の監視対象システムの健全性。パーセント値は、進行中のインシデントがない時間の比率を表します

ダイナミックフォーカスが適用されると、そのスコープはインシデントビューのリリースマーカーに表示されるメトリックに反映されます。これにより、監視対象システムのサブセットに対するリリースの影響を調査できます。例として、ダイナミックフォーカスクエリ entity.service.name:shop を使用してインシデントをフィルターダウンできます。その shop サービスの最新の設定変更が、関連するすべてのエンティティの一致したインシデントに従って、健全性向上にに貢献するかどうかを調べることができます。

リリースのナビゲーション

トリガーされたインシデントをリリースの前と後に分けるために、リリースマーカーが以下に示すようにインシデントビューに挿入されます。

Instanaは、リリースをチャートまたはインシデントビューに表示するほか、最近のリリースに移動するさまざまな方法を提供します。現在のライブリリースに従うか、スコープをリリースのデプロイ前後のタイムフレームにします。

リリース通知

新しいリリースが作成されるたびに通知され、次のXNUMXつのオプションのアクションを実行できます。

  • フォーカスするリリースの時間: 選択したタイムフレームを変更して、新しいリリースが表示されるようにしますが、タイムフレームの現在のウィンドウサイズは変更されないため、リリース前後のメトリックを簡単に比較できます。
  • リリースのライブをフォロー: ライブモード を有効にして、リリースの効果がすべてのダッシュボードやチャートに即座に表示されるようにします。

release-notification

リリース時間にフォーカスする

次のスクリーンショットに示すように、Instanaのタイムピッカーには最新のリリースが一覧表示されます。

release-time-picker

リリースを選択すると、現在のウィンドウサイズが変更されないようにタイムフレームが調整されますが、一時的なビューではリリース時間が中央に配置されます。 これにより、パフォーマンスとシステムの健全性への影響を調査できます。

注意: APIを使用してリリースを作成していない場合、タイムピッカーに「Go to a Release」セクションが表示されない場合があります。