콘텐츠로 이동

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.0에서 metrics 활성화

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 활성화가 성공한 것입니다. (만약 일부 Transaction 상태가 발생하지 않았다면, 예를 들어 rollback이 없었다면 해당 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) 현재 주기 내 커밋/롤백된 트랜잭션 최대 소요 시간

문서 평가

이 페이지가 도움이 되었나요?