2.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-managementspec.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 のドキュメント を参照してください。