MetricsTraitカスタム・リソース定義
MetricsTraitカスタム・リソースには、アプリケーション・コンポーネントのメトリックの有効化に必要な構成情報が含まれています。MetricsTraitを使用して構成されたコンポーネント・ワークロードは、特定のPrometheusデプロイメントによってスクレイピングされたメトリックをエンドポイントを介して送信するように設定されます。MetricsTraitを指定するサンプルApplicationConfigurationを次に示します。MetricsTraitを示すサンプル・アプリケーションをデプロイするには、Hello World Helidonを参照してください。
ApplicationConfigurationでMetricsTraitが指定されていない場合、デフォルトのMetricsTraitがワークロード・タイプに適した値で生成されます。
apiVersion: core.oam.dev/v1alpha2
kind: ApplicationConfiguration
metadata:
name: hello-helidon-appconf
namespace: hello-helidon
annotations:
version: v1.0.0
description: "Hello Helidon application"
spec:
components:
- componentName: hello-helidon-component
traits:
- trait:
apiVersion: oam.verrazzano.io/v1alpha1
kind: MetricsTrait
spec:
scraper: verrazzano-system/vmi-system-prometheus-0
- trait:
apiVersion: oam.verrazzano.io/v1alpha1
kind: IngressTrait
metadata:
name: hello-helidon-ingress
spec:
rules:
- paths:
- path: "/greet"
pathType: Prefix
サンプル構成では、hello-helidon-component
アプリケーション・コンポーネントにMetricsTraitが指定されています。
サンプル・アプリケーション構成が正常にデプロイされると、アプリケーション・コンポーネントからメトリックを問い合せることができます。
$ HOST=$(kubectl get ingress \
-n verrazzano-system vmi-system-prometheus \
-o jsonpath={.spec.rules[0].host})
$ echo $HOST
prometheus.vmi.system.default.<ip>.nip.io
$ VZPASS=$(kubectl get secret \
--namespace verrazzano-system verrazzano \
-o jsonpath={.data.password} | base64 \
--decode; echo)
$ curl -sk \
--user verrazzano:${VZPASS} \
-X GET https://${HOST}/api/v1/query?query=vendor_requests_count_total
{"status":"success","data":{"resultType":"vector","result":[{"metric":{"__name__":"vendor_requests_count_total","app":"hello-helidon","app_oam_dev_component":"hello-helidon-component","app_oam_dev_name":"hello-helidon-appconf","app_oam_dev_resourceType":"WORKLOAD","app_oam_dev_revision":"hello-helidon-component-v1","containerizedworkload_oam_crossplane_io":"496df78f-ef8b-4753-97fd-d9218d2f38f1","job":"hello-helidon-appconf_default_helidon-logging_hello-helidon-component","namespace":"helidon-logging","pod_name":"hello-helidon-workload-b7d9d95d8-ht7gb","pod_template_hash":"b7d9d95d8"},"value":[1616535232.487,"4800"]}]}}
MetricsTrait
フィールド | 型 | 説明 | 必須 |
---|---|---|---|
apiVersion |
文字列 | oam.verrazzano.io/v1alpha1 |
はい |
kind |
文字列 | MetricsTrait | はい |
metadata |
ObjectMeta | メタデータのフィールドについては、Kubernetes APIのドキュメントを参照してください。 | いいえ |
spec |
MetricsTraitSpec | メトリック・トレイトの希望の状態。 | はい |
MetricsTraitSpec
MetricsTraitSpecは、メトリック・トレイトの希望の状態を指定します。
フィールド | 型 | 説明 | 必須 |
---|---|---|---|
port |
整数 | 関連メトリック・エンドポイントのHTTPポート。デフォルトは8080です。 | いいえ |
path |
文字列 | 関連メトリック・エンドポイントのHTTPパス。デフォルトは/metrics です。 |
いいえ |
secret |
文字列 | メトリック・エンドポイント・アクセス用のワークロードのネームスペース内の不透明なシークレット(ユーザー名やパスワードなど)の名前。 | いいえ |
scraper |
文字列 | 関連するメトリック・エンドポイントをスクレイピングするために使用されるPrometheusデプロイメント。デフォルトはverrazzano-system/vmi-system-prometheus-0 です。 |
いいえ |