メトリック・テンプレート・カスタム・リソース定義

メトリック・テンプレートCRDには、デフォルトのKubernetesワークロードのメトリック構成が含まれています。Verrazzanoによってインストールされるデフォルトのメトリック・テンプレートは次のとおりです。

apiVersion: app.verrazzano.io/v1alpha1
kind: MetricsTemplate
metadata:
  name: standard-k8s-metrics-template
  namespace: verrazzano-system
spec:
  workloadSelector:
    apiGroups: ["apps", ""]
    apiVersions: ["v1"]
    resources: ["deployment", "statefulset", "replicaset", "pod"]
  prometheusConfig:
    targetConfigMap:
      namespace: verrazzano-system
      name: vmi-system-prometheus-config
    scrapeConfigTemplate: |
      kubernetes_sd_configs:
        - namespaces:
            names:
            - {{`{{.workload.metadata.namespace}}`}}
          role: pod
      relabel_configs:
        - action: replace
          replacement: local
          source_labels: null
          target_label: verrazzano_cluster
        - action: keep
          regex: {{`{{index .workload.metadata.labels "app.verrazzano.io/workload"}}`}};true
          source_labels:
            - __meta_kubernetes_pod_label_app_verrazzano_io_workload
            - __meta_kubernetes_pod_annotation_prometheus_io_scrape
        - action: replace
          regex: ([^:]+)(?::\d+)?;(\d+)
          replacement: $1:$2
          source_labels:
            - __address__
            - __meta_kubernetes_pod_annotation_prometheus_io_port
          target_label: __address__
        - action: replace
          regex: (.*)
          source_labels:
            - __meta_kubernetes_pod_annotation_prometheus_io_path
          target_label: __metrics_path__
        - action: replace
          regex: (.*)
          replacement: $1
          source_labels:
            - __meta_kubernetes_namespace
          target_label: namespace
        - action: labelmap
          regex: __meta_kubernetes_pod_label_(.+)
        - action: replace
          source_labels:
            - __meta_kubernetes_pod_name
          target_label: pod_name
        - action: labeldrop
          regex: (controller_revision_hash)
        - action: replace
          regex: .*/(.*)$
          replacement: $1
          source_labels:
            - name
          target_label: webapp
      {{`{{ if index .namespace.metadata.labels "istio-injection" }}`}}
      {{`{{ if eq (index .namespace.metadata.labels "istio-injection" ) "enabled" }}`}}
      scheme: https
      tls_config:
        ca_file: /etc/istio-certs/root-cert.pem
        cert_file: /etc/istio-certs/cert-chain.pem
        insecure_skip_verify: true
        key_file: /etc/istio-certs/key.pem
      {{`{{ end }}`}}
      {{`{{ end }}`}}

メトリック・テンプレートの使用方法の詳細は、「メトリック・テンプレート」を参照してください。

MetricsTemplate

フィールド 型 説明 必須
apiVersion 文字列 app.verrazzano.io/v1alpha1 はい
kind 文字列 MetricsTemplate はい
metadata ObjectMeta メタデータのフィールドについては、Kubernetes APIのドキュメントを参照してください。 いいえ
spec MetricsTemplateSpec メトリック・トレイトの希望の状態。 はい

MetricsTemplateSpec

フィールド 型 説明 必須
workloadSelector WorkloadSelector ターゲット・ワークロードのセレクタ。 いいえ
prometheusConfig PrometheusConfig Prometheus構成の詳細。 いいえ

WorkloadSelector

フィールド 型 説明 必須
namespaceSelector LabelSelector テンプレートのスコープをネームスペースに設定します。 いいえ
objectSelector LabelSelector テンプレートのスコープを特定のワークロード・オブジェクトに設定します。 いいえ
apiGroups []string テンプレートのスコープを指定されたAPIグループに設定します。 いいえ
apiVersions []string テンプレートのスコープを指定されたAPIバージョンに設定します。 いいえ
resources []string テンプレートのスコープを指定されたAPIリソースに設定します。 いいえ

PrometheusConfig

フィールド 型 説明 必須
targetConfigMap TargetConfigMap scrapeConfigTemplateで指定されたスクレイプ構成で更新されるConfigMapのID。 はい
scrapeConfigTemplate 文字列 Prometheus構成に追加されるスクレイプ構成テンプレート。 はい

TargetConfigMap

フィールド 型 説明 必須
namespace 文字列 スクレイプ・ターゲット構成で更新されるConfigMapのネームスペース。 はい
name 文字列 スクレイプ・ターゲット構成で更新されるConfigMapの名前。 はい