data_dir = "${DATA_PATH}"

[api]
enabled = false

[sources.topsql]
type = "topsql"
pd_address = "db-pd:2379"
tls.ca_path = "${TLS_PATH}/ca.crt"
tls.crt_path = "${TLS_PATH}/tls.crt"
tls.key_path = "${TLS_PATH}/tls.key"
top_n = 10

[transforms.add_meta]
type = "remap"
inputs = [ "topsql" ]
source = """
.labels.provider = "${PROVIDER}"
.labels.region = "${REGION}"
.labels.k8s_cluster_name = "${K8S_CLUSTER_NAME}"
.labels.k8s_namespace = "${K8S_NAMESPACE}"
.labels.project_id = "${PROJECT_ID}"
.labels.tenant_id = "${TENANT_ID}"
.labels.cluster_id = "${CLUSTER_ID}"
"""

[sinks.vm]
type = "vm_import"
inputs = [ "add_meta" ]
endpoint = "${VM_IMPORT_URL_V2}"
batch.max_events = 1000
batch.max_bytes = 1048576 # 1MiB
batch.timeout_secs = 1
buffer.type = "disk"
buffer.max_size = 536870912 # 512MiB
buffer.when_full = "drop_newest"

[sources.conprof]
type = "conprof"
pd_address = "db-pd:2379"
tls.ca_path = "${TLS_PATH}/ca.crt"
tls.crt_path = "${TLS_PATH}/tls.crt"
tls.key_path = "${TLS_PATH}/tls.key"

[transforms.conprof_add_meta]
type = "remap"
inputs = ["conprof"]
source = """
.key_prefix = join!(["0", "${TENANT_ID}", "${PROJECT_ID}", "${CLUSTER_ID}", "profiles", .filename], separator: "/")
"""

[sinks.conprof_gcs]
type = "gcp_cloud_storage"
inputs = ["conprof_add_meta"]
encoding.codec = "raw_message"
bucket = "${BUCKET}"
key_prefix = "{{ key_prefix }}"
filename_time_format = ""
filename_append_uuid = false
batch.max_bytes = 1 # DO NOT BATCH
batch.max_events = 1
batch.timeout_secs = 1

[sources.keyviz]
type = "keyviz"
pd_address = "db-pd:2379"
tls.ca_path = "${TLS_PATH}/ca.crt"
tls.crt_path = "${TLS_PATH}/tls.crt"
tls.key_path = "${TLS_PATH}/tls.key"

[transforms.keyviz_add_meta]
type = "remap"
inputs = ["keyviz"]
source = """
.key_prefix = join!(["0", "${TENANT_ID}", "${PROJECT_ID}", "${CLUSTER_ID}", "regions", .filename], separator: "/")
"""

[sinks.keyviz_gcs]
type = "gcp_cloud_storage"
inputs = ["keyviz_add_meta"]
encoding.codec = "raw_message"
bucket = "${BUCKET}"
key_prefix = "{{ key_prefix }}"
filename_time_format = ""
filename_append_uuid = false
batch.max_bytes = 1 # DO NOT BATCH
batch.max_events = 1
batch.timeout_secs = 1

[sources.self_metrics]
type = "internal_metrics"

[sinks.self_metrics_sink]
type = "prometheus_exporter"
inputs = ["self_metrics"]
address = "0.0.0.0:${METRICS_PORT}"