2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Snowpark Container ServicesのEvent-table Service Metricsについてまとめる

Last updated at Posted at 2024-12-14

はじめに

Snowpark Container Services (SPCS)を運用する上で、サービスの状態監視は重要な要素です。本記事では、SPCSで利用可能なメトリクス収集の方法、特にEvent-table Service Metricsについて詳しく解説します。

メトリクス収集の2つの方法

SPCSでは、以下の2つの方法でメトリクスを収集できます。
この記事ではEvent-table Service Metricsに焦点を絞って解説していきます。

  1. Event-table Service Metrics

    • サービス個別のメトリクス収集
    • Service Specificationで収集するメトリクスを定義
    • Event Tableに記録され、SQLで分析可能
  2. Compute Pool Metrics

    • コンピュートプール全体のメトリクス
    • Prometheusと互換性のあるAPI経由でアクセス
    • 各ノードがTCPポート9001で公開

Event-table Service Metricsの基本

メトリクスの構造

メトリクス名は以下の構造で構成されています:

<target>.<component>.<metric>
  • target: 監視対象(例:container)
  • component: 監視対象の要素(例:cpu)
  • metric: 測定値の種類(例:usage)

例:container.cpu.usageは、コンテナのCPU使用量

設定方法

Service Specificationに以下のように記述することで、メトリクスの収集を有効化できます:

CREATE SERVICE echo_service
  IN COMPUTE POOL tutorial_compute_pool
  FROM SPECIFICATION $$
    spec:
      containers:
      - name: echo
        image: /tutorial_db/data_schema/tutorial_repository/my_echo_service_image:latest
      
      platformMonitor:
        metricConfig:
          groups:
          - system
          - system_limits
      $$

利用可能なMetric Groups

1. system

基本的なシステムリソースの使用状況を監視します。

  • CPU関連
    • container.cpu.usage: CPU使用量(1.0 = 1コア)
  • メモリ関連
    • container.memory.usage: メモリ使用量(バイト単位)
  • GPU関連
    • container.gpu.memory.usage: GPUメモリ使用量
    • container.gpu.utilization: GPU使用率

2. system_limits

リソースの制限値と要求値を監視します。

  • *.*.limit: 各リソースの上限値
  • *.*.requested: 各リソースの要求値
  • container.gpu.memory.capacity: GPUメモリの容量

3. status

コンテナの状態を監視します。

  • 状態フラグ
    • container.state.running: 実行中
    • container.state.pending: 待機中
    • container.state.finished: 終了
  • 付随情報
    • container.restarts: 再起動回数
    • container.state.last.finished.reason: 終了理由
    • container.state.last.finished.exitcode: 終了コード

4. network

ネットワークトラフィックを監視します。

  • 送信
    • network.egress.transmitted.bytes: 送信バイト数
    • network.egress.transmitted.packets: 送信パケット数
  • 受信
    • network.egress.received.bytes: 受信バイト数
    • network.egress.received.packets: 受信パケット数
  • 拒否
    • network.egress.denied.packets: ポリシーによる拒否パケット数

5. storage

ファイルシステムの使用状況を監視します。

  • 容量と使用量
    • volume.capacity: ファイルシステムの総容量
    • volume.usage: 使用容量
  • I/O性能
    • volume.read.throughput: 読み取りスループット
    • volume.write.throughput: 書き込みスループット
    • volume.read.iops: 読み取り操作数/秒
    • volume.write.iops: 書き込み操作数/秒

メトリクスの分析

Event-table Service Metricsは、SQLを使用して簡単に分析できます。

基本的なメトリクス確認

SELECT timestamp, record, value
  FROM my_events
  WHERE timestamp > DATEADD(hour, -1, CURRENT_TIMESTAMP())
    AND RESOURCE_ATTRIBUTES:"snow.service.name" = '<SERVICE_NAME>'
    AND RECORD_TYPE = 'METRIC'
    ORDER BY timestamp, group DESC
    LIMIT 10;

CPU利用率の変化確認

SELECT RECORD:"metric":"name" as metrics_name, value::double, timestamp
  FROM <EVENT_TABLE_NAME>
  WHERE timestamp > DATEADD(hour, -1, CURRENT_TIMESTAMP())
    AND RESOURCE_ATTRIBUTES:"snow.service.name" = '<SERVICE_NAME>'
    AND RECORD_TYPE = 'METRIC'
    AND ((RECORD:"metric":"name" = 'container.cpu.usage') 
         or (RECORD:"metric":"name" = 'container.cpu.requested') 
         or (RECORD:"metric":"name" = 'container.cpu.limit'));

メモリ使用量の変化確認

SELECT RECORD:"metric":"name" as metrics_name, 
       value::int / (1024*1024*1024), 
       timestamp
  FROM <EVENT_TABLE_NAME>
  WHERE timestamp > DATEADD(hour, -10, CURRENT_TIMESTAMP())
    AND RESOURCE_ATTRIBUTES:"snow.service.name" = '<SERVICE_NAME>'
    AND RECORD_TYPE = 'METRIC'
    AND (RECORD:"metric":"name" = 'container.memory.usage')
    LIMIT 1000;

まとめ

SPCSを運用していく上で必要になってくるメトリクスについてまとめました。
Event-table Service MetricsはService Specificationに数行記述するだけでEvent TableにCPU利用率などのメトリクスを即座に記録することができるようになる便利な機能です。
うまく使いこなしてSPCSで構築したサービスを安定稼働させていきましょう💪

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?