def get_finops_promql_queries(selector):
"""
Thanos 쿼리용 PromQL 매크로 딕셔너리를 생성합니다.
selector 예시: '{container!="", namespace=~"prod-.*"}'
"""
pv_selector = selector.replace('container!="", ', '').replace(', container!=""', '')
return {
"cpu_request": f'kube_pod_container_resource_requests{selector.replace("container!=", "resource=\"cpu\", container!=")}',
"cpu_limit": f'kube_pod_container_resource_limits{selector.replace("container!=", "resource=\"cpu\", container!=")}',
"cpu_usage": f'rate(container_cpu_usage_seconds_total{selector}[1m])',
"cpu_throttled": f'rate(container_cpu_cfs_throttled_periods_total{selector}[1m])',
"mem_request": f'kube_pod_container_resource_requests{selector.replace("container!=", "resource=\"memory\", container!=")}',
"mem_limit": f'kube_pod_container_resource_limits{selector.replace("container!=", "resource=\"memory\", container!=")}',
"mem_usage": f'container_memory_working_set_bytes{selector}',
"mem_rss": f'container_memory_rss{selector}',
"oom_event": f'kube_pod_container_status_terminated_reason{selector.replace("container!=", "reason=\"OOMKilled\", container!=")}',
"pv_capacity": f'kubelet_volume_stats_capacity_bytes{pv_selector}',
"pv_used": f'kubelet_volume_stats_used_bytes{pv_selector}'
}