アラート機能を拡張: Instana のスマートアラートをパッケージ化して共有する

スマートアラートはバンドルすることで、イベント定義やカスタムダッシュボードのパッケージ化と同様に、拡張性のある共同運用監視を実現できます。 このアプローチにより、オブザーバビリティは個々の取り組みから、エコシステム全体で再利用可能なベストプラクティスへと進化します。

スマートアラートは、メトリクスに基づいたインテリジェントなアラート機能であり、自動的なしきい値の提案や、予防的な監視を可能にする予測アラートなどの高度な機能を提供します。 統合パッケージ管理用の Instana CLIを使用すると、イベント定義やカスタムダッシュボードと同様に、Smart Alertの定義を定義、エクスポート、およびパッケージ化することができます。

統合ワークフローにSmart Alertsを組み込むことで、高度なメトリクスに基づくアラート機能を、チームや環境を問わず一貫して再利用できるようになります。 この柔軟性により、組織はニーズの変化に合わせて拡張可能な、モジュール式で共有可能なオブザーバビリティ資産を構築することができます。

前提条件

作業を開始する前に、統合パッケージ管理用の Instana CLI (stanctl-integration) がインストールされていることを確認してください。 インストール手順については、 統合パッケージ管理用 CLI ツール「stanctl-integration – Instana 」 を参照してください。

統合パッケージ(プロデューサー)を作成する

パッケージ作成者は、チームや環境をまたいで共有・再利用可能なSmart Alertの設定を作成する必要があります:

  1. 統合パッケージを初期化してください。 パッケージを初期化するには、[実行] stanctl-integration init をクリックし、含めたい統合タイプを選択してください。 ディレクトリ構造は、選択内容に基づいて生成されます。 たとえば、「スマートアラート」と「ダッシュボード」を選択すると、次のような構造が作成されます:
    packages
    └── @instana-integration
       └── packagename
           ├── dashboards
           ├── smart-alerts
           ├── README.md
           └── package.json
    初期設定の詳細については、 「 Instana のダッシュボードを一般公開する」 を参照してください
  2. Instana でスマートアラートを設定します。 パッケージ構造の準備が整ったら、 Instana のUIでSmart Alertの定義を作成してください。 各セクションに移動し、「スマートアラート」タブを開くことで、さまざまな状況に合わせたスマートアラートを作成できます。 例:
    • インフラストラクチャのスマートアラートを設定するには、 「インフラストラクチャ 」> 「スマートアラート 」タブに移動し、 「スマートアラートを作成」 をクリックします。
    • モバイルアプリのスマートアラートを設定するには、 「ウェブサイトとモバイルアプリ」 > 「モバイルアプリ」 タブに移動し、モバイルアプリ名をクリックしてから、「スマートアラートを追加」をクリックします。
    UI でのスマートアラートの作成に関する詳細については、以下を参照してください:
  3. スマートアラートの定義をエクスポートします。 スマートアラートの定義が完了したら、CLI を使用して、それらを再利用可能な ` JSON ` ファイルとしてエクスポートします
    # Export Smart Alerts by name
    $ stanctl-integration export \
      --server $INSTANA_SERVER \
      --token $API_TOKEN \
      --include type=smart-alert name="High CPU" \
      --location ./my-package# Export a Smart Alert by ID
    $ stanctl-integration export \
      --server $INSTANA_SERVER \
      --token $API_TOKEN \
      --include type=smart-alert id=alert12345 \
      --location ./my-package# Export multiple Smart Alerts with different filters
    $ stanctl-integration export \
      --server $INSTANA_SERVER \
      --token $API_TOKEN \
      --include type=smart-alert name="CPU" \
      --include type=smart-alert id=alert1234 \
      --location ./my-package
    CLIは自動的にSmart Alertエンドポイントにクエリを実行し、すべてのアラートをsmart-alertsフォルダ内に個別の JSON ファイルとして保存します。これにより、統合パッケージに組み込む準備が整います。
  4. スマートアラートの定義をリントしてください。 パッケージを公開する前に、`command` lint コマンドを使用して Smart Alert の定義を検証できます:
    # Navigate to the folder of the package you want to lint
    $ stanctl-integration lint# Linting with a specific package path
    $ stanctl-integration lint --path /path/to/package# Linting with debug mode enabled
    $ stanctl-integration lint --debug
    lint コマンドは、各 Smart Alert ファイル( JSON )に必要なフィールド(name, granularity, timeThreshold, および または rule + threshold rules[])が含まれているかを確認し、ファイルごとに詳細なエラーメッセージまたは成功メッセージを表示します。
  5. パッケージを公開してください。 スマートアラートの定義の準備ができたら、パッケージを公開して、他のユーザーが利用できるようにしてください。 次の 2 つのオプションがあります。
    • 自前でホストしているレジストリに公開する。 レジストリに公開するには、レジストリの認証情報を使用して次のコマンドを実行してください:
      $ stanctl-integration publish --package @instana-integration/packagename \
        --registry-username <your_username> --registry-email <your_email>
      初めて公開する場合、システムからレジストリへの認証を求めるメッセージが表示されます。
    • IBM がホストするリポジトリにコントリビュートしてください。 IBM がホストする公式リポジトリを通じて公開するには:
      • 「Observability-as-Code」のGitHub リポジトリをフォークしてください。
      • 統合パッケージを追加してください。
      • レビューのためにプルリクエストを送信してください。
      承認とマージが完了した後、パッケージは IBM がホストする中央レジストリに公開されます。 このパッケージは、 Instana コミュニティの全メンバーが利用できるようになりました。

統合パッケージを消費する(コンシューマー)

パッケージの作成者ではなく、利用者の場合は、パッケージをダウンロードして、 Instana 環境に適用するだけで済みます。

  1. パッケージをダウンロードします。 Smart Alertの定義を含むパッケージは、 Instana 環境にインポートする前に、中央レジストリからダウンロードできます。
    # Download a package from the central registry
    $ stanctl-integration download --package @instana-integration/packagename
  2. スマートアラートの定義をインポートします。 ダウンロード後、Smart Alertの定義を Instana 環境にインポートできます。
    # Import all Smart Alerts from the package
    $ stanctl-integration import \
      --package @instana-integration/packagename \
      --server $INSTANA_SERVER \
      --include "smart-alerts/**/*.json" \
      --token $API_TOKEN# Import a single Smart Alert from the package
    $ stanctl-integration import \
      --package @instana-integration/packagename \
      --server $INSTANA_SERVER \
      --include "smart-alerts/**/smartAlertTitle.json" \
      --token $API_TOKEN
    インポートが完了すると、スマートアラートの定義が有効になり、メトリクスに基づいたインテリジェントなアラート機能に加え、閾値の自動提案や予測機能を利用できるようになります。