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

Application Real-Time Monitoring Service:単一 Pod 内の複数コンテナーアプリケーションの監視を開始する

最終更新日:Nov 09, 2025

Sidecar シナリオでは、Pod には異なるプログラミング言語で実行されるアプリケーションを含む複数のコンテナーが含まれる場合があります。 このトピックでは、Sidecar シナリオで 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 は、Java、Golang、および Python プログラミング言語を同時に使用する複雑なアプリケーションを表します。 このアプリケーションには、test-java、test-go、test-python という名前の、異なるプログラミング言語を持つ 3 つのコンテナーが含まれています。

    これら 3 つのコンテナーを 3 つの異なる 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 コンソール[アプリケーション監視] > [アプリケーション] ページにアプリケーションが表示され、データが報告されている場合、接続は成功です。

    image