diff --git a/config/examples/dashboards/policies.json b/config/examples/dashboards/policies.json index 35b9ddb..3d02340 100644 --- a/config/examples/dashboards/policies.json +++ b/config/examples/dashboards/policies.json @@ -89,7 +89,7 @@ { "matcher": { "id": "byName", - "options": "Target Kind" + "options": "Name" }, "properties": [ { @@ -101,7 +101,7 @@ "value": [ { "title": "TLSPolicy Details", - "url": "/d/gatewayapigateways/gateway-api-state-gateways?var-tlspolicy=${__value.text}" + "url": "/d/gatewayapigateways/gateway-api-state-gateways?var-gateway=${__data.fields[\"Target Name\"]}" } ] } @@ -231,7 +231,7 @@ { "matcher": { "id": "byName", - "options": "Target Kind" + "options": "Name" }, "properties": [ { @@ -243,7 +243,7 @@ "value": [ { "title": "RateLimitPolicy Details", - "url": "/d/gatewayapihttproutes/gateway-api-state-httproutes?var-ratelimitpolicy=${__value.text}" + "url": "/d/gatewayapihttproutes/gateway-api-state-httproutes?var-httproute=${__data.fields[\"Target Name\"]}" } ] } @@ -373,7 +373,7 @@ { "matcher": { "id": "byName", - "options": "Target Kind" + "options": "Name" }, "properties": [ { @@ -385,7 +385,7 @@ "value": [ { "title": "AuthPolicy Details", - "url": "/d/gatewayapihttproutes/gateway-api-state-httproutes?var-authpolicy=${__value.text}" + "url": "/d/gatewayapihttproutes/gateway-api-state-httproutes?var-httproute=${__data.fields[\"Target Name\"]}" } ] } diff --git a/config/examples/dashboards/policies.yaml b/config/examples/dashboards/policies.yaml index 03736c0..01879e2 100644 --- a/config/examples/dashboards/policies.yaml +++ b/config/examples/dashboards/policies.yaml @@ -7,4 +7,4 @@ spec: matchLabels: dashboards: "grafana" json: > - {"editable":false,"links":[{"asDropdown":false,"includeVars":true,"keepTime":true,"tags":["gateway-api-state"],"targetBlank":false,"title":"Gateway Dashboards","type":"dashboards"}],"panels":[{"gridPos":{"h":1,"w":24,"x":0,"y":0},"id":1,"title":"TLSPolicy","type":"row"},{"datasource":{"type":"prometheus","uid":"$datasource"},"description":"Total number of TLSPolicy across all clusters","gridPos":{"h":3,"w":2,"x":0,"y":1},"id":2,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"count(gatewayapi_tlspolicy_status{name=~\"${tlspolicy}\"})","instant":true}],"title":"Total","type":"stat"},{"datasource":{"type":"prometheus","uid":"$datasource"},"description":"Total TLSPolicy with an Ready state","gridPos":{"h":3,"w":2,"x":2,"y":1},"id":3,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"count(gatewayapi_tlspolicy_status{type=\"Ready\", name=~\"${tlspolicy}\"})","instant":true}],"title":"Ready","type":"stat"},{"datasource":{"type":"prometheus","uid":"$datasource"},"fieldConfig":{"overrides":[{"matcher":{"id":"byName","options":"Target Kind"},"properties":[{"id":"custom.displayMode","value":"color-text"},{"id":"links","value":[{"title":"TLSPolicy Details","url":"/d/gatewayapigateways/gateway-api-state-gateways?var-tlspolicy=${__value.text}"}]}]}]},"gridPos":{"h":6,"w":10,"x":4,"y":1},"id":4,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"gatewayapi_tlspolicy_target_info{name=~\"${tlspolicy}\"}","format":"table","instant":true,"range":false}],"title":"TLSPolicy","transformations":[{"id":"filterFieldsByName","options":{"include":{"names":["name","target_kind","target_name"]}}},{"id":"organize","options":{"renameByName":{"name":"Name","target_kind":"Target Kind","target_name":"Target Name"}}}],"type":"table"},{"gridPos":{"h":1,"w":24,"x":0,"y":2},"id":5,"title":"RateLimitPolicy","type":"row"},{"datasource":{"type":"prometheus","uid":"$datasource"},"description":"Total number of RateLimitPolicy across all clusters","gridPos":{"h":3,"w":2,"x":0,"y":3},"id":6,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"count(gatewayapi_ratelimitpolicy_status{name=~\"${ratelimitpolicy}\"})","instant":true}],"title":"Total","type":"stat"},{"datasource":{"type":"prometheus","uid":"$datasource"},"description":"Total RateLimitPolicy with an Available state","gridPos":{"h":3,"w":2,"x":2,"y":3},"id":7,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"count(gatewayapi_ratelimitpolicy_status{type=\"Available\", name=~\"${ratelimitpolicy}\"})","instant":true}],"title":"Available","type":"stat"},{"datasource":{"type":"prometheus","uid":"$datasource"},"fieldConfig":{"overrides":[{"matcher":{"id":"byName","options":"Target Kind"},"properties":[{"id":"custom.displayMode","value":"color-text"},{"id":"links","value":[{"title":"RateLimitPolicy Details","url":"/d/gatewayapihttproutes/gateway-api-state-httproutes?var-ratelimitpolicy=${__value.text}"}]}]}]},"gridPos":{"h":6,"w":10,"x":4,"y":7},"id":8,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"gatewayapi_ratelimitpolicy_target_info{name=~\"${ratelimitpolicy}\"}","format":"table","instant":true,"range":false}],"title":"RateLimitPolicy","transformations":[{"id":"filterFieldsByName","options":{"include":{"names":["name","target_kind","target_name"]}}},{"id":"organize","options":{"renameByName":{"name":"Name","target_kind":"Target Kind","target_name":"Target Name"}}}],"type":"table"},{"gridPos":{"h":1,"w":24,"x":0,"y":8},"id":9,"title":"AuthPolicy","type":"row"},{"datasource":{"type":"prometheus","uid":"$datasource"},"description":"Total number of AuthPolicy across all clusters","gridPos":{"h":3,"w":2,"x":0,"y":9},"id":10,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"count(gatewayapi_authpolicy_status{name=~\"${authpolicy}\"})","instant":true}],"title":"Total","type":"stat"},{"datasource":{"type":"prometheus","uid":"$datasource"},"description":"Total AuthPolicy with an Available state","gridPos":{"h":3,"w":2,"x":2,"y":9},"id":11,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"count(gatewayapi_authpolicy_status{type=\"Available\", name=~\"${authpolicy}\"})","instant":true}],"title":"Available","type":"stat"},{"datasource":{"type":"prometheus","uid":"$datasource"},"fieldConfig":{"overrides":[{"matcher":{"id":"byName","options":"Target Kind"},"properties":[{"id":"custom.displayMode","value":"color-text"},{"id":"links","value":[{"title":"AuthPolicy Details","url":"/d/gatewayapihttproutes/gateway-api-state-httproutes?var-authpolicy=${__value.text}"}]}]}]},"gridPos":{"h":6,"w":10,"x":4,"y":9},"id":12,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"gatewayapi_authpolicy_target_info{name=~\"${authpolicy}\"}","format":"table","instant":true,"range":false}],"title":"AuthPolicy","transformations":[{"id":"filterFieldsByName","options":{"include":{"names":["name","target_kind","target_name"]}}},{"id":"organize","options":{"renameByName":{"name":"Name","target_kind":"Target Kind","target_name":"Target Name"}}}],"type":"table"},{"gridPos":{"h":1,"w":24,"x":0,"y":10},"id":13,"title":"BackendTLSPolicy","type":"row"},{"datasource":{"type":"prometheus","uid":"$datasource"},"fieldConfig":{"overrides":[]},"gridPos":{"h":6,"w":10,"x":4,"y":10},"id":14,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"gatewayapi_backendtlspolicy_target_info{name=~\"${backendtlspolicy}\"}","format":"table","instant":true,"range":false}],"title":"BackendTLSPolicy","transformations":[{"id":"filterFieldsByName","options":{"include":{"names":["name","target_kind","target_name"]}}},{"id":"organize","options":{"renameByName":{"name":"Name","target_kind":"Target Kind","target_name":"Target Name"}}}],"type":"table"}],"schemaVersion":36,"style":"dark","tags":["gateway-api","gateway-api-state"],"templating":{"list":[{"label":"Data Source","name":"datasource","query":"prometheus","type":"datasource"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"includeAll":true,"label":"TLSPolicy","multi":true,"name":"tlspolicy","query":{"query":"label_values(gatewayapi_tlspolicy_created, name)","refId":"StandardVariableQuery"},"regex":"/(.*)/","type":"query"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"includeAll":true,"label":"RateLimitPolicy","multi":true,"name":"ratelimitpolicy","query":{"query":"label_values(gatewayapi_ratelimitpolicy_created, name)","refId":"StandardVariableQuery"},"regex":"/(.*)/","type":"query"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"includeAll":true,"label":"AuthPolicy","multi":true,"name":"authpolicy","query":{"query":"label_values(gatewayapi_authpolicy_created, name)","refId":"StandardVariableQuery"},"regex":"/(.*)/","type":"query"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"includeAll":true,"label":"BackendTLSPolicy","multi":true,"name":"backendtlspolicy","query":{"query":"label_values(gatewayapi_backendtlspolicy_created, name)","refId":"StandardVariableQuery"},"regex":"/(.*)/","type":"query"}]},"time":{"from":"now-1h","to":"now"},"timezone":"utc","title":"Gateway API State / Policies","uid":"gatewayapipolicies"} + {"editable":false,"links":[{"asDropdown":false,"includeVars":true,"keepTime":true,"tags":["gateway-api-state"],"targetBlank":false,"title":"Gateway Dashboards","type":"dashboards"}],"panels":[{"gridPos":{"h":1,"w":24,"x":0,"y":0},"id":1,"title":"TLSPolicy","type":"row"},{"datasource":{"type":"prometheus","uid":"$datasource"},"description":"Total number of TLSPolicy across all clusters","gridPos":{"h":3,"w":2,"x":0,"y":1},"id":2,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"count(gatewayapi_tlspolicy_status{name=~\"${tlspolicy}\"})","instant":true}],"title":"Total","type":"stat"},{"datasource":{"type":"prometheus","uid":"$datasource"},"description":"Total TLSPolicy with an Ready state","gridPos":{"h":3,"w":2,"x":2,"y":1},"id":3,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"count(gatewayapi_tlspolicy_status{type=\"Ready\", name=~\"${tlspolicy}\"})","instant":true}],"title":"Ready","type":"stat"},{"datasource":{"type":"prometheus","uid":"$datasource"},"fieldConfig":{"overrides":[{"matcher":{"id":"byName","options":"Name"},"properties":[{"id":"custom.displayMode","value":"color-text"},{"id":"links","value":[{"title":"TLSPolicy Details","url":"/d/gatewayapigateways/gateway-api-state-gateways?var-gateway=${__data.fields[\"Target Name\"]}"}]}]}]},"gridPos":{"h":6,"w":10,"x":4,"y":1},"id":4,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"gatewayapi_tlspolicy_target_info{name=~\"${tlspolicy}\"}","format":"table","instant":true,"range":false}],"title":"TLSPolicy","transformations":[{"id":"filterFieldsByName","options":{"include":{"names":["name","target_kind","target_name"]}}},{"id":"organize","options":{"renameByName":{"name":"Name","target_kind":"Target Kind","target_name":"Target Name"}}}],"type":"table"},{"gridPos":{"h":1,"w":24,"x":0,"y":2},"id":5,"title":"RateLimitPolicy","type":"row"},{"datasource":{"type":"prometheus","uid":"$datasource"},"description":"Total number of RateLimitPolicy across all clusters","gridPos":{"h":3,"w":2,"x":0,"y":3},"id":6,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"count(gatewayapi_ratelimitpolicy_status{name=~\"${ratelimitpolicy}\"})","instant":true}],"title":"Total","type":"stat"},{"datasource":{"type":"prometheus","uid":"$datasource"},"description":"Total RateLimitPolicy with an Available state","gridPos":{"h":3,"w":2,"x":2,"y":3},"id":7,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"count(gatewayapi_ratelimitpolicy_status{type=\"Available\", name=~\"${ratelimitpolicy}\"})","instant":true}],"title":"Available","type":"stat"},{"datasource":{"type":"prometheus","uid":"$datasource"},"fieldConfig":{"overrides":[{"matcher":{"id":"byName","options":"Name"},"properties":[{"id":"custom.displayMode","value":"color-text"},{"id":"links","value":[{"title":"RateLimitPolicy Details","url":"/d/gatewayapihttproutes/gateway-api-state-httproutes?var-httproute=${__data.fields[\"Target Name\"]}"}]}]}]},"gridPos":{"h":6,"w":10,"x":4,"y":7},"id":8,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"gatewayapi_ratelimitpolicy_target_info{name=~\"${ratelimitpolicy}\"}","format":"table","instant":true,"range":false}],"title":"RateLimitPolicy","transformations":[{"id":"filterFieldsByName","options":{"include":{"names":["name","target_kind","target_name"]}}},{"id":"organize","options":{"renameByName":{"name":"Name","target_kind":"Target Kind","target_name":"Target Name"}}}],"type":"table"},{"gridPos":{"h":1,"w":24,"x":0,"y":8},"id":9,"title":"AuthPolicy","type":"row"},{"datasource":{"type":"prometheus","uid":"$datasource"},"description":"Total number of AuthPolicy across all clusters","gridPos":{"h":3,"w":2,"x":0,"y":9},"id":10,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"count(gatewayapi_authpolicy_status{name=~\"${authpolicy}\"})","instant":true}],"title":"Total","type":"stat"},{"datasource":{"type":"prometheus","uid":"$datasource"},"description":"Total AuthPolicy with an Available state","gridPos":{"h":3,"w":2,"x":2,"y":9},"id":11,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"count(gatewayapi_authpolicy_status{type=\"Available\", name=~\"${authpolicy}\"})","instant":true}],"title":"Available","type":"stat"},{"datasource":{"type":"prometheus","uid":"$datasource"},"fieldConfig":{"overrides":[{"matcher":{"id":"byName","options":"Name"},"properties":[{"id":"custom.displayMode","value":"color-text"},{"id":"links","value":[{"title":"AuthPolicy Details","url":"/d/gatewayapihttproutes/gateway-api-state-httproutes?var-httproute=${__data.fields[\"Target Name\"]}"}]}]}]},"gridPos":{"h":6,"w":10,"x":4,"y":9},"id":12,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"gatewayapi_authpolicy_target_info{name=~\"${authpolicy}\"}","format":"table","instant":true,"range":false}],"title":"AuthPolicy","transformations":[{"id":"filterFieldsByName","options":{"include":{"names":["name","target_kind","target_name"]}}},{"id":"organize","options":{"renameByName":{"name":"Name","target_kind":"Target Kind","target_name":"Target Name"}}}],"type":"table"},{"gridPos":{"h":1,"w":24,"x":0,"y":10},"id":13,"title":"BackendTLSPolicy","type":"row"},{"datasource":{"type":"prometheus","uid":"$datasource"},"fieldConfig":{"overrides":[]},"gridPos":{"h":6,"w":10,"x":4,"y":10},"id":14,"pluginVersion":"v10.0.0","targets":[{"datasource":{"type":"prometheus","uid":"$datasource"},"expr":"gatewayapi_backendtlspolicy_target_info{name=~\"${backendtlspolicy}\"}","format":"table","instant":true,"range":false}],"title":"BackendTLSPolicy","transformations":[{"id":"filterFieldsByName","options":{"include":{"names":["name","target_kind","target_name"]}}},{"id":"organize","options":{"renameByName":{"name":"Name","target_kind":"Target Kind","target_name":"Target Name"}}}],"type":"table"}],"schemaVersion":36,"style":"dark","tags":["gateway-api","gateway-api-state"],"templating":{"list":[{"label":"Data Source","name":"datasource","query":"prometheus","type":"datasource"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"includeAll":true,"label":"TLSPolicy","multi":true,"name":"tlspolicy","query":{"query":"label_values(gatewayapi_tlspolicy_created, name)","refId":"StandardVariableQuery"},"regex":"/(.*)/","type":"query"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"includeAll":true,"label":"RateLimitPolicy","multi":true,"name":"ratelimitpolicy","query":{"query":"label_values(gatewayapi_ratelimitpolicy_created, name)","refId":"StandardVariableQuery"},"regex":"/(.*)/","type":"query"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"includeAll":true,"label":"AuthPolicy","multi":true,"name":"authpolicy","query":{"query":"label_values(gatewayapi_authpolicy_created, name)","refId":"StandardVariableQuery"},"regex":"/(.*)/","type":"query"},{"datasource":{"type":"prometheus","uid":"${datasource}"},"includeAll":true,"label":"BackendTLSPolicy","multi":true,"name":"backendtlspolicy","query":{"query":"label_values(gatewayapi_backendtlspolicy_created, name)","refId":"StandardVariableQuery"},"regex":"/(.*)/","type":"query"}]},"time":{"from":"now-1h","to":"now"},"timezone":"utc","title":"Gateway API State / Policies","uid":"gatewayapipolicies"} diff --git a/config/examples/kube-prometheus/bundle.yaml b/config/examples/kube-prometheus/bundle.yaml index 47d858a..8ad3b5f 100644 --- a/config/examples/kube-prometheus/bundle.yaml +++ b/config/examples/kube-prometheus/bundle.yaml @@ -41342,7 +41342,7 @@ data: { "matcher": { "id": "byName", - "options": "Target Kind" + "options": "Name" }, "properties": [ { @@ -41354,7 +41354,7 @@ data: "value": [ { "title": "TLSPolicy Details", - "url": "/d/gatewayapigateways/gateway-api-state-gateways?var-tlspolicy=${__value.text}" + "url": "/d/gatewayapigateways/gateway-api-state-gateways?var-gateway=${__data.fields[\"Target Name\"]}" } ] } @@ -41484,7 +41484,7 @@ data: { "matcher": { "id": "byName", - "options": "Target Kind" + "options": "Name" }, "properties": [ { @@ -41496,7 +41496,7 @@ data: "value": [ { "title": "RateLimitPolicy Details", - "url": "/d/gatewayapihttproutes/gateway-api-state-httproutes?var-ratelimitpolicy=${__value.text}" + "url": "/d/gatewayapihttproutes/gateway-api-state-httproutes?var-httproute=${__data.fields[\"Target Name\"]}" } ] } @@ -41626,7 +41626,7 @@ data: { "matcher": { "id": "byName", - "options": "Target Kind" + "options": "Name" }, "properties": [ { @@ -41638,7 +41638,7 @@ data: "value": [ { "title": "AuthPolicy Details", - "url": "/d/gatewayapihttproutes/gateway-api-state-httproutes?var-authpolicy=${__value.text}" + "url": "/d/gatewayapihttproutes/gateway-api-state-httproutes?var-httproute=${__data.fields[\"Target Name\"]}" } ] } @@ -41850,7 +41850,7 @@ data: } kind: ConfigMap metadata: - name: grafana-policies-6cd8tt22hh + name: grafana-policies-mm79g57m76 namespace: monitoring --- @@ -44605,7 +44605,7 @@ spec: name: grafana-tlsroutes - configMap: defaultMode: 420 - name: grafana-policies-6cd8tt22hh + name: grafana-policies-mm79g57m76 name: grafana-policies - configMap: defaultMode: 420 diff --git a/config/kuadrant/kuadrant.yaml b/config/kuadrant/kuadrant.yaml index 0924673..15a1a7e 100644 --- a/config/kuadrant/kuadrant.yaml +++ b/config/kuadrant/kuadrant.yaml @@ -91,12 +91,12 @@ status: apiVersion: kuadrant.io/v1beta2 kind: AuthPolicy metadata: - name: auth-internal-protection + name: auth-protection spec: targetRef: group: gateway.networking.k8s.io kind: HTTPRoute - name: auth-internal + name: auth rules: authentication: "keycloak-users": diff --git a/src/dashboards/lib/gwapi/gwapi.libsonnet b/src/dashboards/lib/gwapi/gwapi.libsonnet index 4ca0e7d..ce3bef4 100644 --- a/src/dashboards/lib/gwapi/gwapi.libsonnet +++ b/src/dashboards/lib/gwapi/gwapi.libsonnet @@ -278,7 +278,7 @@ local var = import './variables.libsonnet'; }), ]), - policyPanel(title, h, w, x, y, expr, linkTitle="", linkUrl=""): + policyPanel(title, h, w, x, y, expr, nameToOverride="", linkTitle="", linkUrl=""): self.table(title, h, w, x, y, expr) + g.panel.table.queryOptions.withTransformations([ g.panel.table.transformation.withId('filterFieldsByName') @@ -300,21 +300,16 @@ local var = import './variables.libsonnet'; }, }), ]) - + g.panel.table.standardOptions.withOverrides((if linkTitle != "" && linkUrl != "" then [ - g.panel.table.fieldOverride.byName.new('Target Kind') - + g.panel.table.fieldOverride.byName.withProperty( - 'custom.displayMode', - 'color-text' - ) - + g.panel.table.fieldOverride.byName.withProperty( - 'links', - [ + + var.withOverrides( + (if linkTitle != "" && linkUrl != "" then [ + var.overrideName(nameToOverride) + + var.overrideProp('custom.displayMode', 'color-text') + + var.overrideProp('links', [ { title: linkTitle, url: linkUrl, }, - ] - ), - ]else []) - ), + ]) + ]else []) + ) } \ No newline at end of file diff --git a/src/dashboards/policies.jsonnet b/src/dashboards/policies.jsonnet index 26173a6..6f4d9d6 100644 --- a/src/dashboards/policies.jsonnet +++ b/src/dashboards/policies.jsonnet @@ -12,15 +12,15 @@ gwapi.dashboard('Policies', 'gatewayapipolicies', [ gwapi.row('TLSPolicy', 1, 24, 0, 0), gwapi.stat('Total', 3, 2, 0, 1, 'Total number of TLSPolicy across all clusters', 'count(gatewayapi_tlspolicy_status{name=~"${tlspolicy}"})'), gwapi.stat('Ready', 3, 2, 2, 1, 'Total TLSPolicy with an Ready state', 'count(gatewayapi_tlspolicy_status{type="Ready", name=~"${tlspolicy}"})'), - gwapi.policyPanel('TLSPolicy',6,10,4,1,'gatewayapi_tlspolicy_target_info{name=~"${tlspolicy}"}', 'TLSPolicy Details', '/d/gatewayapigateways/gateway-api-state-gateways?var-tlspolicy=${__value.text}'), + gwapi.policyPanel('TLSPolicy',6,10,4,1,'gatewayapi_tlspolicy_target_info{name=~"${tlspolicy}"}', 'Name', 'TLSPolicy Details', '/d/gatewayapigateways/gateway-api-state-gateways?var-gateway=${__data.fields["Target Name"]}'), gwapi.row('RateLimitPolicy', 1, 24, 0, 2), gwapi.stat('Total', 3, 2, 0, 3, 'Total number of RateLimitPolicy across all clusters', 'count(gatewayapi_ratelimitpolicy_status{name=~"${ratelimitpolicy}"})'), gwapi.stat('Available', 3, 2, 2, 3, 'Total RateLimitPolicy with an Available state', 'count(gatewayapi_ratelimitpolicy_status{type="Available", name=~"${ratelimitpolicy}"})'), - gwapi.policyPanel('RateLimitPolicy',6,10,4,7,'gatewayapi_ratelimitpolicy_target_info{name=~"${ratelimitpolicy}"}', 'RateLimitPolicy Details', '/d/gatewayapihttproutes/gateway-api-state-httproutes?var-ratelimitpolicy=${__value.text}'), + gwapi.policyPanel('RateLimitPolicy',6,10,4,7,'gatewayapi_ratelimitpolicy_target_info{name=~"${ratelimitpolicy}"}', 'Name', 'RateLimitPolicy Details', '/d/gatewayapihttproutes/gateway-api-state-httproutes?var-httproute=${__data.fields["Target Name"]}'), gwapi.row('AuthPolicy', 1, 24, 0, 8), gwapi.stat('Total', 3, 2, 0, 9, 'Total number of AuthPolicy across all clusters', 'count(gatewayapi_authpolicy_status{name=~"${authpolicy}"})'), gwapi.stat('Available', 3, 2, 2, 9, 'Total AuthPolicy with an Available state', 'count(gatewayapi_authpolicy_status{type="Available", name=~"${authpolicy}"})'), - gwapi.policyPanel('AuthPolicy',6,10,4,9,'gatewayapi_authpolicy_target_info{name=~"${authpolicy}"}', 'AuthPolicy Details', '/d/gatewayapihttproutes/gateway-api-state-httproutes?var-authpolicy=${__value.text}'), + gwapi.policyPanel('AuthPolicy',6,10,4,9,'gatewayapi_authpolicy_target_info{name=~"${authpolicy}"}', 'Name', 'AuthPolicy Details', '/d/gatewayapihttproutes/gateway-api-state-httproutes?var-httproute=${__data.fields["Target Name"]}'), gwapi.row('BackendTLSPolicy', 1, 24, 0, 10), gwapi.policyPanel('BackendTLSPolicy',6,10,4,10,'gatewayapi_backendtlspolicy_target_info{name=~"${backendtlspolicy}"}'), ]) \ No newline at end of file