role: Aggregator
image:
  repository: "{{ .ImageRepo }}"
  tag: "{{ .ImageTag }}"
resources: {{ .Resources }}
podPriorityClassName: "{{ .PriorityClassName }}"
podLabels:
  vector.dev/exclude: "false"
  controller/component: "vector"
  controller/agent: "tidbgroup"
  controller/ref-namespace: "{{ .RefNamespace }}"
  controller/ref-name: "{{ .RefName }}"
podSecurityContext:
  runAsNonRoot: true
  runAsUser: 1000
  runAsGroup: 2000
  fsGroup: 2000
securityContext:
  readOnlyRootFilesystem: true
  allowPrivilegeEscalation: false
  privileged: false
  capabilities:
    drop:
    - NET_RAW
persistence:
  enabled: true
  size: 10Gi
  storageClassName: cloud-ssd
  hostPath:
    enabled: false
service:
  enabled: false
extraVolumes:
- name: tidb-tls
  secret:
    secretName: db-tidb-cluster-secret
    items:
    - key: ca.crt
      path: ca.crt
    - key: tls.crt
      path: tls.crt
    - key: tls.key
      path: tls.key
- name: tidb-sql-tls
  secret:
    secretName: db-tidb-server-secret
    items:
    - key: ca.crt
      path: ca.crt
    - key: tls.crt
      path: tls.crt
    - key: tls.key
      path: tls.key
extraVolumeMounts:
- name: tidb-tls
  mountPath: /etc/vector/tidb-tls
- name: tidb-sql-tls
  mountPath: /etc/vector/tidb-sql-tls
dataDir: /vector-data-dir
customConfig:
  data_dir: /vector-data-dir
  sources:
    topsql:
      type: topsql
      tidb_group: "{{ .TiDBGroup }}"
      top_n: 10
      tls:
        ca_path: "/etc/vector/tidb-tls/ca.crt"
        crt_path: "/etc/vector/tidb-tls/tls.crt"
        key_path: "/etc/vector/tidb-tls/tls.key"
        verify_hostname: false
        verify_certificate: false
    topru:
      type: "topsql_v2"
      pd_address: db-pd:2379
      tidb_group: "{{ .TiDBGroup }}"
      label_k8s_instance: "db-{{ .TiDBGroup }}"
      tls:
        ca_path: /etc/vector/tidb-tls/ca.crt
        crt_path: /etc/vector/tidb-tls/tls.crt
        key_path: /etc/vector/tidb-tls/tls.key
        verify_certificate: false
        verify_hostname: false
      topru:
        enable: true
        item_interval_seconds: 60
    tidb_system_tables:
      type: system_tables
      database_username: "root"
      tidb_group: "{{ .TiDBGroup }}"
      short_interval: 300
      long_interval: 300
      retention_days: 1
      topology_fetch_interval_seconds: 10.0
      collection_method: coprocessor
      database_tls:
        ca_path: /etc/vector/tidb-tls/ca.crt
        crt_path: /etc/vector/tidb-tls/tls.crt
        key_path: /etc/vector/tidb-tls/tls.key
        verify_certificate: false
        verify_hostname: false
      tables:
        - source_schema: information_schema
          source_table: CLUSTER_STATEMENTS_SUMMARY
          dest_table: persisted_statements_summary
          collection_interval: auto(1800)
          partition_by: ["date"]
          enabled: true
  transforms:
    topsql_add_meta:
      type: remap
      inputs:
      - topsql
      source: |
        .tags.vm_account_id = "{{ .VMAccountID }}"
        .tags.vm_project_id = "{{ .VMProjectID }}"
        .tags.cluster_id = "{{ .ClusterID }}"
        .tags.tidb_cluster_id = "{{ .ClusterID }}"
        .tags.sharedpool_id = "{{ .SharedPoolID }}"
    route_by_type:
      type: route
      inputs:
      - topru
      route:
        non_meta_logs: '.source_table == "tidb_topsql" || .source_table == "tikv_topsql" || .source_table == "tikv_topregion" || .source_table == "topsql_topru"'
        meta_logs: '.source_table == "topsql_sql_meta" || .source_table == "topsql_plan_meta"'
  sinks:
    topsql_vm:
      type: prometheus_remote_write
      healthcheck:
        enabled: false
      inputs:
      - topsql_add_meta
      endpoint: "{{ .RemoteWriteURL }}"
      batch:
        max_events: 1000
        max_bytes: 1048576 # 1MiB
        timeout_secs: 1
      buffer:
        type: disk
        max_size: 536870912 # 512MiB
        when_full: drop_newest
    deltalake_s3:
      type: deltalake
      inputs:
        - tidb_system_tables
      region: "{{ .Region }}"
      bucket: "{{ .Bucket }}"
      base_path: "s3://{{ .Bucket }}/deltalake/{{ .TenantID }}/{{ .O11yID }}"
      auth:
        assume_role: "{{ .RoleARN }}"
    deltalake_topru_data:
      type: "topsql_data_deltalake"
      inputs:
      - route_by_type.non_meta_logs
      base_path: "s3://{{ .Bucket }}/deltalake/org={{ .TenantID }}/cluster={{ .ClusterID }}/type=topsql"
      bucket: "{{ .Bucket }}"
      region: "{{ .Region }}"
      batch_size: 262144
      max_delay_secs: 540
      timeout_secs: 30
      auth:
        assume_role: "{{ .RoleARN }}"
      acknowledgements:
        enabled: true
    deltalake_topru_meta:
      type: "topsql_meta_deltalake"
      inputs:
      - "route_by_type.meta_logs"
      base_path: "s3://{{ .Bucket }}/deltalake/org={{ .TenantID }}/cluster={{ .ClusterID }}/type=topsql"
      bucket: "{{ .Bucket }}"
      region: "{{ .Region }}"
      batch_size: 65536
      max_delay_secs: 120
      meta_cache_capacity: 1000000
      timeout_secs: 30
      auth:
        assume_role: "{{ .RoleARN }}"
      acknowledgements:
        enabled: true
