Menu Close

3.2. 3scale を監視するための Prometheus の設定

3scale のモニタリングを有効にするには、Prometheus カスタムリソースを使用して Prometheus をデプロイおよび設定する必要があります。

注記

Prometheus のドキュメント の説明に従ってパーミッションが正しく設定されていることを確認してください。

手順

  1. クラスター内のすべてのリソースを監視するか、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 リソースを監視します。

      1. spec.podMonitorSelector 属性を以下のように設定します。

         podMonitorSelector:
          matchExpressions:
          - key: app
              operator: In
              values:
              - 3scale-api-management
      2. 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 リソースを監視します。

      1. 3scale がデプロイされている OpenShift プロジェクトに MYLABELKEY=MYLABELVALUE のラベルを付けます。
      2. podMonitorNamespaceSelector フィルターを使用して 3scale Pod を選択します。たとえば、以下のカスタムリソースを適用します。

        apiVersion: monitoring.coreos.com/v1
        kind: Prometheus
        metadata:
          name: example
        spec:
         podMonitorSelector: {}
         ruleSelector: {}
         podMonitorNamespaceSelector:
           matchExpressions:
           - key: MYLABELKEY
             operator: In
             values:
             - MYLABELVALUE
  2. ダッシュボードおよびアラートが予想通りに機能するようにするには、以下のいずれかを実行して Kubernetes メトリクス (kube-state-metrics) を取り込む必要があります。

    • Prometheus インスタンスをクラスターのデフォルト Prometheus インスタンスでフェデレーションする。
    • 独自の収集ジョブを設定し、kubelet、etcd、その他からメトリクスを取得する。

その他のリソース