def check_gcp_function_execution( item: str, params: Mapping[str, Any], section_gcp_service_cloud_functions: Optional[gcp.Section], section_gcp_assets: Optional[gcp.AssetSection], ) -> CheckResult: if section_gcp_service_cloud_functions is None: return section = section_gcp_service_cloud_functions metrics = { # TODO: this is the total. Separate by state "faas_execution_count": gcp.MetricSpec( "cloudfunctions.googleapis.com/function/execution_count", "Executions count", str), "aws_lambda_memory_size_absolute": gcp.MetricSpec( "cloudfunctions.googleapis.com/function/user_memory_bytes", "Memory", render.bytes), # execution times are given in nanoseconds. timespan expects seconds. "faas_execution_times": gcp.MetricSpec( "cloudfunctions.googleapis.com/function/execution_times", "Execution times", render.timespan, scale=1e-9, ), } timeseries = section.get(item, gcp.SectionItem(rows=[])).rows yield from gcp.generic_check(metrics, timeseries, params)
def check_gcp_run_requests( item: str, params: Mapping[str, Any], section_gcp_service_cloud_run: Optional[gcp.Section], section_gcp_assets: Optional[gcp.AssetSection], ) -> CheckResult: if section_gcp_service_cloud_run is None: return metrics = { "faas_total_instance_count": gcp.MetricSpec("run.googleapis.com/container/instance_count", str, dtype="int"), "faas_execution_count": gcp.MetricSpec("run.googleapis.com/container/request_count", str, dtype="int"), "gcp_billable_time": gcp.MetricSpec("run.googleapis.com/container/billable_instance_time", lambda x: f"{x:.2f} s/s"), # timespan renderer expects seconds not milliseconds "faas_execution_times": gcp.MetricSpec("run.googleapis.com/container/request_latencies", render.timespan, scale=1e3), } timeseries = section_gcp_service_cloud_run.get( item, gcp.SectionItem(rows=[])).rows yield from gcp.generic_check(metrics, timeseries, params)
def check_gcp_run_cpu( item: str, params: Mapping[str, Any], section_gcp_service_cloud_run: Optional[gcp.Section], section_gcp_assets: Optional[gcp.AssetSection], ) -> CheckResult: if section_gcp_service_cloud_run is None: return metrics = { "util": gcp.MetricSpec( "run.googleapis.com/container/cpu/utilizations", "CPU", render.percent, scale=1e2 ), } timeseries = section_gcp_service_cloud_run.get(item, gcp.SectionItem(rows=[])).rows yield from gcp.generic_check(metrics, timeseries, params)
def check_gcp_function_network( item: str, params: Mapping[str, Any], section_gcp_service_cloud_functions: Optional[gcp.Section], section_gcp_assets: Optional[gcp.AssetSection], ) -> CheckResult: if section_gcp_service_cloud_functions is None: return section = section_gcp_service_cloud_functions metrics = { "net_data_sent": gcp.MetricSpec("cloudfunctions.googleapis.com/function/network_egress", "Out", render.networkbandwidth), } timeseries = section.get(item, gcp.SectionItem(rows=[])).rows yield from gcp.generic_check(metrics, timeseries, params)
def check_gcp_run_memory( item: str, params: Mapping[str, Any], section_gcp_service_cloud_run: Optional[gcp.Section], section_gcp_assets: Optional[gcp.AssetSection], ) -> CheckResult: if section_gcp_service_cloud_run is None: return metrics = { # percent render expects numbers range 0 to 100 and not fractions. "memory_util": gcp.MetricSpec( "run.googleapis.com/container/memory/utilizations", "Memory", render.percent, scale=1e2 ), } timeseries = section_gcp_service_cloud_run.get(item, gcp.SectionItem(rows=[])).rows yield from gcp.generic_check(metrics, timeseries, params)
def check_gcp_function_instances( item: str, params: Mapping[str, Any], section_gcp_service_cloud_functions: Optional[gcp.Section], section_gcp_assets: Optional[gcp.AssetSection], ) -> CheckResult: if section_gcp_service_cloud_functions is None: return section = section_gcp_service_cloud_functions metrics = { "faas_total_instance_count": gcp.MetricSpec("cloudfunctions.googleapis.com/function/instance_count", str), "faas_active_instance_count": gcp.MetricSpec( "cloudfunctions.googleapis.com/function/active_instances", str), } timeseries = section.get(item, gcp.SectionItem(rows=[])).rows yield from gcp.generic_check(metrics, timeseries, params)
def check_gcp_run_network( item: str, params: Mapping[str, Any], section_gcp_service_cloud_run: Optional[gcp.Section], section_gcp_assets: Optional[gcp.AssetSection], ) -> CheckResult: if section_gcp_service_cloud_run is None: return metrics = { "net_data_recv": gcp.MetricSpec( "run.googleapis.com/container/network/received_bytes_count", render.networkbandwidth), "net_data_sent": gcp.MetricSpec("run.googleapis.com/container/network/sent_bytes_count", render.networkbandwidth), } timeseries = section_gcp_service_cloud_run.get( item, gcp.SectionItem(rows=[])).rows yield from gcp.generic_check(metrics, timeseries, params)
def check_gcp_run_requests( item: str, params: Mapping[str, Any], section_gcp_service_cloud_run: Optional[gcp.Section], section_gcp_assets: Optional[gcp.AssetSection], ) -> CheckResult: if section_gcp_service_cloud_run is None: return metrics = { "faas_total_instance_count": gcp.MetricSpec( "run.googleapis.com/container/instance_count", "Instances", str, dtype=gcp.MetricSpec.DType.INT, ), "faas_execution_count": gcp.MetricSpec( "run.googleapis.com/request_count", "Requests", str, ), "faas_execution_count_2xx": gcp.MetricSpec( "run.googleapis.com/request_count", "Requests 2xx (sucess)", str, filter_by=gcp.Filter("response_code_class", "2xx"), ), "faas_execution_count_3xx": gcp.MetricSpec( "run.googleapis.com/request_count", "Requests 3xx (redirection)", str, filter_by=gcp.Filter("response_code_class", "3xx"), ), "faas_execution_count_4xx": gcp.MetricSpec( "run.googleapis.com/request_count", "Requests 4xx (client error)", str, filter_by=gcp.Filter("response_code_class", "4xx"), ), "faas_execution_count_5xx": gcp.MetricSpec( "run.googleapis.com/request_count", "Requests 5xx (server error)", str, filter_by=gcp.Filter("response_code_class", "5xx"), ), "gcp_billable_time": gcp.MetricSpec( "run.googleapis.com/container/billable_instance_time", "Billable time", lambda x: f"{x:.2f} s/s", ), # timespan renderer expects seconds not milliseconds "faas_execution_times": gcp.MetricSpec( "run.googleapis.com/container/request_latencies", "Latencies", render.timespan, scale=1e3, ), } timeseries = section_gcp_service_cloud_run.get( item, gcp.SectionItem(rows=[])).rows yield from gcp.generic_check(metrics, timeseries, params)