Logo GH

観測可能性とテレメトリー

(セクション: 技術とインフラ)

概要

「なぜこういうふうに動くのか」に反応するのが観測力です?"新しい建物の解放なしで。iGamingでは、これは重要です:ピークトーナメント、支払いピーク、複数の地域性、責任あるギャンブル/PII要件。基準-メトリクス、ログ、トレース、共通識別子と標準(OpenTelemetry)で統一され、SLO契約、ノイズ耐性アラート、およびコスト管理を備えています。

1)オブザビリティフレームワーク: それが何で構成されているか

メトリック(時間ごとの数字):RED/USE、 business KPI、 SLI。TSDBに格納されます。
ログ(テキスト/JSON内のイベント):監査、エラー、ビジネス事実、セキュリティ。
トレース(スパン):サービスを通じたリクエストパス、レイテンシー、遅延の原因。
プロファイリング:CPU/メモリ/eBPFストリーム、ヒープ/ロックコンテンツ。
RUMと合成:実際のユーザー(ウェブ/アプリ)+ロボットチェック。
テレメトリーカタログ:スキーマ、PIIポリシー、保存期間、コストタグ。

2)シグナル分類と原則

レート、エラー、期間。
インフラストラクチャの使用:使用率、彩度、エラー(CPU、ディスク、ネットワーク、キュー)。
SLI/SLO:測定可能なインジケータ(例:successful requests/all、 p95 latency)、アクセシビリティゴール(例:"99.9%で30日")、エラー予算→プロセスのトリガー。
ハイカーディナリティ:ラベルはカット(地域/テナント/プロバイダー)に役立ちますが、TSDBを爆破することはありません。

3)標準とエンドツーエンドの相関

OpenTelemetry (OTel):メトリクス、ログ、トレース用の単一のSDK/プロトコル。
識別子:'trace_id'、 'span_id'、 'correlation_id'、 'player_id'(仮名)、'payment_route'。
フローID:入力ゲートウェイ→すべてのマイクロサービス→支払/PSP→キュー/ジョブ→ログ/メトリクス/スパン。

例: 相関ヘッダー


traceparent: 00-<trace_id>-<span_id>-01 x-request-id: <correlation_id>

4)メトリクス: 私たちは何をどのように測定するか

ネーミング/ラベル

'service="payments-api"、' env="prod'、 'region="eu-west"、'tenant'、'provider="pspX"'。

プロメテウスの例

prometheus
RED http_requests_total{service="api",route="/deposit",method="POST",status="200"}
http_request_duration_seconds_bucket{service="api",le="0. 25",route="/deposit"} 1234 http_request_errors_total{service="api",route="/deposit"}

USE cpu_utilization_ratio{node="n1"} 0. 71 queue_depth{queue="withdrawals"} 128

Бизнес payments_success_total{psp="X",currency="EUR"} 4521 payment_conversion_ratio{route="pspX"} 0. 948

ヒストグラムと例示

レイテンシーヒストグラム(ネイティブヒストグラム/β uckets)を保存し「、trace_id」で例題をバインドして「、slow bucket」から特定のトラックにジャンプします。

5)ログ: 構造化され、安全

JSONのみ(prodの「フリーフォーム」はありません)。
'timestamp'、 'severity'、 'service'、 'trace_id'、 'correlation_id'、 'player_id_hash'、 'event'、 'amount'、 'currency'、 'ip_hash'。
PIIマスキング/ハッシュ化、機密性のための個別のインデックス/保持。
ログパイプライン:解析→正規化→エンリッチメント(geo/ASN)→PII編集→インデックス化。

JSONイベントの例

json
{
"ts":"2025-11-05T10:42:31Z",
"sev":"ERROR",
"service":"payments-api",
"event":"psp_timeout",
"trace_id":"9c5e...e2",
"route":"pspX",
"duration_ms": 3100,
"attempt":2,
"player_id_hash":"p:1b7f...",
"pii_redacted":true
}

6)痕跡: 時間が失われるところ

スパン:入力リクエスト、プロバイダ呼び出し(PSP/ゲームプロバイダ)、データベース/キャッシュ、サービス間RPC。

属性: 'db。システム'、'net。ピア。名前'、'メッセージ。システム'、'psp。ルート'、'ゲーム。「プロバイダ」

サンプリング:
  • ボリュームのヘッドベース、
  • テールベース(条件によって:エラー、p95+、VIPセグメント)、
  • 支払/PII重大のための保証キープ。

7)前部および移動式の観察可能性

RUM: TTFB、 FCP/LCP/CLS/INP、 JSエラー、ネットワーク、SPAルーティング。
クラッシュレポート:symbolism、 deobfuscation、ビルドバージョン、デバイス/OS。
合成:入金/入金/レートシナリオ;geodistributed点検。

8) SLO、 SLIおよび間違いの予算

SLOの例(擬似YAML)

yaml service: payments-api sli:
- name: availability expr: sum(rate(http_requests_total{status=~"2..    3.."}[5m]))
/ sum(rate(http_requests_total[5m]))
- name: latency_p95 expr: histogram_quantile(0. 95, rate(http_request_duration_seconds_bucket[5m]))
targets:
availability: "99. 9%/30d"
latency_p95: "<=250ms/30d"
error_budget_policy:
fast_burn: 5% for 1h -> page, freeze deploy slow_burn: 20% for 24h -> incident, improvement plan

「すべてのメートル」ではなく、エラー予算による警告。
予算燃焼のための凍結手順:リミットリリース/カナリア。

9)騒音のない警報

マルチウィンドウ、マルチバーンルール:ショート/ロングウィンドウ。
重複排除/ルート化:オンコールでのサービス/地域/重要性による。
RunbookのURLとコンテキストの自動収集(最新のディスパッチ、構成の変更、依存関係グラフ)。
スケジュールされた作業中の静かな時間と抑制。

サンプルルール(PromQLアイデア)

promql alert: PaymentsSLOFastBurn expr: slo_error_rate_5m > 2 slo_budget_rate for: 15m labels: { severity="page", service="payments-api" }
annotations:
summary: "SLO fast burn"
runbook: "https://runbooks/payments/slo"

10)プロファイリングおよびeBPF

eBPF/profilers: CPU/allocフレームグラフ、I/Oレイテンシ、ネットワークドロップ、Syscall異常。
p99のボトルネック、ジッタおよびまれな凍結のために有用。

11)ビジネスの観察可能性(プロダクト及び危険)

財務/収益化:預金の変換、TTW(財布への時間)、著者。/決済、キャンセル/チャージバック。
ゲームのアクティビティ:保持/ストリーク、ライブベットのシェア、プロバイダーの「粘着性」。
アンチフラウド/乱用:アクションの速度、デバイス/IPマッチ、相関。
RG指標:長いセッション、「ドゴン」、ステーキの成長。
ビジネスメトリックは、テクニカルメトリックとアノテーションイベントと相関します。

12)安全、PIIおよび承諾

データゾーン:データセット/ログタグ('pii=true'、 'region=EU')。
インデックス作成前のマスキング、識別子のエイリアス。
監査のためのWORMの店;ロールベースのログアクセス。
保持期間:techlogs/audits/businessで異なります。
ログ内の生の秘密の禁止;CIでのスキャンチェック。

13)バリューマネジメント(FinOps)

Cardinality limit: 'user_id'、 'session_id'で注意してください。
参加/保持:ホット(7-14日)、ウォーム(30-90)、コールド(アーカイブ)。
テールベースのサンプリングとダウンサンプリングメトリクス。
タグ'チーム'、'サービス'、'テナント'による請求:「誰が観測性を燃やすか」を報告します。

14)ツール(参照スタック)

メトリクス:メトリクスのPrometheus/lake、ダッシュボードGrafana。
ログ:Loki/ELK;ingestion rules、 reduction/parsing。
トレイル:テンポ/イェーガー/OTelコレクター;メトリクスからのexemplars-links。
合成:Blackboxの輸出業者、ブラウザロボット。
アラート:Alertmanager/chat統合、通話中のローテーション。
プロファイリング:eBPF/連続的なプロファイリング。

15)例: 迅速に基礎を実装する

(a) API(擬似コード)のREDエクスポート:
python from prometheus_client import Counter, Histogram, start_http_server reqs = Counter('http_requests_total','', ['route','method','status'])
lat = Histogram('http_request_duration_seconds','', ['route'])
def handle(req):
with lat. labels(route=req. route). time():
status = app(req)
reqs. labels(route=req. route,method=req. method,status=str(status)). inc()
(b)ログにtrace_idを埋め込む(ミドルウェアのアイデア):
go tid:= ctx. Value("trace_id")
logger = logger. With("trace_id", tid)
logger. Info("deposit-accepted", "amount", amt, "route", route)
(c)メトリック内のインスタンス:
prometheus http_request_duration_seconds_bucket{..., le="0. 25"} 1023 # exemplar: trace_id=9c5e...

16)プロセスおよびオペレーティングシステム

メトリック/ラベル(ネーミングガイド)とダッシュボードテンプレートの統合辞書。
列に自動的にリリースアノテーション。
インシデント:カード、タイムライン、RCA無料、アクション項目。
トレーニングアラーム(「ゲームデー」):シミュレートされたドロップ、PSPの遅延、キャッシュの過熱。
Runbooks:アラートからのステップバイステップの指示と自動リンク。

17)成熟度チェックリスト

1.OTel SDK/collector→metrics/logs/trailsのシングルエクスポート。
2.RED/USEはすべてのサービス+SLI/SLOをキーAPIでカバーします。
3.相関'trace_id' ⇄ログ⇄メトリック(例、ジャンプ・リンク)。
4.マルチバーンおよびrunabookリンクによる予算エラーのアラート。
5.「入金/レート/出金」のためのRUM+合成。
6.ホワイトリスト販売におけるプロファイリング(eBPF)。
7.PIIポリシー:マスキング、ゾーン、アクセス、保存期間。
8.遠隔測定コスト('チーム/サービス'タグ)に関する財務報告。
9.「ピーク負荷の準備」:テストプラン、ウォームアップキャッシュ、アラートテンプレート。
10.通常のRCAとSLO/しきい値のリビジョン。

18) Antipatterns

構造体のない"sheets'と'trace_id'をログに記録します。
メトリックごとにアラート→アラートFAT。
正しいバケットのないヒストグラム→「フラット」p95。
ラベルの無制限のカーディナリティ→価値の爆発。
RUM/合成の欠如は「すべてOK」ですが、ユーザーはそうではありません。
PIIと技術者との混合、無期限の保持。

ビジネスKPIからのテレメトリー分離-「レイテンシーが低下している、収益も」

概要

強い観察可能性はプロダクト、SRE、保証および支払の間の共通の言語です。メトリクス、ログ、トラックをOTelに接続し、エラーの予算でSLOを導入し、アラートをスマートかつコスト管理可能にすることで、問題に早期に気づき、より速く回復し、トラフィックピークとトーナメントロードを予測可能にするシステムが得られます。

Contact

お問い合わせ

ご質問やサポートが必要な場合はお気軽にご連絡ください。いつでもお手伝いします!

Telegram
@Gamble_GC
統合を開始

Email は 必須。Telegram または WhatsApp は 任意

お名前 任意
Email 任意
件名 任意
メッセージ 任意
Telegram 任意
@
Telegram を入力いただいた場合、Email に加えてそちらにもご連絡します。
WhatsApp 任意
形式:+国番号と電話番号(例:+81XXXXXXXXX)。

ボタンを押すことで、データ処理に同意したものとみなされます。