TimesTen Kubernetesオペレータからのメトリックの公開について

デフォルトでは、TimesTen Kubernetesオペレータは、独自の機能に関するメトリック、および管理するTimesTenClassicおよびTimesTenScaleoutオブジェクトのステータスを公開します。

TimesTenオペレータがどのようにこれを行うかを見てみましょう。デフォルトの動作を確認し、デフォルトの動作を変更する方法を確認しましょう。

デフォルトでは、TimesTenオペレータは次のことを行います。

  • 独自の機能に関するメトリック、および管理対象のTimesTenClassicおよびTimesTenScaleoutオブジェクトの全体的なステータスをエクスポートして公開します。

  • https/Transport Layer Security (相互TLS)を使用して、これらのメトリックを使用可能にします。

  • TLSに必要な証明書、OracleウォレットおよびKubernetes Secretを自動的に作成します。

  • Prometheusオペレータがインストールされている場合は、Prometheusを自動的に変更するための適切なオブジェクトを作成し、PrometheusがTimesTenオペレータからメトリックをスクレイプするようにします。

  • TimesTenオペレータ・ポッド以外のメトリックを公開します。

このデフォルトの動作をお薦めしますが、デフォルトの動作を変更するオプションもあります。次のオプションを確認しましょう。

  • httpsとhttpのどちらか: TimesTenオペレータ・メトリックはhttps (デフォルト)またはhttpで使用できます。

  • Kubernetes ServiceMonitorオブジェクトを作成するか: PrometheusオペレータがKubernetesクラスタにインストールされていれば、TimesTenオペレータがKubernetes ServiceMonitorオブジェクトを作成できます。このオブジェクトには、PrometheusオペレータがTimesTenオペレータをスクレイプ・ターゲットとして構成するために必要な情報が含まれています。PrometheusオペレータがKubernetesクラスタにインストールされている場合は、デフォルトでTimesTenオペレータによってServiceMonitorオブジェクトが作成されます。

  • TimesTenオペレータ・ポッドの外部でTimesTenオペレータ・メトリックを公開するか: TimesTenオペレータは、timesten-operator.mynamespace.svc.cluster.local:8080/metricsエンドポイントでGETをリスニングし、受け入れます(mynamespaceはネームスペースの名前です)。デフォルトでは、TimesTenオペレータは、このエンドポイントをKubernetesクラスタ内の他のポッドで使用できるようにするKubernetesサービスをデプロイします。このサービスを作成しないことを選択できます。

次に、デフォルトの動作を変更する方法を見てみましょう。

TimesTenオペレータは、Kubernetesデプロイメントとしてネームスペースにデプロイされます。Oracleは、このデプロイメントをカスタマイズできるoperator.YAML YAMLマニフェスト・ファイルを提供しています。このファイルは、TimesTenオペレータ・ディストリビューションのdeployディレクトリにあります。詳細は、「TimesTenオペレータの概要」を参照してください。

operator.yamlファイルには、様々な環境変数が含まれています。これらの3つの変数は、TimesTenオペレータが自身の操作に関するメトリック、および管理対象のTimesTenClassicおよびTimesTenScaleoutオブジェクトのステータスをエクスポートするかどうか、およびどのようにエクスポートするかを制御します。

  • METRICS_SCHEME: メトリックをhttpsとhttpのどちらで使用可能にするかを決定します。"https" (デフォルト)に設定すると、httpsを使用します。"http"に設定すると、httpを使用します。

  • CREATE_SERVICEMONITOR: TimesTenオペレータがKubernetes ServiceMonitorオブジェクトを作成するかどうかを決定します(後の項を参照)。"1" (デフォルト)に設定すると、TimesTenオペレータがServiceMonitorオブジェクトを作成します。"0"に設定すると、TimesTenオペレータがServiceMonitorオブジェクトを作成しません。

  • EXPOSE_METRICS: メトリックがTimesTenオペレータ・ポッドの外部で公開されるかどうかを決定します。"1" (デフォルト)に設定すると、メトリックをTimesTenオペレータ・ポッドの外部で公開します。"0"に設定すると、メトリックをTimesTenオペレータ・ポッドの外部で公開しません。

これらの環境変数の存在とデフォルト設定を示すoperator.yamlファイルのスニペットを見てみましょう。

# Copyright (c) 2019 - 2024, Oracle and/or its affiliates.
apiVersion: apps/v1
kind: Deployment
metadata:
  name: timesten-operator
spec:
...          
          env:
            ...
            - name: EXPOSE_METRICS
              value: "1"
            - name: METRICS_SCHEME
              value: "https"
            - name: EXPOSE_PROBES
              value: "1"
            - name: CREATE_SERVICEMONITOR
              value: "1"
...
これらの変数の参照情報は、「TimesTen Kubernetesオペレータの環境変数」を参照してください。

ノート:

TimesTenオペレータ・メトリックは、TimesTenオペレータ・デプロイメントに1つのTimesTenオペレータが定義されていれば正確です(operator.yamlファイル内のreplicas:1)。