3.2. 3scale を監視するための Prometheus の設定
3scale のモニターリングを有効にするには、Prometheus
カスタムリソースを使用して Prometheus をデプロイおよび設定する必要があります。
Prometheus のドキュメント の説明に従ってパーミッションが正しく設定されていることを確認してください。
手順
クラスター内のすべてのリソースを監視するか、3scale リソースのみを監視するかに応じて、以下のように Prometheus カスタムリソースをデプロイします。
クラスターのすべてのリソースを監視するには、
spec.podMonitorSelector
属性を{}
に、spec.ruleSelector
属性を{}
に設定します。たとえば、以下のカスタムリソースを適用します。apiVersion: monitoring.coreos.com/v1 kind: Prometheus metadata: name: example spec: podMonitorSelector: {} ruleSelector: {}
3scale と Prometheus operator を同じ OpenShift プロジェクトにデプロイし、
APP_LABEL
の値がデフォルトの3scale-api-management
に設定されている場合は、以下の手順に従って 3scale リソースを監視します。spec.podMonitorSelector
属性を以下のように設定します。podMonitorSelector: matchExpressions: - key: app operator: In values: - 3scale-api-management
spec.ruleSelector
属性を以下のように設定します。matchExpressions: - key: app operator: In values: - 3scale-api-management
たとえば、以下のカスタムリソースを適用します。
apiVersion: monitoring.coreos.com/v1 kind: Prometheus metadata: name: example spec: podMonitorSelector: matchExpressions: - key: app operator: In values: - 3scale-api-management ruleSelector: matchExpressions: - key: app operator: In values: - 3scale-api-management
3scale と Prometheus operator を別の OpenShift プロジェクトにデプロイした場合には、以下の手順に従って 3scale リソースを監視します。
-
3scale がデプロイされている OpenShift プロジェクトに
MYLABELKEY=MYLABELVALUE
のラベルを付けます。 podMonitorNamespaceSelector
フィルターを使用して 3scale Pod を選択します。たとえば、以下のカスタムリソースを適用します。apiVersion: monitoring.coreos.com/v1 kind: Prometheus metadata: name: example spec: podMonitorSelector: {} ruleSelector: {} podMonitorNamespaceSelector: matchExpressions: - key: MYLABELKEY operator: In values: - MYLABELVALUE
-
3scale がデプロイされている OpenShift プロジェクトに
ダッシュボードおよびアラートが予想通りに機能させるには、以下のいずれかを実行して Kubernetes メトリクス (kube-state-metrics) を取り込む必要があります。
- Prometheus インスタンスをクラスターのデフォルト Prometheus インスタンスでフェデレーションする。
- 独自の収集ジョブを設定し、kubelet、etcd、その他からメトリクスを取得する。
関連情報
- Prometheus の詳細は、Prometheus のドキュメント を参照してください。