Telegraf Helm Chart 更新错误:解析数据时出错

Error on Telegraf Helm Chart update: Error parsing data

我正在尝试在 kubernetes 上部署 telegraf helm chart。

helm upgrade --install telegraf-instance -f values.yaml influxdata/telegraf

当我使用 holding_register 添加 modbus 输入插件时,出现错误

[telegraf] Error running agent: Error loading config file /etc/telegraf/telegraf.conf: Error parsing data: line 49: key `name’ is in conflict with line 2fd

我的values.yaml喜欢下面

## Default values.yaml for Telegraf
## This is a YAML-formatted file.
## ref: https://hub.docker.com/r/library/telegraf/tags/

replicaCount: 1

image:
  repo: "telegraf"
  tag: "1.21.4"
  pullPolicy: IfNotPresent

podAnnotations: {}

podLabels: {}

imagePullSecrets: []

args: []

env:
  - name: HOSTNAME
    value: "telegraf-polling-service"

resources: {}

nodeSelector: {}

affinity: {}

tolerations: []

service:
  enabled: true
  type: ClusterIP
  annotations: {}

rbac:
  create: true
  clusterWide: false
  rules: []

serviceAccount:
  create: false
  name:
  annotations: {}

config:
  agent:
    interval: 60s
    round_interval: true
    metric_batch_size: 1000000
    metric_buffer_limit: 100000000
    collection_jitter: 0s
    flush_interval: 60s
    flush_jitter: 0s
    precision: ''
    hostname: '9825128'
    omit_hostname: false
  processors:
    - enum:
        mapping:
          field: "status"
          dest: "status_code"
          value_mappings:
            healthy: 1
            problem: 2
            critical: 3
  inputs:
    - modbus:
        name: "PS MAIN ENGINE"
        controller: 'tcp://192.168.0.101:502'
        slave_id: 1
        holding_registers: 
          - name: "Coolant Level"
            byte_order: CDAB
            data_type: FLOAT32
            scale: 0.001
            address: [51410, 51411]
    - modbus:
        name: "SB MAIN ENGINE"
        controller: 'tcp://192.168.0.102:502'
        slave_id: 1
        holding_registers: 
          - name: "Coolant Level"
            byte_order: CDAB
            data_type: FLOAT32
            scale: 0.001
            address: [51410, 51411]
  outputs:
    - influxdb_v2:
        token: token
        organization: organisation
        bucket: bucket
        urls:
          - "url"

metrics:
  health:
    enabled: true
    service_address: "http://:8888"
    threshold: 5000.0
  internal:
    enabled: true
    collect_memstats: false

pdb:
  create: true
  minAvailable: 1

问题已通过执行以下步骤解决

  • 删除了我的 values.yaml
  • 的配置部分
  • 将我的 telegraf.conf 添加到 /additional_config 路径
  • 使用以下命令将 configmap 添加到 kubernetes
  kubectl create configmap external-config --from-file=/additional_config
  • 将以下命令添加到 values.yaml
    volumes:
      - name: my-config
        configMap:
          name: external-config
    volumeMounts:
      - name: my-config
        mountPath: /additional_config
    args:
      - "--config=/etc/telegraf/telegraf.conf"
      - "--config-directory=/additional_config"