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

メトリック・テンプレート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の名前。 はい