Prometheusオペレータについて

「TimesTen KubernetesオペレータおよびTimesTenエクスポータの概要」では、TimesTenオペレータとTimesTenエクスポータが連携してTimesTenメトリックを収集およびエクスポートする方法について説明しました。次に、これらのメトリックをPrometheusに公開する方法を見てみましょう。

ノート:

TimesTenメトリックを任意のスクレイピング・ターゲットに公開できます。このマニュアルでは、Prometheusに焦点を当てます。

KubernetesでPrometheusを構成するには、いくつかの方法があります。最も一般的なのは、Prometheusオペレータです。Prometheusオペレータは、KubernetesにおけるPrometheusのデプロイメント、監視および管理を簡素化します。

TimesTen Kubernetesオペレータと同様に、Prometheusオペレータは複数のカスタム・リソース定義(CRD)をKubernetesに追加します。TimesTenClassicタイプまたはTimesTenScaleoutタイプのオブジェクトを作成してTimesTenをデプロイするのと同様に、KubernetesにPrometheusをデプロイするには、Prometheusタイプのオブジェクトを作成します。Prometheusオペレータは、このようなオブジェクトの作成を自動的に検出し、オブジェクトに含まれる構成を使用してサーバーを起動することで応答します。

ノート:

Prometheusタイプのオブジェクトの作成方法の詳細は、このマニュアルの範囲外です。

Prometheusオペレータは、デプロイするPrometheusサーバーの構成も簡素化します。Prometheusオペレータは、Prometheusサーバーの構成ファイルを自動的に編集して、/metricsエンドポイントからスクレイプする必要があるデータ・ソースを含めることができます。これは、ServiceMonitorタイプおよびPodMonitorタイプのKubernetesオブジェクトを作成することで行われます。(ServiceMonitorオブジェクト・タイプについては、「ServiceMonitorオブジェクトの作成について」を参照してください。)

PodMonitorオブジェクトの基本的な例を見てみましょう。
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
  name: sample
spec:
  selector:
    matchLabels:
      app: sample
  podMetricsEndpoints:
  - port: metrics

このようなPodMonitorオブジェクトを作成すると、PrometheusオペレータはPrometheusサーバーの構成ファイルを編集することで自動的に応答し、Prometheusサーバーがapp: sampleのラベルで作成したポッドからメトリックをスクレイプするようにします。指定されたラベルを持つすべてのポッドが、Kubernetesでスクレイプ・ターゲットとして自動的に表示されます。セレクタに一致するポッドが作成または削除されると、Prometheus構成は自動的に同期して保持されます。

Prometheusオペレータを使用すると、Prometheusをデプロイ、管理および監視するだけでなく、Prometheusサーバーを構成するために簡略化されたアプローチが提供されます。