TimesTenメトリックの公開について

TimesTenオペレータは、TimesTenエクスポータをサポートし、KubernetesクラスタにデプロイされたTimesTenデータベースがTimesTenメトリックをエクスポートできるようにします。また、Prometheusオペレータは、Prometheusサーバーを構成および起動し、これらのPrometheusサーバーに関連付けられた構成ファイルを作成および管理します。ただし、Prometheusには、TimesTenメトリックをスクレイプするために必要な追加のタスクがあります。

次に例を示します。
  • httpsを使用してTimesTenメトリックを処理する場合、Oracleウォレットおよび証明書を作成する必要があります。

  • この証明書は、Prometheusで使用できるようにする必要があります。

  • Prometheus構成ファイルを編集して、PrometheusがTimesTenからメトリックをスクレイプするようにする必要があります。これは、TimesTenメトリックがhttpsまたはhttpのどちらかを使用して処理される場合に当てはまります。

これらのタスクを確認し、これらのタスクを完了するためのオプションを調べて、TimesTenオペレータがこれらのタスクを自動的に実行する方法について説明します。

TimesTenリリース22.1以降、TimesTenオペレータはTimesTenメトリックを自動的にエクスポートおよび公開します。また、PrometheusオペレータがKubernetesクラスタにインストールされている場合、TimesTenオペレータは、TimesTenデータベースからTimesTenメトリックをスクレイプするために必要なすべての情報をPrometheusに提供します。

TimesTenオペレータがどのようにこれを行うかを見てみましょう。

デフォルトでは、TimesTenオペレータは次のことを行います。
  • KubernetesクラスタにデプロイされたTimesTenデータベースからTimesTenメトリックをエクスポートおよび公開します。

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

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

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

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

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

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

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

ノート:

TimesTenリリース18.1では、TimesTenオペレータがTimesTenメトリックを自動的に公開することはできません。この機能は、TimesTenリリース22.1以降で使用できます。

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

ネームスペースにデプロイされたTimesTenClassicまたはTimesTenScaleoutオブジェクトには、それに関連付けられた特定のデータ項目があります。これらのデータ項目は、TimesTenClassicまたはTimesTenScaleoutオブジェクトの特性を定義します。これには、オブジェクトに関連付けられたTimesTenデータベースが含まれます。オブジェクトのYAMLマニフェスト・ファイルで特定のデータ項目の値を指定して、TimesTenClassicまたはTimesTenScaleoutオブジェクトをカスタマイズするオプションがあります。

TimesTenメトリックを公開するために、TimesTenオペレータは.spec.ttspec.prometheusデータ項目/句を提供し、この句内で使用する特定のデータ項目を提供します。この句および関連するデータ項目は、TimesTenオペレータがTimesTenメトリックをエクスポートおよび公開するかどうか、およびその方法を決定します。

.spec.ttspec.prometheus句の特定のデータ項目について詳しく見てみましょう。

.spec.ttspec.prometheusおよびその関連データ項目の詳細は、TimesTenClassicオブジェクトについてはTimesTenClassicSpecSpecPrometheusを、TimesTen ScaleoutオブジェクトについてはTimesTenScaleoutSpecSpecPrometheusを参照してください。