すべてのプロダクト
Search
ドキュメントセンター

Application Real-Time Monitoring Service:単一 Pod 内のマルチコンテナ アプリケーションの監視

最終更新日:Jun 22, 2026

サイドカー シナリオでは、単一の Pod で複数のコンテナを実行でき、それぞれのコンテナには異なるプログラミング言語で書かれたアプリケーションが含まれます。このトピックでは、ack-onepilot コンポーネントを使用して、これらのポリグロット アプリケーションをインストルメントする方法について説明します。

前提条件

ack-onepilot のバージョンが 4.2.0 以降であること。

操作手順

  1. 次のいずれかのトピックを参照して、ack-onepilot をインストールし、必要なリソース アクセス権限を付与します。

  2. ワークロードに必要なラベルを追加します。

    アプリケーション YAML の例

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: multicontainer          
      name: multicontainer
    spec:
      progressDeadlineSeconds: 600
      replicas: 1
      revisionHistoryLimit: 10
      selector:
        matchLabels:
          app: multicontainer
      strategy:
        rollingUpdate:
          maxSurge: 25%
          maxUnavailable: 25%
        type: RollingUpdate
      template:
        metadata:
          labels:
            app: multicontainer
            apsara.apm/container.test-java.app-language: java
            apsara.apm/container.test-java.armsPilotAutoEnable: 'on'
            apsara.apm/container.test-java.armsPilotCreateAppName: multilanguage-java
            apsara.apm/container.test-go.app-language: golang
            apsara.apm/container.test-go.armsPilotAutoEnable: 'on'
            apsara.apm/container.test-go.armsPilotCreateAppName: multilanguage-go
            apsara.apm/container.test-python.app-language: python
            apsara.apm/container.test-python.armsPilotAutoEnable: 'on'
            apsara.apm/container.test-python.armsPilotCreateAppName: multilanguage-python
        spec:
          containers:
            - command:
                - sleep
                - '360000'
              image: alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3:latest
                # 実際の Java アプリケーションのイメージに置き換えてください。
              imagePullPolicy: Always
              name: test-java
              resources:
                requests:
                  cpu: 250m
                  memory: 512Mi
            - command:
                - sleep
                - '3600000'
              image: alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3:latest
                # 実際の Go アプリケーションのイメージに置き換えてください。
              imagePullPolicy: Always
              name: test-go
              resources:
                requests:
                  cpu: 500m
                  memory: 512Mi
            - command:
                - sleep
                - '3600000'
              image: alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3:latest
                # 実際の Python アプリケーションのイメージに置き換えてください。
              imagePullPolicy: Always
              name: test-python
              resources:
                requests:
                  cpu: 500m
                  memory: 512Mi

    上記の YAML では、test-javatest-gotest-python という 3 つの個別のコンテナで Java、Go、Python を使用するアプリケーションを定義しています。

    監視データを分離するには、各コンテナをインストルメントして、個別の ARMS アプリケーションにデータを送信するように設定します。次の手順に従ってください。

    1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

    2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ワークロード] > [デプロイ] を選択します。

    3. ステータスなし ページで、対象のアプリケーションを見つけ、操作列で image > [YAML の編集] を選択します。

      新しいアプリケーションを作成するには、[YAML から作成] をクリックします。

    4. YAML ファイルの spec.template.metadata セクションに次の labels を追加してから、更新 をクリックします。

      labels:
        # ${containerName} を実際のコンテナ名に置き換えてください。
        apsara.apm/container.${containerName}.app-language: java # コンテナの実際のプログラミング言語に置き換えてください。
        apsara.apm/container.${containerName}.armsPilotAutoEnable: 'on'
        apsara.apm/container.${containerName}.armsPilotCreateAppName: "<your-deployment-name>"    # <your-deployment-name> をアプリケーション名に置き換えてください。
  3. お使いのアプリケーションがARMS コンソールアプリケーションモニタリング > アプリケーションリストページに表示され、データが報告されていれば、インストルメンテーションは成功です。

    検索ボックスに multilanguage- と入力して、multilanguage-gomultilanguage-javamultilanguage-python の 3 つのアプリケーションをフィルタリングします。