Open-Match 的基礎建構採用了 OpenCensus 所提供的 library,因此可暴露 metrics 提供我們即時監控的需求 ,目前可使用的有以下常見的四種工具:
如果你跟我一樣想參照官網指南安裝的話,你可能會遭遇一些問題
首先是官方提供的 install.yaml 過於老舊,裡面部分內容應調整成:
Deployment
原本為
apiVersion: extensions/v1beta1
kind: Deployment
調整為
apiVersion: apps/v1
kind: Deployment
PodSecurityPolicy
原本為
apiVersion: extensions/v1beta1
kind: PodSecurityPolicy
調整為
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
如果你給予的資源低於筆者的話,你可能無法把整套服務啟動,你的 pods 可能會卡在 pending 狀態,你需要盡可能給予環境足夠的資源,不然可以燒點錢上雲
也可以調整部分需要資源,降低整體資源所需要的總額
resources:
limits:
cpu: 40m
memory: 40Mi
requests:
cpu: 40m
memory: 40Mi
這是筆者調整後有成功運行的 yaml,分別拆成:
執行成功應包含以下內容
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
open-match-backend ClusterIP None <none> 50505/TCP,51505/TCP 43m
open-match-evaluator ClusterIP None <none> 50508/TCP,51508/TCP 43m
open-match-frontend ClusterIP None <none> 50504/TCP,51504/TCP 43m
open-match-grafana ClusterIP 10.107.156.36 <none> 3000/TCP 43m
open-match-prometheus-alertmanager ClusterIP 10.97.149.230 <none> 80/TCP 43m
open-match-prometheus-kube-state-metrics ClusterIP None <none> 80/TCP 43m
open-match-prometheus-node-exporter ClusterIP None <none> 9100/TCP 43m
open-match-prometheus-pushgateway ClusterIP 10.107.39.7 <none> 9091/TCP 43m
open-match-prometheus-server ClusterIP 10.107.123.16 <none> 80/TCP 43m
open-match-query ClusterIP None <none> 50503/TCP,51503/TCP 43m
open-match-redis ClusterIP 10.100.184.22 <none> 6379/TCP,26379/TCP 43m
open-match-redis-headless ClusterIP None <none> 6379/TCP,26379/TCP 43m
open-match-redis-metrics ClusterIP 10.110.19.23 <none> 9121/TCP 43m
open-match-swaggerui ClusterIP 10.109.17.24 <none> 51500/TCP 43m
open-match-synchronizer ClusterIP 10.96.78.13 <none> 50506/TCP,51506/TCP 43m
Prometheus 應該要可以接收到,各服務的 metrics
Grafana 應該要包含,以各服務 metrics 繪成的圖表
Match Making
gRPC
Go Processes
Jaeger 由於所需要的資源過於龐大,本次不進行安裝,jaeger 需要相依在 cassandra 上,光是啟用 cassandra 就會吃掉非常多的資源,這對筆者的小筆電來說太奢侈了。而 Stackdriver 的部分你只要在 GCP 上部署就可以直接使用,應該分常簡便,這邊我也不想再刷卡燒錢了,只能請大家再多試看看囉~