관측성
개별 방문자를 추적하지 않고 집계 traffic, error, download, page usage를 보기 위해 Prometheus와 OpenTelemetry를 사용하세요.
Prometheus 메트릭
[metrics]
enabled = true
listen = "127.0.0.1:9100"
OTLP export
FLUXHEIM_OTLP=enabled
OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
OTEL_METRIC_EXPORT_INTERVAL=5000
observability compose stack은 website service에 대해 이 값을 설정합니다. 설정: FLUXHEIM_OTLP=disabled 을 사용하면 같은 binary를 metrics 또는 trace export 없이 실행합니다.
label은 low-cardinality로 유지하세요: route group, language, status class, download artifact, GitHub target은 유용합니다. 원시 IP 주소와 사용자 식별자는 사용하지 않습니다.
dashboard에 표시할 것
| 신호 | 중요한 이유 |
|---|---|
| route별 request | 어떤 public page와 docs가 사용되는지 보여줍니다. |
| locale별 request | 어떤 language에 가장 많은 관리가 필요한지 보여줍니다. |
| status class | 개별 사용자를 추적하지 않고 error를 보여줍니다. |
| Download clicks | 어떤 release artifact가 유용한지 보여줍니다. |
| GitHub click | 어떤 external project link가 중요한지 보여줍니다. |
privacy boundary
- raw request log 대신 aggregate counter와 histogram을 사용하세요.
- Do not label metrics with IP addresses, user agents, or full URLs.
- Prometheus 및 OTLP listener는 loopback 또는 internal network에 유지하세요.
- tracking 동작을 privacy 및 cookies page에 보이게 하세요.