콘텐츠로 이동

메트릭 설정

실무 운영 가이드에서 Truthound, Prometheus-compatible을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.

빠른 시작

from truthound.infrastructure.metrics import configure_metrics, get_metrics

# Configure metrics
configure_metrics(
    enabled=True,
    service="truthound",
    environment="production",
    enable_http=True,
    port=9090,
)

# Access metrics at http://localhost:9090/metrics

메트릭Config

from truthound.infrastructure.metrics import MetricsConfig

config = MetricsConfig(
    enabled=True,                    # Enable metrics collection
    service="truthound",             # Service name for labels
    environment="production",        # Environment name for labels
    namespace="truthound",           # Metric name prefix

    # HTTP server
    enable_http=False,               # Enable HTTP endpoint
    host="0.0.0.0",                  # HTTP server host
    port=9090,                       # HTTP server port
    path="/metrics",                 # Metrics endpoint path

    # Push gateway
    push_gateway_url="",             # Prometheus push gateway URL
    push_interval=15.0,              # Push interval in seconds
    push_job="truthound",            # Job name for push gateway

    # Default labels
    default_labels={},               # Labels added to all metrics

    # Histogram buckets
    latency_buckets=(
        0.001, 0.005, 0.01, 0.025, 0.05, 0.1,
        0.25, 0.5, 1.0, 2.5, 5.0, 10.0,
    ),
    size_buckets=(
        100, 1000, 10000, 100000, 1000000,
        10000000, 100000000, 1000000000,
    ),
)

환경 변수

실무 운영 가이드에서 Variable을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. 설정 Field 실무 운영 가이드에서 Default을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
실무 운영 가이드에서 METRICS_ENABLED, METRICS_ENABLED을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. 실무 운영 가이드에서 enabled을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. 실무 운영 가이드에서 true을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
실무 운영 가이드에서 SERVICE_NAME, SERVICE_NAME을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. 실무 운영 가이드에서 service을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. 실무 운영 가이드에서 ""을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
실무 운영 가이드에서 ENVIRONMENT, ENVIRONMENT을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. 실무 운영 가이드에서 environment을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. 실무 운영 가이드에서 ""을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
실무 운영 가이드에서 METRICS_HTTP_ENABLED, METRICS_HTTP_ENABLED을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. 실무 운영 가이드에서 enable_http을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. 실무 운영 가이드에서 false을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
실무 운영 가이드에서 METRICS_PORT, METRICS_PORT을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. 실무 운영 가이드에서 port을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. 실무 운영 가이드에서 9090을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.
실무 운영 가이드에서 METRICS_PUSH_GATEWAY_URL, METRICS_PUSH_GATEWAY_URL을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. 실무 운영 가이드에서 push_gateway_url을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다. 실무 운영 가이드에서 ""을(를) 기준으로 데이터 품질 검증, 워크플로우 자동화, 결과 해석 방법을 설명합니다.

검증기 메트릭

메트릭 for 검증 operations:

truthound_validator_executions_total
  {validator, dataset, column, status}

truthound_validator_duration_seconds
  {validator, dataset}

truthound_validator_issues_total
  {validator, dataset, column, severity}

truthound_validator_rows_processed_total
  {validator, dataset}

truthound_validators_active
  {dataset}

Usage

from truthound.infrastructure.metrics import ValidatorMetrics

metrics = ValidatorMetrics()

# Record execution
metrics.record_execution(
    validator="not_null",
    dataset="users",
    column="email",
    success=True,
    duration_seconds=0.5,
    issues_found=0,
    rows_processed=10000,
)

# Time context manager
with metrics.time("not_null", "users", "email"):
    run_validation()

# Manual metric updates
metrics.validations_total.inc(validator="null", status="success")
metrics.issues_found.inc(severity="high", count=15)

체크포인트 메트릭

메트릭 for 체크포인트 operations:

truthound_checkpoint_executions_total
  {checkpoint, status}

truthound_checkpoint_duration_seconds
  {checkpoint}

truthound_checkpoint_issues
  {checkpoint, severity}

truthound_checkpoint_validators_run_total
  {checkpoint}

truthound_checkpoint_last_execution_timestamp
  {checkpoint}

truthound_checkpoints_running

Usage

from truthound.infrastructure.metrics import CheckpointMetrics

metrics = CheckpointMetrics()

# Record checkpoint execution
metrics.checkpoints_total.inc(name="daily_check", status="success")
metrics.checkpoint_duration.observe(duration_seconds)
metrics.actions_total.inc(action_type="slack", status="success")

DataSource 메트릭

메트릭 for data 소스 operations:

truthound_datasource_connections_total
  {backend, status}

truthound_datasource_query_duration_seconds
  {backend}

truthound_datasource_rows_processed_total
  {backend}

Usage

from truthound.infrastructure.metrics import DataSourceMetrics

metrics = DataSourceMetrics()

metrics.connections_total.inc(backend="postgresql", status="success")
metrics.query_duration.observe(duration_seconds, backend="postgresql")
metrics.rows_processed.inc(count=100000)

HTTP 메트릭 Server

실무 운영 가이드에서 HTTP을(를) 다루는 항목입니다:

from truthound.infrastructure.metrics import MetricsServer

server = MetricsServer(port=9090, path="/metrics")
server.start()

# Access metrics at http://localhost:9090/metrics
# Server runs in background thread

Push Gateway

실무 운영 가이드에서 관련 설정과 실행 흐름을(를) 다루는 항목입니다:

configure_metrics(
    enabled=True,
    push_gateway_url="http://pushgateway:9091",
    push_interval=15.0,
    push_job="truthound",
)

Store 관측성 메트릭

실무 운영 가이드에서 Additional을(를) 다루는 항목입니다:

from truthound.stores.observability import MetricsConfig, MetricsExportFormat

config = MetricsConfig(
    enabled=True,
    export_format=MetricsExportFormat.PROMETHEUS,
    prefix="truthound_store",
    labels={"service": "data-quality"},
    enable_http_server=True,
    http_port=9090,
    http_path="/metrics",
    push_gateway_url=None,
    push_interval_seconds=10.0,
    include_timestamps=True,
)

Prometheus Scrape 설정

Example Prometheus 설정:

scrape_configs:
  - job_name: 'truthound'
    static_configs:
      - targets: ['truthound:9090']
    scrape_interval: 15s
    metrics_path: /metrics

Grafana Dashboard Example

실무 운영 가이드에서 Key을(를) 다루는 항목입니다:

# Validation success rate
sum(rate(truthound_validator_executions_total{status="success"}[5m])) /
sum(rate(truthound_validator_executions_total[5m]))

# Issues by severity
sum by (severity) (truthound_validator_issues_total)

# Checkpoint duration p95
histogram_quantile(0.95, rate(truthound_checkpoint_duration_seconds_bucket[5m]))

# Active validators
truthound_validators_active

# Rows processed per second
rate(truthound_validator_rows_processed_total[1m])