GH GambleHub

グラファナとデータの可視化

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

概要

Grafanaは、メトリクス、ログ、トレース、ビジネスインジケータ、アラートなど、すべてのオブザビリティのショーケースです。iGamingでは、p95/p99の監視、支払い変換、タイムツーウォレット、ゲームプロバイダの可用性、インシデントの地理的分布、および安定したカナリアと。成功:テンプレート(変数)、わかりやすいパネル、リリースアノテーション、SLOダッシュボード、アクセス権の規律。

1)接続アーキテクチャ

データソース:Prometheus(メトリック)、Loki/ELK(ログ)、Tempo/Jaeger(トレイル)、ClickHouse/BigQuery/PG(ビジネスデータ)、OTLP via Gateway。
主なリンク:→exemplar→trace metric→関連ログから'trace_id'。
フォルダとRBAC:別個のフォルダ'SRE'、 'Payments'、 'Risk'、 'Games'、 'BizOps';'Viewer/Editor/Admin'の詳細な権限。

2)ダッシュボードの設計: 原則

1.1-2クリックで質問に対する答え:SLOカードから詳細まで。
2.各サービスのRED/USE+ドメインカード(TTW、デポジット変換)。
3.安定した格子:24列、上の大きいKPI、底の細部。
4.色としきい値:最小、SLA/SLOのみ。
5.リリースアノテーション:Git SHA、バージョン、リリースタイプ(カナリア/ブルーグリーン)。

3)変数とテンプレート(テンプレート)

変数は1つのダッシュボードを多数にします。

例(Prometheus query-variable):
  • 名前:'サービス'
  • クエリ:'label_values (up、 service)'
  • マルチセレクト+はすべて含みます-集計に便利です。
カスケード変数:
  • 'region'→'env'→'service'→'instance'
  • UXでは'regex'/'sort'、ダッシュボードでは'refresh: load'を使用します。

4)パネルおよびレンダリングのタイプ

時系列:p50/p95/p99、エラー率、スループット。
Stat/Gauge:ターゲットKPI(可用性、TTW p95)。
バーゲージ/テーブル:トップNルート/PSP/ゲームプロバイダ。
ジオマップ:thermal incident/latency maps by country/ROR。
Canvas:回路図ストリーム(Player→API→PSP→Bank)。
ノードグラフ:サービス依存性、エラーによる着色。

トランスフォーメーション:
  • フィールドへのラベル、Outer join、 Reduce (min/max/avg)、計算(conversion)からフィールドを追加します。

5)クエリやパネルの例

5.1 p95レイテンシ(PromQL)

promql histogram_quantile(0. 95,
sum by (le, route) (rate(http_request_duration_seconds_bucket{service="$service",region="$region"}[5m]))
)

5.2リクエストの成功(SLOプロキシ)

promql sum(rate(http_requests_total{service="$service",status=~"2..    3.."}[5m]))
/
sum(rate(http_requests_total{service="$service"}[5m]))

5.3支払い変換(PromQL集計)

promql sum(rate(payments_success_total{psp=~"$psp",currency=~"$currency"}[15m]))
/
sum(rate(payments_attempt_total{psp=~"$psp",currency=~"$currency"}[15m]))

5.4クイックジャンプトラック(例)

「時系列」パネルで、Examplars→ポイントをクリック→Tempoが'trace_id'で開きます。

5.5ロキ・trace_id

logql
{service="$service"}     = "$traceID"

6)注釈とイベント

リリースアノテーション:枯渇中のイベントの自動追加(バージョン、作者、カナリア重量)。
インシデント/フリーズ:インシデントの開始/終了マークとリリースのフリーズ・ウィンドウ。
ビジネスイベント:大規模なキャンペーン/トーナメント-チャートにマークします。

7) Grafanaでのアラート

アラートルールを中心に(Prometheus/Loki/Cloudに基づく)。
コンタクトポイント:PagerDuty/Slack/Email;通知ポリシー(フォルダ/タグによるルート化)。
マルチウィンドウバーンレート:高速かつ低速の予算ロースト。
サイレンス:スケジュールされたウィンドウと重複しています。

p95の式の例:
promql histogram_quantile(0. 95,
sum by (le, service) (rate(http_request_duration_seconds_bucket{service="$service"}[5m]))
) > 0. 25

8)コードとしてのプロビジョニング(IaC)

ソース/ダッシュボード/アラートをGitに保存します。

データソース。yaml

yaml apiVersion: 1 datasources:
- name: Prometheus type: prometheus access: proxy url: http://prometheus:9090 isDefault: true
- name: Loki type: loki url: http://loki:3100
- name: Tempo type: tempo url: http://tempo:3100

ダッシュボード。yaml

yaml apiVersion: 1 providers:
- name: sres folder: SRE type: file disableDeletion: false options:
path: /var/lib/grafana/dashboards/sre

グラファナ。ini(フラグメント)

ini
[auth]
disable_login_form = false
[users]
viewers_can_edit = false
[alerting]
enabled = true
[unified_alerting. screenshots]
capture = true

9)セキュリティとアクセス

SSO (OIDC/SAML)、グループ→ロール→フォルダ。
データソースの権利:ビューアの読み取り専用の必要なフォルダのみ。
PII衛生:パネルのPIIが付いている分野を引っ張らないで下さい;ログ-フィルター/マスク。
秘密:ダッシュボードの「プレーンテキスト」なしで、Vault/secure JSONフィールドを介してのみ。

10)性能および費用

Prometheusで重い表現のためのルールを記録します。
長期的なストレージ・バックエンドでのダウンサンプリング/保持。
ダッシュボードキャッシュと公平な間隔(どこでも"1s'ではありません)。
変数のカーディナリティ制限('user_id'/'session_id'を代用しない)。
再配布:騒々しいチームのための個別のインスタンス/フォルダ。

11) iGaming専用ダッシュボード

支払い:試行/成功/TTW p95、 PSP/ルートエラー、地理偏差マップ。
ゲーム/プロバイダ:スタジオ/ゲームによるレイテンシとエラーレート、変換を起動します。
リスク/詐欺:アクションの速度、デバイスのバースト/IP、相関(テーブル+バーゲージ)。
RG/コンプライアンス:セッション>しきい値、ステーキの成長、異常アラート。
Release Compare: p95/error/business metricsによるstable vs canary。
Infra/USE:クラスタとキューによる使用/彩度/エラー。

12) JSONダッシュボードの例(フラグメント)

json
{
"title": "Payments SLO",
"tags": ["slo","payments"],
"time": {"from":"now-6h","to":"now"},
"panels": [
{
"type":"stat",
"title":"Availability",
"targets":[{"expr":"sum(rate(http_requests_total{service=\"payments-api\",status=~\"2..    3..\"}[5m]))/sum(rate(http_requests_total{service=\"payments-api\"}[5m]))"}],
"thresholds":{"mode":"absolute","steps":[{"color":"red","value":0},{"color":"green","value":0. 999}]}
},
{
"type":"timeseries",
"title":"p95 latency",
"exemplars": {"color":"rgba(31,120,193,0. 6)"},
"targets":[{"expr":"histogram_quantile(0. 95,sum by (le) (rate(http_request_duration_seconds_bucket{service=\"payments-api\"}[5m])))"}]
}
]
}

13) RunbooksとUXの改善

各アラートにはRunbook URL(アクション命令)があります。
関連ダッシュボードへのリンク(支払い↔ Infra ↔ PSP)。
ドリルダウン:ラベル→フィルタ(region/psp/route)をクリックします。
変数のデフォルト:'env=prod'、' region=eu'-開始を高速化します。

14)実装チェックリスト

1.データソースの設定:Prometheus/Loki/Tempo/SQL。
2.フォルダとRBACを入力します。権利の監査。
3.テンプレート変数(region/env/service)を作成します。
4.SLOダッシュボードの構築(可用性、P95、エラー率、エラー予算)。
5.リリース注釈と安定/カナリア比較を追加します。
6.例題を有効にし、クリックしてトレース/ログに移動します。
7.アラート(マルチウィンドウバーンレート)とルーティングを設定します。
8.すべてをコードとして提供し、Gitに保存し、レビューを行います。
9.パフォーマンスの最適化:録音ルール、間隔、キャッシュ。
10.ビジネスダッシュボード(TTW、支払い変換、GGRカード)を入力します。

15) Antipatterns

変数と標準のない「Zoo」一貫性のないダッシュボード。
ルールを記録せずに重いPromQLを持つパネル→遅いUI。
異なるスケールの色/凡例/Y軸の過剰。
Viewer用に開いたパネルのPII接続。
リリースアノテーションの欠如-ジャンプがどこから来るかは明らかではありません。
フォルダ構造の代わりに1つの「monovew」ダッシュボード。

概要

Grafanaは、メトリック、ログ、トラックがビジネス画像に接続されるという、技術が製品と出会うインターフェイスです。テンプレート、正しいパネル、注釈、アラートにより、データは迅速な診断、予測可能なリリース、管理可能なオブザビリティコストなどのソリューションになります。

Contact

お問い合わせ

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

Telegram
@Gamble_GC
統合を開始

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

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

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