コンテンツにスキップ

Seata

デプロイ実装

Seata は TC で Metrics データ収集を有効にし、Prometheus 監視システムへ出力できます。

Seata Metrics を有効にする

  • TC で Metrics の有効化を設定し、TC の Metrics 設定項目を開きます。Seata Server にはすでに Metrics(seata-metrics-all) 依存関係が含まれていますが、デフォルトでは無効です。metrics の収集設定を有効にする必要があります。(この手順は非常に重要です

Seata 1.5.0+ では application.yaml を使用します

seata:
  metrics:
    enabled: true
    registry-type: compact
    exporter-list: prometheus
    exporter-prometheus-port: 9898

Seata <1.5.0metrics を有効にする

GitHub アドレスの設定:https://github.com/seata/seata/blob/1.4.2/server/src/main/resources/file.conf.example

サーバー側の metrics 設定

【file.conf】

metrics {
  enabled = true
  registryType = "compact"
  # multi exporters use comma divided
  exporterList = "prometheus"
  exporterPrometheusPort = 9898
}

【registry.conf 】

registry {
    type = "nacos"
    nacos {
      application = "アプリ名"
      serverAddr = "xxxx:ポート"
      group = "グループ"
      namespace = "名前空間"
      cluster = "default"
      username = "実際の値を入力"
      password = "実際の値を入力"
    }
}
config {
  type = "file"
  file {
    name="file:/root/seata-config/file.conf"
  }
}
# HELP seata seata
# TYPE seata untyped
seata_transaction{meter="counter",role="tc",status="committed",} 1358.0 1551946035372
seata_transaction{meter="counter",role="tc",status="active",} 0.0 1551946035372
seata_transaction{meter="summary",role="tc",statistic="count",status="committed",} 6.0 1551946035372
seata_transaction{meter="summary",role="tc",statistic="total",status="committed",} 6.0 1551946035372
seata_transaction{meter="summary",role="tc",statistic="tps",status="committed",} 1.6163793103448276 1551946035372
seata_transaction{meter="timer",role="tc",statistic="count",status="committed",} 6.0 1551946035372
seata_transaction{meter="timer",role="tc",statistic="total",status="committed",} 910.0 1551946035372
seata_transaction{meter="timer",role="tc",statistic="max",status="committed",} 164.0 1551946035372
seata_transaction{meter="timer",role="tc",statistic="average",status="committed",} 151.66666666666666 1551946035372

上記のようなデータが取得できれば、metric の有効化が成功しています。(もし rollback など一部の Transaction 状態が発生していない場合、対応する Metrics 指標も存在しません(出力されません))

DataKit コレクターを有効にする

  • DataKit の Prometheus プラグインを有効にし、seata-prom.conf を作成します
cd /usr/local/datakit/conf.d/samples/
cp prom.conf.sample seata-prom.conf
  • seata-prom.conf 設定ファイルを修正します
[[inputs.prom]]
  urls = ["http://ip:9898/metrics"]
  ## url へのリクエストエラーを無視する
  ignore_req_err = false
  ## コレクターの別名
  source = "リソース名"
  metric_types = []
  ## 指標フィルタ。seata_ 関連の指標のみ収集
  metric_name_filter = ["seata_*"]
  measurement_prefix = "seata_"
  ## 収集間隔 "ns", "us" (or "µs"), "ms", "s", "m", "h"
  interval = "10s"
  ## TLS 設定
  tls_open = false
  ## カスタム Tags
  [inputs.prom.tags]
  app = "カスタム app 名"
  # more_tag = "some_other_value"
  • DataKit を再起動します
systemctl restart datakit

指標の詳細

Metrics 説明
seata.transaction(role=tc,meter=counter,status=active/committed/rollback) 現在アクティブ中/コミット済み/ロールバック済みのトランザクション総数
seata.transaction(role=tc,meter=summary,statistic=count,status=committed/rollback) 現在の周期内のコミット/ロールバックされたトランザクション数
seata.transaction(role=tc,meter=summary,statistic=tps,status=committed/rollback) 現在の周期内のコミット/ロールバックされたトランザクション TPS(transaction per second)
seata.transaction(role=tc,meter=timer,statistic=total,status=committed/rollback) 現在の周期内のコミット/ロールバックされたトランザクションの総処理時間
seata.transaction(role=tc,meter=timer,statistic=count,status=committed/rollback) 現在の周期内のコミット/ロールバックされたトランザクション数
seata.transaction(role=tc,meter=timer,statistic=average,status=committed/rollback) 現在の周期内のコミット/ロールバックされたトランザクションの平均処理時間
seata.transaction(role=tc,meter=timer,statistic=max,status=committed/rollback) 現在の周期内のコミット/ロールバックされたトランザクションの最大処理時間

フィードバック

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