使用 ConfigMap 为 NetScaler CPX 配置自定义指标

您可以使用 ConfigMap 将自定义指标配置文件(JSON 格式)提供给 Kubernetes 中的 NetScaler CPX™ 实例。这允许您添加自定义指标架构文件,而无需覆盖包含 CPX 的默认指标配置文件(schema.jsonreference_schema.json)。

在启动期间,NetScaler CPX 实例会将默认指标配置文件放置在 /var/metrics_conf 目录中。如果您在 /cpx/custom_metrics_conf 处挂载 ConfigMap,CPX 将验证每个 JSON 文件,并将有效文件复制到 /var/metrics_conf 中,与默认文件并存。

注意:

  • 自定义 JSON 文件必须包含有效的 JSON。无效文件在启动期间将被跳过,并且错误将记录在 boot.log 中。
  • 默认文件(schema.jsonreference_schema.json)始终优先放置。
  • 与默认文件同名的自定义文件将覆盖默认文件。

配置自定义指标

您可以通过创建 ConfigMap 并部署已挂载 ConfigMap 的 NetScaler CPX 实例来配置 NetScaler CPX 的自定义指标。

使用 CLI 进行配置

创建您希望提供给 NetScaler CPX 实例的自定义指标配置文件(JSON 格式)。以下是一个示例自定义配置文件:

{
    "counter": "http_requests_total",
    "label": "method",
    "description": "Total HTTP requests by method"
}
<!--NeedCopy-->

使用 kubectl create configmap 命令从文件创建 ConfigMap。例如,要基于配置文件 custom_schema.json 创建名为 custom-metrics-conf 的 ConfigMap:

kubectl create configmap custom-metrics-conf --from-file=custom_schema.json=./custom_schema.json
<!--NeedCopy-->

使用 kubectl get configmap 命令查看已创建的 ConfigMap。

kubectl get configmap custom-metrics-conf -o yaml
<!--NeedCopy-->

以下示例显示了示例输出:

apiVersion: v1
data:
  custom_schema.json: |
    {
      "counter": "http_requests_total",
      "label": "method",
      "description": "Total HTTP requests by method"
    }
kind: ConfigMap
metadata:
  creationTimestamp: 2026-05-14T06:26:50Z
  name: custom-metrics-conf
  namespace: default
  resourceVersion: "8865149"
  uid: c1c7cb5b-ea05-11e7-914a-926745c10b02
<!--NeedCopy-->

使用 YAML 文件进行配置

在用于部署 NetScaler CPX 实例的 YAML 文件中指定创建的 ConfigMap custom-metrics-conf。以下示例配置展示了如何在部署 YAML 中包含 ConfigMap:

apiVersion: v1
kind: Pod
metadata:
  name: cpx-1
  labels:
    app: cpx-daemon
  annotations:
    NETSCALER_AS_APP: "True"
spec:
  containers:
  - name: cpx
    image: "quay.io/netscaler/netscaler-cpx:14.1-72.56"
    securityContext:
      privileged: true
  volumeMounts:
    - name: config-volume
      mountPath: /cpx/bootup_conf
    - name: custom-metrics-volume
      mountPath: /cpx/custom_metrics_conf
  env:
    - name: "EULA"
      value: "yes"
    imagePullPolicy: IfNotPresent
  volumes:
  - name: config-volume
    configMap:
      name: cpx-config
  - name: custom-metrics-volume
    configMap:
      name: custom-metrics-conf
<!--NeedCopy-->

部署 NetScaler CPX 实例。实例部署并启动后,默认指标配置文件 (schema.jsonreference_schema.json) 将放置在 /var/metrics_conf 中。从挂载在 /cpx/custom_metrics_conf 的 ConfigMap 中的自定义 JSON 文件将被验证并复制到 /var/metrics_conf 中。

使用 ConfigMap 为 NetScaler CPX 配置自定义指标