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オペレータがどのようにこれを行うかを見てみましょう。
-
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.publish
: TimesTenオペレータがTimesTenエクスポータのexporter
コンテナをプロビジョニングするかどうかを決定します。デフォルトは、true
です。これについては、「TimesTenメトリックを公開するための選択について」で説明します。 -
.spec.ttspec.prometheus.insecure
: TimesTenメトリックをhttpsまたはhttpを使用して処理するかどうかを決定します。値がfalse
であるか指定されていない場合、TimesTenメトリックはhttpsを使用して処理されます。値がtrue
である場合、TimesTenメトリックはhttpを使用して処理されます。詳細は、「TimesTenメトリックでのhttpまたはhttpsの使用について」を参照してください。 -
.spec.ttspec.prometheus.certSecret
: 指定した場合、以前に作成したKubernetes Secretが含まれます。このシークレットには、Oracle Walletおよびhttpsに必要な証明書が含まれます。指定しない場合、TimesTenオペレータは、Oracle Wallet、必要な証明書およびKubernetes Secretを自動的に作成します。.spec.ttspec.prometheus.certSecret
を指定せず、かわりにTimesTenオペレータがこのプロセスを自動化するようにすることをお薦めします。詳細は、「TimesTenメトリックのトランスポート・レイヤー・セキュリティ(相互TLS)証明書について」を参照してください。.spec.ttspec.prometheus.certSecret
を指定する場合は、「TimesTenメトリックを公開するための独自のOracle Wallet、証明書およびシークレットの作成」を参照してください。 -
.spec.ttspec.prometheus.createPodMonitors
: TimesTenオペレータがPodMonitorオブジェクトを作成するかどうかを決定します。デフォルトは、true
です。これについては、「PodMonitorオブジェクトの作成について」で説明します。
.spec.ttspec.prometheus
およびその関連データ項目の詳細は、TimesTenClassicオブジェクトについてはTimesTenClassicSpecSpecPrometheusを、TimesTen ScaleoutオブジェクトについてはTimesTenScaleoutSpecSpecPrometheusを参照してください。