Skip to content

Instantly share code, notes, and snippets.

View david-martin's full-sized avatar

David Martin david-martin

View GitHub Profile
@david-martin
david-martin / verify.sh
Created January 28, 2026 10:54
verify init, list, event-stream
curl --include -X POST -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" http://mcp.127-0-0-1.sslip.io:8001/mcp --data '
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": {
"roots": {
"listChanged": true
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
resourceVersion: '96519540'
name: kuadrant-ratelimiting-mcp-streamable
uid: f04a4ef3-8c28-45d0-9102-0a0e5bdc260f
creationTimestamp: '2025-06-30T15:42:28Z'
generation: 1
namespace: mcp-gateway
ownerReferences:
diff --git a/platform/observability-hub/grafana/dashboards/grafana-dashboard-app-developer.json b/platform/observability-hub/grafana/dashboards/grafana-dashboard-app-developer_2.json
index bec23a3..5344dcd 100644
--- a/platform/observability-hub/grafana/dashboards/grafana-dashboard-app-developer.json
+++ b/platform/observability-hub/grafana/dashboards/grafana-dashboard-app-developer_2.json
@@ -1,4 +1,59 @@
{
+ "__inputs": [
+ {
+ "name": "DS_KUADRANT-THANOS-HUB",
+ "label": "Kuadrant-Thanos-Hub",

Gateway API State Metrics

TLDR

Inspired by https://github.com/kubernetes/kube-state-metrics, this is a proposal for a prometheus metrics exporter. The exporter will export metrics solely for Gateway API resources. The exporter will watch the kubernetes API server for Gateway API resources and convert the contents of the resources into metrics with labels and values.

By providing a standard set of metrics around Gateway API resources it will allow further standardization and sharing of things like:

@david-martin
david-martin / node_exporter_metrics.txt
Created August 3, 2023 12:04
Node Exporter Metrics
ALERTS{} 17
ALERTS_FOR_STATE{} 17
count:up1{} 1
go_gc_duration_seconds{} 5
go_gc_duration_seconds_count{} 1
go_gc_duration_seconds_sum{} 1
go_goroutines{} 1
go_info{} 1
go_memstats_alloc_bytes{} 1
go_memstats_alloc_bytes_total{} 1
@david-martin
david-martin / kubelet_metrics.txt
Created August 3, 2023 12:02
Kubelet Metrics
apiserver_audit_event_total{} 1
apiserver_audit_requests_rejected_total{} 1
apiserver_client_certificate_expiration_seconds_bucket{} 15
apiserver_client_certificate_expiration_seconds_count{} 1
apiserver_client_certificate_expiration_seconds_sum{} 1
apiserver_delegated_authn_request_duration_seconds_bucket{} 9
apiserver_delegated_authn_request_duration_seconds_count{} 1
apiserver_delegated_authn_request_duration_seconds_sum{} 1
apiserver_delegated_authn_request_total{} 1
apiserver_delegated_authz_request_duration_seconds_bucket{} 9
@david-martin
david-martin / istio_metrics.txt
Created August 3, 2023 11:39
Istio Metrics port 15020
envoy_cluster_assignment_stale{} 1
envoy_cluster_assignment_timeout_received{} 1
envoy_cluster_bind_errors{} 1
envoy_cluster_circuit_breakers_default_cx_open{} 1
envoy_cluster_circuit_breakers_default_cx_pool_open{} 1
envoy_cluster_circuit_breakers_default_rq_open{} 1
envoy_cluster_circuit_breakers_default_rq_pending_open{} 1
envoy_cluster_circuit_breakers_default_rq_retry_open{} 1
envoy_cluster_circuit_breakers_high_cx_open{} 1
envoy_cluster_circuit_breakers_high_cx_pool_open{} 1
citadel_server_csr_count{endpoint="http-monitoring", instance="10.24.0.40:15014", job="istiod", namespace="istio-system", pod="istiod-6cf9df5bb8-9xmql", service="istiod" 9
citadel_server_root_cert_expiry_timestamp{endpoint="http-monitoring", instance="10.24.0.40:15014", job="istiod", namespace="istio-system", pod="istiod-6cf9df5bb8-9xmql", service="istiod" 2006240124
citadel_server_success_cert_issuance_count{endpoint="http-monitoring", instance="10.24.0.40:15014", job="istiod", namespace="istio-system", pod="istiod-6cf9df5bb8-9xmql", service="istiod" 9
count:up1{endpoint="http-monitoring", job="istiod", namespace="istio-system", service="istiod" 1
endpoint_no_pod{endpoint="http-monitoring", instance="10.24.0.40:15014", job="istiod", namespace="istio-system", pod="istiod-6cf9df5bb8-9xmql", service="istiod" 0
galley_validation_config_updates{endpoint="http-monitoring", instance="10.24.0.40:15014", job="istiod", namespace="istio-system", pod="istiod-6cf9df5bb8-9xmql", service="istiod" 2
galley_validation_failed
@david-martin
david-martin / envoy_stats_metrics.txt
Created August 3, 2023 11:30
Envoy stats metrics
count:up1{container="istio-proxy", endpoint="http-envoy-prom", job="default/envoy-stats", namespace="istio-system"} 1
envoy_cluster_assignment_stale{cluster_name="xds-grpc", container="istio-proxy", endpoint="http-envoy-prom", instance="10.24.0.41:15090", job="default/envoy-stats", namespace="istio-system", pod="istio-ingressgateway-7b4d7578d8-5g47c"} 0
envoy_cluster_assignment_timeout_received{cluster_name="xds-grpc", container="istio-proxy", endpoint="http-envoy-prom", instance="10.24.0.41:15090", job="default/envoy-stats", namespace="istio-system", pod="istio-ingressgateway-7b4d7578d8-5g47c"} 0
envoy_cluster_bind_errors{cluster_name="xds-grpc", container="istio-proxy", endpoint="http-envoy-prom", instance="10.24.0.41:15090", job="default/envoy-stats", namespace="istio-system", pod="istio-ingressgateway-7b4d7578d8-5g47c"} 0
envoy_cluster_circuit_breakers_default_cx_open{cluster_name="xds-grpc", container="istio-proxy", endpoint="http-envoy-prom", instance="10.24.0.41:15090", job="default/envoy-stats", names
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": "$datasource",
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",