Peering dashboard (#1492)

* Adding dashboard to monitor VPC and VPC peering group quotas

* Adding 1 ressource to the tests (dashboard)

* Adding dashboard and tests for other networking architecture

* Update test
This commit is contained in:
Aurélien Legrand 2023-07-05 18:25:31 +02:00 committed by GitHub
parent 0bc6dffce0
commit 623c886e95
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 1270 additions and 5 deletions

View File

@ -0,0 +1,253 @@
{
"dashboardFilters": [],
"displayName": "VPC & VPC Peering Group Quotas",
"labels": {},
"mosaicLayout": {
"columns": 12,
"tiles": [
{
"height": 4,
"widget": {
"title": "Internal network (L4) Load Balancers per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6
},
{
"height": 4,
"widget": {
"title": "Internal network (L4) Load Balancers per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6
},
{
"height": 4,
"widget": {
"title": "Internal application (L7) Load Balancers per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"yPos": 4
},
{
"height": 4,
"widget": {
"title": "Internal application (L7) Load Balancers per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6,
"yPos": 4
},
{
"height": 4,
"widget": {
"title": "Instances per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/instances_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/instances_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\") ",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"yPos": 8
},
{
"height": 4,
"widget": {
"title": "Instances per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/instances_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/instances_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6,
"yPos": 8
},
{
"height": 4,
"widget": {
"title": "Subnet ranges per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/subnet_ranges_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/subnet_ranges_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"yPos": 12
},
{
"height": 4,
"widget": {
"title": "Subnet ranges per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/subnet_ranges_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/subnet_ranges_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\") ",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6,
"yPos": 12
}
]
}
}

View File

@ -0,0 +1,253 @@
{
"dashboardFilters": [],
"displayName": "VPC & VPC Peering Group Quotas",
"labels": {},
"mosaicLayout": {
"columns": 12,
"tiles": [
{
"height": 4,
"widget": {
"title": "Internal network (L4) Load Balancers per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6
},
{
"height": 4,
"widget": {
"title": "Internal network (L4) Load Balancers per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6
},
{
"height": 4,
"widget": {
"title": "Internal application (L7) Load Balancers per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"yPos": 4
},
{
"height": 4,
"widget": {
"title": "Internal application (L7) Load Balancers per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6,
"yPos": 4
},
{
"height": 4,
"widget": {
"title": "Instances per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/instances_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/instances_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\") ",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"yPos": 8
},
{
"height": 4,
"widget": {
"title": "Instances per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/instances_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/instances_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6,
"yPos": 8
},
{
"height": 4,
"widget": {
"title": "Subnet ranges per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/subnet_ranges_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/subnet_ranges_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"yPos": 12
},
{
"height": 4,
"widget": {
"title": "Subnet ranges per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/subnet_ranges_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/subnet_ranges_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\") ",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6,
"yPos": 12
}
]
}
}

View File

@ -0,0 +1,253 @@
{
"dashboardFilters": [],
"displayName": "VPC & VPC Peering Group Quotas",
"labels": {},
"mosaicLayout": {
"columns": 12,
"tiles": [
{
"height": 4,
"widget": {
"title": "Internal network (L4) Load Balancers per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6
},
{
"height": 4,
"widget": {
"title": "Internal network (L4) Load Balancers per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6
},
{
"height": 4,
"widget": {
"title": "Internal application (L7) Load Balancers per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"yPos": 4
},
{
"height": 4,
"widget": {
"title": "Internal application (L7) Load Balancers per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6,
"yPos": 4
},
{
"height": 4,
"widget": {
"title": "Instances per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/instances_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/instances_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\") ",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"yPos": 8
},
{
"height": 4,
"widget": {
"title": "Instances per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/instances_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/instances_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6,
"yPos": 8
},
{
"height": 4,
"widget": {
"title": "Subnet ranges per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/subnet_ranges_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/subnet_ranges_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"yPos": 12
},
{
"height": 4,
"widget": {
"title": "Subnet ranges per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/subnet_ranges_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/subnet_ranges_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\") ",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6,
"yPos": 12
}
]
}
}

View File

@ -0,0 +1,253 @@
{
"dashboardFilters": [],
"displayName": "VPC & VPC Peering Group Quotas",
"labels": {},
"mosaicLayout": {
"columns": 12,
"tiles": [
{
"height": 4,
"widget": {
"title": "Internal network (L4) Load Balancers per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6
},
{
"height": 4,
"widget": {
"title": "Internal network (L4) Load Balancers per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6
},
{
"height": 4,
"widget": {
"title": "Internal application (L7) Load Balancers per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"yPos": 4
},
{
"height": 4,
"widget": {
"title": "Internal application (L7) Load Balancers per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6,
"yPos": 4
},
{
"height": 4,
"widget": {
"title": "Instances per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/instances_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/instances_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\") ",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"yPos": 8
},
{
"height": 4,
"widget": {
"title": "Instances per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/instances_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/instances_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6,
"yPos": 8
},
{
"height": 4,
"widget": {
"title": "Subnet ranges per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/subnet_ranges_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/subnet_ranges_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"yPos": 12
},
{
"height": 4,
"widget": {
"title": "Subnet ranges per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/subnet_ranges_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/subnet_ranges_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\") ",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6,
"yPos": 12
}
]
}
}

View File

@ -0,0 +1,253 @@
{
"dashboardFilters": [],
"displayName": "VPC & VPC Peering Group Quotas",
"labels": {},
"mosaicLayout": {
"columns": 12,
"tiles": [
{
"height": 4,
"widget": {
"title": "Internal network (L4) Load Balancers per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6
},
{
"height": 4,
"widget": {
"title": "Internal network (L4) Load Balancers per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_lb_forwarding_rules_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6
},
{
"height": 4,
"widget": {
"title": "Internal application (L7) Load Balancers per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"yPos": 4
},
{
"height": 4,
"widget": {
"title": "Internal application (L7) Load Balancers per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"breakdowns": [],
"dimensions": [],
"measures": [],
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/internal_managed_forwarding_rules_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6,
"yPos": 4
},
{
"height": 4,
"widget": {
"title": "Instances per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/instances_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/instances_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\") ",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"yPos": 8
},
{
"height": 4,
"widget": {
"title": "Instances per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/instances_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/instances_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6,
"yPos": 8
},
{
"height": 4,
"widget": {
"title": "Subnet ranges per VPC",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/subnet_ranges_per_vpc_network/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/subnet_ranges_per_vpc_network/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\")",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"yPos": 12
},
{
"height": 4,
"widget": {
"title": "Subnet ranges per VPC Peering Group",
"xyChart": {
"chartOptions": {
"mode": "COLOR"
},
"dataSets": [
{
"plotType": "LINE",
"targetAxis": "Y1",
"timeSeriesQuery": {
"timeSeriesQueryLanguage": "fetch compute.googleapis.com/VpcNetwork\n|{ metric\n compute.googleapis.com/quota/subnet_ranges_per_peering_group/usage\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .max()\n ; metric\n compute.googleapis.com/quota/subnet_ranges_per_peering_group/limit\n | align next_older(1d)\n | group_by [resource.resource_container, metric.limit_name], .min() }\n| ratio\n| value cast_units(val()*100, \"%\") ",
"unitOverride": ""
}
}
],
"thresholds": [],
"timeshiftDuration": "0s",
"yAxis": {
"label": "",
"scale": "LINEAR"
}
}
},
"width": 6,
"xPos": 6,
"yPos": 12
}
]
}
}

View File

@ -14,4 +14,4 @@
counts:
modules: 27
resources: 141
resources: 142

View File

@ -14,4 +14,4 @@
counts:
modules: 29
resources: 178
resources: 179

View File

@ -14,4 +14,4 @@
counts:
modules: 41
resources: 187
resources: 188

View File

@ -14,4 +14,4 @@
counts:
modules: 20
resources: 160
resources: 162

View File

@ -14,4 +14,4 @@
counts:
modules: 35
resources: 200
resources: 201