role: Aggregator
image:
  repository: "{{ .ImageRepo }}"
  tag: "{{ .ImageTag }}"
resources: {{ .Resources }}
podPriorityClassName: "{{ .PriorityClassName }}"
podLabels:
  vector.dev/exclude: "false"
  controller/component: "vector"
  controller/agent: "sharedpool"
  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: o11y-metric-agent
  hostPath:
    enabled: false
service:
  enabled: false
extraVolumes:
- name: tikv-tls
  secret:
    secretName: "db-{{ .InstanceID }}-tikv-cluster-secret"
    items:
    - key: ca.crt
      path: ca.crt
    - key: tls.crt
      path: tls.crt
    - key: tls.key
      path: tls.key
extraVolumeMounts:
- name: tikv-tls
  mountPath: /etc/vector/tikv-tls
dataDir: /vector-data-dir
customConfig:
  data_dir: /vector-data-dir
  sources:
    topsql:
      type: topsql
      label_k8s_instance: "db-{{ .InstanceID }}"
      keyspace_to_vmtenants: "{{ .KeyspaceToVMTenants }}"
      top_n: 10
      tls:
        ca_path: "/etc/vector/tikv-tls/ca.crt"
        crt_path: "/etc/vector/tikv-tls/tls.crt"
        key_path: "/etc/vector/tikv-tls/tls.key"
        verify_hostname: false
        verify_certificate: false
    topsql_v2:
      type: topsql_v2
      pd_address: db-pd:2379
      label_k8s_instance: "db-{{ .InstanceID }}"
      keyspace_to_vmtenants: "{{ .KeyspaceToVMTenants }}"
      top_n: 10
      tls:
        ca_path: "/etc/vector/tikv-tls/ca.crt"
        crt_path: "/etc/vector/tikv-tls/tls.crt"
        key_path: "/etc/vector/tikv-tls/tls.key"
        verify_hostname: false
        verify_certificate: false
    conprof:
      components_profile_types:
        lightning:
          cpu: false
          goroutine: false
          heap: false
          mutex: false
        pd:
          cpu: true
          goroutine: true
          heap: true
          mutex: true
        tidb:
          cpu: true
          goroutine: true
          heap: true
          mutex: true
        tiflash:
          cpu: false
          goroutine: false
          heap: false
          mutex: false
        tikv:
          cpu: true
          goroutine: false
          heap: false
          jeheap: true
          mutex: false
        tiproxy:
          cpu: true
          goroutine: false
          heap: false
          mutex: false
      pd_address: db-pd:2379
      topology_mode: k8s
      topology_fetch_interval_seconds: 60
      jeprof_fetch_mode: rust
      topology_k8s:
        component_label_key: "tags.tidbcloud.com/component"
        component_label_to_instance_type:
          tiproxy: tiproxy
          tidb: tidb
          compute-tiflash: tiflash
          coprocessor-worker: tikv
          tikv-worker: tikv
          pd: pd
          tikv: tikv
          worker-tidb: tidb
          write-tiflash: tiflash
      tls:
        ca_path: /etc/vector/tikv-tls/ca.crt
        crt_path: /etc/vector/tikv-tls/tls.crt
        key_path: /etc/vector/tikv-tls/tls.key
      type: conprof
    internal_metrics:
      type: internal_metrics
  transforms:
    topsql_add_meta:
      type: remap
      inputs:
      - topsql
      source: |
        .tags.cluster_id = .tags.keyspace_name
        .tags.tidb_cluster_id = .tags.keyspace_name
        .tags.sharedpool_id = "{{ .SharedPoolID }}"
    route_by_type:
      type: route
      inputs:
      - topsql_v2
      route:
        non_meta_logs: '.source_table == "tidb_topsql" || .source_table == "tikv_topsql" || .source_table == "tikv_topregion" || .source_table == "topsql_topru"'
    conprof_add_meta:
      type: remap
      inputs:
      - conprof
      source: |
        .key_prefix = join!(["0", "shared_pool", "{{ .SharedPoolID }}", "profiles", .filename], separator: "/")
  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_topsqlv2_data:
      type: "topsql_data_deltalake"
      inputs:
      - route_by_type.non_meta_logs
      base_path: "s3://{{ .Bucket }}/deltalake/org={{ .TenantID }}/cluster={{ .SharedPoolID }}/type=topsql"
      bucket: "{{ .Bucket }}"
      region: "{{ .Region }}"
      batch_size: 262144
      max_delay_secs: 300
      timeout_secs: 30
      auth:
        assume_role: "{{ .RoleARN }}"
      acknowledgements:
        enabled: true
    conprof_s3:
      auth:
        assume_role: "{{ .RoleARN }}"
      batch:
        max_bytes: 1
        max_events: 1
        timeout_secs: 1
      bucket: "{{ .Bucket }}"
      encoding:
        codec: raw_message
      filename_append_uuid: false
      filename_time_format: ""
      inputs: ["conprof_add_meta"]
      key_prefix: {{ "'{{ `{{ key_prefix }}` }}'" }}
      region: "{{ .Region }}"
      type: aws_s3
