コンテンツにスキップ

アリババクラウド SAE

アリババクラウド SAE(Serverless App Engine)のメトリクス、ログ、トレース情報を収集します。

設定

SAE にデプロイされたアプリケーションは、以下の手順でトレース、メトリクス、ログデータを接続できます。手順は次のとおりです。

  • アプリケーションは APM を接続して Trace データを DataKit に報告します
  • アプリケーションのログデータは KafkaMQ で収集し、DataKit で消費できます
  • アプリケーションコンテナのメトリクスデータは、アリババクラウドの監視 API と Function プラットフォーム(DataFlux.f(x))を利用して収集した後、Guance に送信します
  • DataKit が収集したデータは一元的に処理され、Guance に送信されます

注意:SAE 上に DataKit をデプロイすると、帯域幅を節約できます。

DataKit アプリを作成する

SAE 上で DataKit アプリを作成します

  • SAE に入り、アプリ一覧 - アプリ作成 をクリックします。
  • アプリ情報を入力します
    • アプリ名
    • 名前空間を選択します。なければ作成します
    • vpc を選択します。なければ作成します
    • セキュリティグループを選択します: vswitch は NAT のスイッチと一致させる必要があります
    • インスタンス数は必要に応じて調整します
    • CPU 1 core、メモリ 1G
    • 完了したら次へ をクリックします
  • イメージを追加します:pubrepo.guance.com/datakit/datakit:1.31.0
  • 環境変数を追加し、設定内容は次のとおりです:
{
  "ENV_DATAWAY": "https://openway.guance.com?token=tkn_xxx",
  "KAFKAMQ": "# {\"version\": \"1.22.7-1510\", \"desc\": \"do NOT edit this line\"}\n\n[[inputs.kafkamq]]\n  # addrs = [\"alikafka-serverless-cn-8ex3y7ciq02-1000.alikafka.aliyuncs.com:9093\",\"alikafka-serverless-cn-8ex3y7ciq02-2000.alikafka.aliyuncs.com:9093\",\"alikafka-serverless-cn-8ex3y7ciq02-3000.alikafka.aliyuncs.com:9093\"]\n  addrs = [\"alikafka-serverless-cn-8ex3y7ciq02-1000-vpc.alikafka.aliyuncs.com:9092\",\"alikafka-serverless-cn-8ex3y7ciq02-2000-vpc.alikafka.aliyuncs.com:9092\",\"alikafka-serverless-cn-8ex3y7ciq02-3000-vpc.alikafka.aliyuncs.com:9092\"]\n  # your kafka version:0.8.2 ~ 3.2.0\n  kafka_version = \"3.3.1\"\n  group_id = \"datakit-group\"\n  # consumer group partition assignment strategy (range, roundrobin, sticky)\n  assignor = \"roundrobin\"\n\n  ## kafka tls config\n   tls_enable = false\n\n  ## -1:Offset Newest, -2:Offset Oldest\n  offsets=-1\n\n\n  ## user custom message with PL script.\n  [inputs.kafkamq.custom]\n    #spilt_json_body = true\n    ## spilt_topic_map determines whether to enable log splitting for specific topic based on the values in the spilt_topic_map[topic].\n    #[inputs.kafkamq.custom.spilt_topic_map]\n     # \"log_topic\"=true\n     # \"log01\"=false\n    [inputs.kafkamq.custom.log_topic_map]\n      \"springboot-server_log\"=\"springboot_log.p\"\n    #[inputs.kafkamq.custom.metric_topic_map]\n    #  \"metric_topic\"=\"metric.p\"\n    #  \"metric01\"=\"rum_apm.p\"\n    #[inputs.kafkamq.custom.rum_topic_map]\n    #  \"rum_topic\"=\"rum_01.p\"\n    #  \"rum_02\"=\"rum_02.p\"\n",
  "SPRINGBOOT_LOG_P": "abc = load_json(_)\n\nadd_key(file, abc[\"file\"])\n\nadd_key(message, abc[\"message\"])\nadd_key(host, abc[\"host\"])\nmsg = abc[\"message\"]\ngrok(msg, \"%{TIMESTAMP_ISO8601:time} %{NOTSPACE:thread_name} %{LOGLEVEL:status}%{SPACE}%{NOTSPACE:class_name} - \\\\[%{NOTSPACE:method_name},%{NUMBER:line}\\\\] %{DATA:service_name} %{DATA:trace_id} %{DATA:span_id} - %{GREEDYDATA:msg}\")\n\nadd_key(topic, abc[\"topic\"])\n\ndefault_time(time,\"Asia/Shanghai\")",
  "ENV_GLOBAL_HOST_TAGS": "host=__datakit_hostname,host_ip=__datakit_ip",
  "ENV_HTTP_LISTEN": "0.0.0.0:9529",
  "ENV_DEFAULT_ENABLED_INPUTS": "dk,cpu,disk,diskio,mem,swap,system,hostobject,net,host_processes,container,ddtrace,statsd,profile"
}

設定項目の説明:

  1. ENV_DATAWAY:必須、Guance に報告するゲートウェイアドレス
  2. KAFKAMQ:必須ではありません。kafkamq コレクターの設定です。詳細は Kafka コレクター設定ファイルの説明を参照してください
  3. SPRINGBOOT_LOG_P:必須ではありません。KAFKAMQ と組み合わせて使用するログ pipeline スクリプトで、kafka からのログデータを分割するために使います
  4. ENV_GLOBAL_HOST_TAGS:必須、コレクターのグローバル tag
  5. ENV_HTTP_LISTEN:必須、Datakit のポート。ip は 0.0.0.0 でなければ、他の pod からアクセスできません
  6. ENV_DEFAULT_ENABLED_INPUTS:必須、デフォルトで有効にするコレクター

詳細はアリババクラウド SAE アプリエンジン可観測性ベストプラクティスを参照してください

トレース

アリババクラウド SAE にアプリケーションをデプロイする場合、APM を対応するコンテナに組み込む必要があります:

  • APM がビルドに必要とするパッケージファイルを oss にアップロードするか、APM のビルドパッケージをアプリケーションの Dockerfile に統合してビルドします
  • 起動時の読み込みは、通常環境で APM を接続する手順と同じです

詳細はアリババクラウド SAE アプリエンジン可観測性ベストプラクティスを参照してください

メトリクス

Func をインストールする

Guance の統合 - 拡張 - マネージド版 Func の利用を推奨します

自分で Func をデプロイする場合はFunc を自分でデプロイするを参照してください

スクリプトを有効化する

ヒント:要件を満たすアリババクラウド AK を事前に準備してください(簡単のため、グローバル読み取り専用権限 ReadOnlyAccess を直接付与してもかまいません)

マネージド版の有効化スクリプト

  1. Guance コンソールにログインします
  2. 【統合】メニューをクリックし、【クラウドアカウント管理】を選択します
  3. 【クラウドアカウントを追加】をクリックし、【アリババクラウド】を選択して、画面に必要な情報を入力します。すでにクラウドアカウント情報を設定済みの場合は、この手順をスキップします
  4. 【テスト】をクリックし、テスト成功後に【保存】をクリックします。テストに失敗した場合は、関連する設定情報が正しいか確認し、再テストしてください
  5. 【クラウドアカウント管理】一覧で追加済みのクラウドアカウントを確認できます。該当するクラウドアカウントをクリックして詳細ページに入ります
  6. クラウドアカウント詳細ページの【統合】ボタンをクリックし、未インストール 一覧から アリババクラウド SAE を見つけて、【インストール】ボタンをクリックすると、インストール画面が表示されるのでインストールします。

手動有効化スクリプト

  1. Func コンソールにログインし、【スクリプトマーケット】をクリックして Guance スクリプトマーケットに入り、integration_alibabacloud_sae_appintegration_alibabacloud_sae_instance を検索します

  2. 【インストール】をクリックし、対応するパラメータを入力します:アリババクラウド AK ID、AK Secret、アカウント名。

  3. 【デプロイして起動スクリプトを実行】をクリックすると、システムが自動的に Startup スクリプトセットを作成し、対応する起動スクリプトを自動で設定します。

  4. 有効化後は「管理 / 自動トリガー設定」で対応する自動トリガー設定を確認できます。【実行】をクリックすると、定期実行を待たずに即時 1 回実行できます。しばらくすると、実行タスクの記録と対応するログを確認できます。

確認

  1. 「管理 / 自動トリガー設定」で対応するタスクに自動トリガー設定が存在するか確認し、同時に対応タスクの記録とログを確認して異常がないかチェックします
  2. Guance の「インフラ / カスタム」で資産情報が存在するか確認します
  3. Guance の「メトリクス」で対応する監視データがあるか確認します

メトリクス一覧

メトリクス 単位 Dimensions 説明
cpu_Average % userId、appId アプリケーション CPU
diskIopsRead_Average Count/Second userId、appId アプリケーションディスク IOPS 読み取り
diskIopsWrite_Average Count/Second userId、appId アプリケーションディスク IOPS 書き込み
diskRead_Average Byte/Second userId、appId アプリケーションディスク I/O スループット読み取り
diskTotal_Average Kilobyte userId、appId アプリケーションディスク総量
diskUsed_Average Kilobyte userId、appId アプリケーションディスク使用量
diskWrite_Average Byte/Second userId、appId アプリケーションディスク I/O スループット書き込み
instanceId_memoryUsed_Average MB userId、appId、instanceId インスタンス使用済みメモリ
instance_cpu_Average % userId、appId、instanceId インスタンス CPU
instance_diskIopsRead_Average Count/Second userId、appId、instanceId インスタンスディスク IOPS 読み取り
instance_diskIopsWrite_Average Count/Second userId、appId、instanceId インスタンスディスク IOPS 書き込み
instance_diskRead_Average Byte/Second userId、appId、instanceId インスタンスディスク I/O スループット読み取り
instance_diskTotal_Average Kilobyte userId、appId、instanceId インスタンスディスク総量
instance_diskUsed_Average Kilobyte userId、appId、instanceId インスタンスディスク使用量
instance_diskWrite_Average Byte/Second userId、appId、instanceId インスタンスディスク I/O スループット書き込み
instance_load_Average min userId、appId、instanceId インスタンス平均負荷
instance_memoryTotal_Average MB userId、appId、instanceId インスタンス総メモリ
instance_memoryUsed_Average MB userId、appId、instanceId インスタンス使用済みメモリ
instance_netRecv_Average Byte/Second userId、appId、instanceId インスタンス受信バイト
instance_netRecvBytes_Average Byte userId、appId、instanceId インスタンス総受信バイト
instance_netRecvDrop_Average Count/Second userId、appId、instanceId インスタンス受信データドロップ
instance_netRecvError_Average Count/Second userId、appId、instanceId インスタンス受信エラーパケット
instance_netRecvPacket_Average Count/Second userId、appId、instanceId インスタンス受信パケット
instance_netTran_Average Byte/Second userId、appId、instanceId インスタンス送信バイト
instance_netTranBytes_Average Byte userId、appId、instanceId インスタンス総送信バイト
instance_netTranDrop_Average Count/Second userId、appId、instanceId インスタンス送信データドロップ
instance_netTranError_Average Count/Second userId、appId、instanceId インスタンス送信エラーパケット
instance_netTranPacket_Average Count/Second userId、appId、instanceId インスタンス送信パケット
instance_tcpActiveConn_Average Count userId、appId、instanceId インスタンスのアクティブ TCP 接続数
instance_tcpInactiveConn_Average Count userId、appId、instanceId インスタンスの非アクティブ TCP 接続数
instance_tcpTotalConn_Average Count userId、appId、instanceId インスタンス総 TCP 接続数
load_Average min userId、appId アプリケーション平均負荷
memoryTotal_Average MB userId、appId アプリケーション総メモリ
memoryUsed_Average MB userId、appId アプリケーション使用済みメモリ
netRecv_Average Byte/Second userId、appId アプリケーション受信バイト
netRecvBytes_Average Byte userId、appId アプリケーション総受信バイト
netRecvDrop_Average Count/Second userId、appId アプリケーション受信データドロップ
netRecvError_Average Count/Second userId、appId アプリケーション受信エラーパケット
netRecvPacket_Average Count/Second userId、appId アプリケーション受信パケット
netTran_Average Byte/Second userId、appId アプリケーション送信バイト
netTranBytes_Average Byte userId、appId アプリケーション総送信バイト
netTranDrop_Average Count/Second userId、appId アプリケーション送信データドロップ
netTranError_Average Count/Second userId、appId アプリケーション送信エラーパケット
netTranPacket_Average Count/Second userId、appId アプリケーション送信パケット
tcpActiveConn_Average Count userId、appId アプリケーションのアクティブ TCP 接続数
tcpInactiveConn_Average Count userId、appId アプリケーションの非アクティブ TCP 接続数
tcpTotalConn_Average Count userId、appId アプリケーション総 TCP 接続数

ログ

アリババクラウド SAE は Kakfa 方式でログを Guance に出力できます。手順は次のとおりです。

  • SAE アプリで Kafka ログ報告を有効にします
  • DataKit で KafkaMQ ログ収集を有効にし、アプリケーションの Kafka ログ報告 Topic を収集します

詳細はアリババクラウド SAE アプリエンジン可観測性ベストプラクティスを参照してください

例:

[[inputs.kafkamq]]
  [inputs.kafkamq.custom]
    [inputs.kafkamq.custom.log_topic_map]
      "log_topic"="topic_name"
      "log01"="pipeline_name"

フィードバック

このページは役に立ちましたか?