[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M714KFKGXTYYZGSTVRH86873":3,"skill-same:01M714KFKGXTYYZGSTVRH86873":61},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":14,"repositoryHtmlUrl":44,"repositoryHomepageUrl":6,"ownerHtmlUrl":45,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":46,"install":47,"resources":60},"01M714KFKGXTYYZGSTVRH86873","service-mesh-observability",null,"Complete guide to observability patterns for Istio, Linkerd, and service mesh deployments.","sapsapshen\u002Fai-memory-router","sapsapshen","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F20347959?v=4","01M6XDQEF1DP50DKF37H81J3J5","shenmian","01M6XDQEJPE41Y3DT2763X8ZJN",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fservice-mesh-observability\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"mesh","observability","service mesh","service mesh observability","service","istio","guide","deployments","community","patterns","complete","linkerd","for","unknown","observability patterns","2026","2026-11-10 10:12:30",false,"---\nname: service-mesh-observability\ndescription: \"Complete guide to observability patterns for Istio, Linkerd, and service mesh deployments.\"\nrisk: unknown\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Service Mesh Observability\n\nComplete guide to observability patterns for Istio, Linkerd, and service mesh deployments.\n\n## Do not use this skill when\n\n- The task is unrelated to service mesh observability\n- You need a different domain or tool outside this scope\n\n## Instructions\n\n- Clarify goals, constraints, and required inputs.\n- Apply relevant best practices and validate outcomes.\n- Provide actionable steps and verification.\n- If detailed examples are required, open `resources\u002Fimplementation-playbook.md`.\n\n## Use this skill when\n\n- Setting up distributed tracing across services\n- Implementing service mesh metrics and dashboards\n- Debugging latency and error issues\n- Defining SLOs for service communication\n- Visualizing service dependencies\n- Troubleshooting mesh connectivity\n\n## Core Concepts\n\n### 1. Three Pillars of Observability\n\n```\n┌─────────────────────────────────────────────────────┐\n│                  Observability                       │\n├─────────────────┬─────────────────┬─────────────────┤\n│     Metrics     │     Traces      │      Logs       │\n│                 │                 │                 │\n│ • Request rate  │ • Span context  │ • Access logs   │\n│ • Error rate    │ • Latency       │ • Error details │\n│ • Latency P50   │ • Dependencies  │ • Debug info    │\n│ • Saturation    │ • Bottlenecks   │ • Audit trail   │\n└─────────────────┴─────────────────┴─────────────────┘\n```\n\n### 2. Golden Signals for Mesh\n\n| Signal | Description | Alert Threshold |\n|--------|-------------|-----------------|\n| **Latency** | Request duration P50, P99 | P99 > 500ms |\n| **Traffic** | Requests per second | Anomaly detection |\n| **Errors** | 5xx error rate | > 1% |\n| **Saturation** | Resource utilization | > 80% |\n\n## Templates\n\n### Template 1: Istio with Prometheus & Grafana\n\n```yaml\n# Install Prometheus\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: prometheus\n  namespace: istio-system\ndata:\n  prometheus.yml: |\n    global:\n      scrape_interval: 15s\n    scrape_configs:\n      - job_name: 'istio-mesh'\n        kubernetes_sd_configs:\n          - role: endpoints\n            namespaces:\n              names:\n                - istio-system\n        relabel_configs:\n          - source_labels: [__meta_kubernetes_service_name]\n            action: keep\n            regex: istio-telemetry\n---\n# ServiceMonitor for Prometheus Operator\napiVersion: monitoring.coreos.com\u002Fv1\nkind: ServiceMonitor\nmetadata:\n  name: istio-mesh\n  namespace: istio-system\nspec:\n  selector:\n    matchLabels:\n      app: istiod\n  endpoints:\n    - port: http-monitoring\n      interval: 15s\n```\n\n### Template 2: Key Istio Metrics Queries\n\n```promql\n# Request rate by service\nsum(rate(istio_requests_total{reporter=\"destination\"}[5m])) by (destination_service_name)\n\n# Error rate (5xx)\nsum(rate(istio_requests_total{reporter=\"destination\", response_code=~\"5..\"}[5m]))\n  \u002F sum(rate(istio_requests_total{reporter=\"destination\"}[5m])) * 100\n\n# P99 latency\nhistogram_quantile(0.99,\n  sum(rate(istio_request_duration_milliseconds_bucket{reporter=\"destination\"}[5m]))\n  by (le, destination_service_name))\n\n# TCP connections\nsum(istio_tcp_connections_opened_total{reporter=\"destination\"}) by (destination_service_name)\n\n# Request size\nhistogram_quantile(0.99,\n  sum(rate(istio_request_bytes_bucket{reporter=\"destination\"}[5m]))\n  by (le, destination_service_name))\n```\n\n### Template 3: Jaeger Distributed Tracing\n\n```yaml\n# Jaeger installation for Istio\napiVersion: install.istio.io\u002Fv1alpha1\nkind: IstioOperator\nspec:\n  meshConfig:\n    enableTracing: true\n    defaultConfig:\n      tracing:\n        sampling: 100.0  # 100% in dev, lower in prod\n        zipkin:\n          address: jaeger-collector.istio-system:9411\n---\n# Jaeger deployment\napiVersion: apps\u002Fv1\nkind: Deployment\nmetadata:\n  name: jaeger\n  namespace: istio-system\nspec:\n  selector:\n    matchLabels:\n      app: jaeger\n  template:\n    metadata:\n      labels:\n        app: jaeger\n    spec:\n      containers:\n        - name: jaeger\n          image: jaegertracing\u002Fall-in-one:1.50\n          ports:\n            - containerPort: 5775   # UDP\n            - containerPort: 6831   # Thrift\n            - containerPort: 6832   # Thrift\n            - containerPort: 5778   # Config\n            - containerPort: 16686  # UI\n            - containerPort: 14268  # HTTP\n            - containerPort: 14250  # gRPC\n            - containerPort: 9411   # Zipkin\n          env:\n            - name: COLLECTOR_ZIPKIN_HOST_PORT\n              value: \":9411\"\n```\n\n### Template 4: Linkerd Viz Dashboard\n\n```bash\n# Install Linkerd viz extension\nlinkerd viz install | kubectl apply -f -\n\n# Access dashboard\nlinkerd viz dashboard\n\n# CLI commands for observability\n# Top requests\nlinkerd viz top deploy\u002Fmy-app\n\n# Per-route metrics\nlinkerd viz routes deploy\u002Fmy-app --to deploy\u002Fbackend\n\n# Live traffic inspection\nlinkerd viz tap deploy\u002Fmy-app --to deploy\u002Fbackend\n\n# Service edges (dependencies)\nlinkerd viz edges deployment -n my-namespace\n```\n\n### Template 5: Grafana Dashboard JSON\n\n```json\n{\n  \"dashboard\": {\n    \"title\": \"Service Mesh Overview\",\n    \"panels\": [\n      {\n        \"title\": \"Request Rate\",\n        \"type\": \"graph\",\n        \"targets\": [\n          {\n            \"expr\": \"sum(rate(istio_requests_total{reporter=\\\"destination\\\"}[5m])) by (destination_service_name)\",\n            \"legendFormat\": \"{{destination_service_name}}\"\n          }\n        ]\n      },\n      {\n        \"title\": \"Error Rate\",\n        \"type\": \"gauge\",\n        \"targets\": [\n          {\n            \"expr\": \"sum(rate(istio_requests_total{response_code=~\\\"5..\\\"}[5m])) \u002F sum(rate(istio_requests_total[5m])) * 100\"\n          }\n        ],\n        \"fieldConfig\": {\n          \"defaults\": {\n            \"thresholds\": {\n              \"steps\": [\n                {\"value\": 0, \"color\": \"green\"},\n                {\"value\": 1, \"color\": \"yellow\"},\n                {\"value\": 5, \"color\": \"red\"}\n              ]\n            }\n          }\n        }\n      },\n      {\n        \"title\": \"P99 Latency\",\n        \"type\": \"graph\",\n        \"targets\": [\n          {\n            \"expr\": \"histogram_quantile(0.99, sum(rate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\"}[5m])) by (le, destination_service_name))\",\n            \"legendFormat\": \"{{destination_service_name}}\"\n          }\n        ]\n      },\n      {\n        \"title\": \"Service Topology\",\n        \"type\": \"nodeGraph\",\n        \"targets\": [\n          {\n            \"expr\": \"sum(rate(istio_requests_total{reporter=\\\"destination\\\"}[5m])) by (source_workload, destination_service_name)\"\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n### Template 6: Kiali Service Mesh Visualization\n\n```yaml\n# Kiali installation\napiVersion: kiali.io\u002Fv1alpha1\nkind: Kiali\nmetadata:\n  name: kiali\n  namespace: istio-system\nspec:\n  auth:\n    strategy: anonymous  # or openid, token\n  deployment:\n    accessible_namespaces:\n      - \"**\"\n  external_services:\n    prometheus:\n      url: http:\u002F\u002Fprometheus.istio-system:9090\n    tracing:\n      url: http:\u002F\u002Fjaeger-query.istio-system:16686\n    grafana:\n      url: http:\u002F\u002Fgrafana.istio-system:3000\n```\n\n### Template 7: OpenTelemetry Integration\n\n```yaml\n# OpenTelemetry Collector for mesh\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: otel-collector-config\ndata:\n  config.yaml: |\n    receivers:\n      otlp:\n        protocols:\n          grpc:\n            endpoint: 0.0.0.0:4317\n          http:\n            endpoint: 0.0.0.0:4318\n      zipkin:\n        endpoint: 0.0.0.0:9411\n\n    processors:\n      batch:\n        timeout: 10s\n\n    exporters:\n      jaeger:\n        endpoint: jaeger-collector:14250\n        tls:\n          insecure: true\n      prometheus:\n        endpoint: 0.0.0.0:8889\n\n    service:\n      pipelines:\n        traces:\n          receivers: [otlp, zipkin]\n          processors: [batch]\n          exporters: [jaeger]\n        metrics:\n          receivers: [otlp]\n          processors: [batch]\n          exporters: [prometheus]\n---\n# Istio Telemetry v2 with OTel\napiVersion: telemetry.istio.io\u002Fv1alpha1\nkind: Telemetry\nmetadata:\n  name: mesh-default\n  namespace: istio-system\nspec:\n  tracing:\n    - providers:\n        - name: otel\n      randomSamplingPercentage: 10\n```\n\n## Alerting Rules\n\n```yaml\napiVersion: monitoring.coreos.com\u002Fv1\nkind: PrometheusRule\nmetadata:\n  name: mesh-alerts\n  namespace: istio-system\nspec:\n  groups:\n    - name: mesh.rules\n      rules:\n        - alert: HighErrorRate\n          expr: |\n            sum(rate(istio_requests_total{response_code=~\"5..\"}[5m])) by (destination_service_name)\n            \u002F sum(rate(istio_requests_total[5m])) by (destination_service_name) > 0.05\n          for: 5m\n          labels:\n            severity: critical\n          annotations:\n            summary: \"High error rate for {{ $labels.destination_service_name }}\"\n\n        - alert: HighLatency\n          expr: |\n            histogram_quantile(0.99, sum(rate(istio_request_duration_milliseconds_bucket[5m]))\n            by (le, destination_service_name)) > 1000\n          for: 5m\n          labels:\n            severity: warning\n          annotations:\n            summary: \"High P99 latency for {{ $labels.destination_service_name }}\"\n\n        - alert: MeshCertExpiring\n          expr: |\n            (certmanager_certificate_expiration_timestamp_seconds - time()) \u002F 86400 \u003C 7\n          labels:\n            severity: warning\n          annotations:\n            summary: \"Mesh certificate expiring in less than 7 days\"\n```\n\n## Best Practices\n\n### Do's\n- **Sample appropriately** - 100% in dev, 1-10% in prod\n- **Use trace context** - Propagate headers consistently\n- **Set up alerts** - For golden signals\n- **Correlate metrics\u002Ftraces** - Use exemplars\n- **Retain strategically** - Hot\u002Fcold storage tiers\n\n### Don'ts\n- **Don't over-sample** - Storage costs add up\n- **Don't ignore cardinality** - Limit label values\n- **Don't skip dashboards** - Visualize dependencies\n- **Don't forget costs** - Monitor observability costs\n\n## Resources\n\n- [Istio Observability](https:\u002F\u002Fistio.io\u002Flatest\u002Fdocs\u002Ftasks\u002Fobservability\u002F)\n- [Linkerd Observability](https:\u002F\u002Flinkerd.io\u002F2.14\u002Ffeatures\u002Fdashboard\u002F)\n- [OpenTelemetry](https:\u002F\u002Fopentelemetry.io\u002F)\n- [Kiali](https:\u002F\u002Fkiali.io\u002F)\n","# Service Mesh Observability\n\nComplete guide to observability patterns for Istio, Linkerd, and service mesh deployments.\n\n## Do not use this skill when\n\n- The task is unrelated to service mesh observability\n- You need a different domain or tool outside this scope\n\n## Instructions\n\n- Clarify goals, constraints, and required inputs.\n- Apply relevant best practices and validate outcomes.\n- Provide actionable steps and verification.\n- If detailed examples are required, open `resources\u002Fimplementation-playbook.md`.\n\n## Use this skill when\n\n- Setting up distributed tracing across services\n- Implementing service mesh metrics and dashboards\n- Debugging latency and error issues\n- Defining SLOs for service communication\n- Visualizing service dependencies\n- Troubleshooting mesh connectivity\n\n## Core Concepts\n\n### 1. Three Pillars of Observability\n\n```\n┌─────────────────────────────────────────────────────┐\n│                  Observability                       │\n├─────────────────┬─────────────────┬─────────────────┤\n│     Metrics     │     Traces      │      Logs       │\n│                 │                 │                 │\n│ • Request rate  │ • Span context  │ • Access logs   │\n│ • Error rate    │ • Latency       │ • Error details │\n│ • Latency P50   │ • Dependencies  │ • Debug info    │\n│ • Saturation    │ • Bottlenecks   │ • Audit trail   │\n└─────────────────┴─────────────────┴─────────────────┘\n```\n\n### 2. Golden Signals for Mesh\n\n| Signal | Description | Alert Threshold |\n|--------|-------------|-----------------|\n| **Latency** | Request duration P50, P99 | P99 > 500ms |\n| **Traffic** | Requests per second | Anomaly detection |\n| **Errors** | 5xx error rate | > 1% |\n| **Saturation** | Resource utilization | > 80% |\n\n## Templates\n\n### Template 1: Istio with Prometheus & Grafana\n\n```yaml\n# Install Prometheus\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: prometheus\n  namespace: istio-system\ndata:\n  prometheus.yml: |\n    global:\n      scrape_interval: 15s\n    scrape_configs:\n      - job_name: 'istio-mesh'\n        kubernetes_sd_configs:\n          - role: endpoints\n            namespaces:\n              names:\n                - istio-system\n        relabel_configs:\n          - source_labels: [__meta_kubernetes_service_name]\n            action: keep\n            regex: istio-telemetry\n---\n# ServiceMonitor for Prometheus Operator\napiVersion: monitoring.coreos.com\u002Fv1\nkind: ServiceMonitor\nmetadata:\n  name: istio-mesh\n  namespace: istio-system\nspec:\n  selector:\n    matchLabels:\n      app: istiod\n  endpoints:\n    - port: http-monitoring\n      interval: 15s\n```\n\n### Template 2: Key Istio Metrics Queries\n\n```promql\n# Request rate by service\nsum(rate(istio_requests_total{reporter=\"destination\"}[5m])) by (destination_service_name)\n\n# Error rate (5xx)\nsum(rate(istio_requests_total{reporter=\"destination\", response_code=~\"5..\"}[5m]))\n  \u002F sum(rate(istio_requests_total{reporter=\"destination\"}[5m])) * 100\n\n# P99 latency\nhistogram_quantile(0.99,\n  sum(rate(istio_request_duration_milliseconds_bucket{reporter=\"destination\"}[5m]))\n  by (le, destination_service_name))\n\n# TCP connections\nsum(istio_tcp_connections_opened_total{reporter=\"destination\"}) by (destination_service_name)\n\n# Request size\nhistogram_quantile(0.99,\n  sum(rate(istio_request_bytes_bucket{reporter=\"destination\"}[5m]))\n  by (le, destination_service_name))\n```\n\n### Template 3: Jaeger Distributed Tracing\n\n```yaml\n# Jaeger installation for Istio\napiVersion: install.istio.io\u002Fv1alpha1\nkind: IstioOperator\nspec:\n  meshConfig:\n    enableTracing: true\n    defaultConfig:\n      tracing:\n        sampling: 100.0  # 100% in dev, lower in prod\n        zipkin:\n          address: jaeger-collector.istio-system:9411\n---\n# Jaeger deployment\napiVersion: apps\u002Fv1\nkind: Deployment\nmetadata:\n  name: jaeger\n  namespace: istio-system\nspec:\n  selector:\n    matchLabels:\n      app: jaeger\n  template:\n    metadata:\n      labels:\n        app: jaeger\n    spec:\n      containers:\n        - name: jaeger\n          image: jaegertracing\u002Fall-in-one:1.50\n          ports:\n            - containerPort: 5775   # UDP\n            - containerPort: 6831   # Thrift\n            - containerPort: 6832   # Thrift\n            - containerPort: 5778   # Config\n            - containerPort: 16686  # UI\n            - containerPort: 14268  # HTTP\n            - containerPort: 14250  # gRPC\n            - containerPort: 9411   # Zipkin\n          env:\n            - name: COLLECTOR_ZIPKIN_HOST_PORT\n              value: \":9411\"\n```\n\n### Template 4: Linkerd Viz Dashboard\n\n```bash\n# Install Linkerd viz extension\nlinkerd viz install | kubectl apply -f -\n\n# Access dashboard\nlinkerd viz dashboard\n\n# CLI commands for observability\n# Top requests\nlinkerd viz top deploy\u002Fmy-app\n\n# Per-route metrics\nlinkerd viz routes deploy\u002Fmy-app --to deploy\u002Fbackend\n\n# Live traffic inspection\nlinkerd viz tap deploy\u002Fmy-app --to deploy\u002Fbackend\n\n# Service edges (dependencies)\nlinkerd viz edges deployment -n my-namespace\n```\n\n### Template 5: Grafana Dashboard JSON\n\n```json\n{\n  \"dashboard\": {\n    \"title\": \"Service Mesh Overview\",\n    \"panels\": [\n      {\n        \"title\": \"Request Rate\",\n        \"type\": \"graph\",\n        \"targets\": [\n          {\n            \"expr\": \"sum(rate(istio_requests_total{reporter=\\\"destination\\\"}[5m])) by (destination_service_name)\",\n            \"legendFormat\": \"{{destination_service_name}}\"\n          }\n        ]\n      },\n      {\n        \"title\": \"Error Rate\",\n        \"type\": \"gauge\",\n        \"targets\": [\n          {\n            \"expr\": \"sum(rate(istio_requests_total{response_code=~\\\"5..\\\"}[5m])) \u002F sum(rate(istio_requests_total[5m])) * 100\"\n          }\n        ],\n        \"fieldConfig\": {\n          \"defaults\": {\n            \"thresholds\": {\n              \"steps\": [\n                {\"value\": 0, \"color\": \"green\"},\n                {\"value\": 1, \"color\": \"yellow\"},\n                {\"value\": 5, \"color\": \"red\"}\n              ]\n            }\n          }\n        }\n      },\n      {\n        \"title\": \"P99 Latency\",\n        \"type\": \"graph\",\n        \"targets\": [\n          {\n            \"expr\": \"histogram_quantile(0.99, sum(rate(istio_request_duration_milliseconds_bucket{reporter=\\\"destination\\\"}[5m])) by (le, destination_service_name))\",\n            \"legendFormat\": \"{{destination_service_name}}\"\n          }\n        ]\n      },\n      {\n        \"title\": \"Service Topology\",\n        \"type\": \"nodeGraph\",\n        \"targets\": [\n          {\n            \"expr\": \"sum(rate(istio_requests_total{reporter=\\\"destination\\\"}[5m])) by (source_workload, destination_service_name)\"\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n\n### Template 6: Kiali Service Mesh Visualization\n\n```yaml\n# Kiali installation\napiVersion: kiali.io\u002Fv1alpha1\nkind: Kiali\nmetadata:\n  name: kiali\n  namespace: istio-system\nspec:\n  auth:\n    strategy: anonymous  # or openid, token\n  deployment:\n    accessible_namespaces:\n      - \"**\"\n  external_services:\n    prometheus:\n      url: http:\u002F\u002Fprometheus.istio-system:9090\n    tracing:\n      url: http:\u002F\u002Fjaeger-query.istio-system:16686\n    grafana:\n      url: http:\u002F\u002Fgrafana.istio-system:3000\n```\n\n### Template 7: OpenTelemetry Integration\n\n```yaml\n# OpenTelemetry Collector for mesh\napiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: otel-collector-config\ndata:\n  config.yaml: |\n    receivers:\n      otlp:\n        protocols:\n          grpc:\n            endpoint: 0.0.0.0:4317\n          http:\n            endpoint: 0.0.0.0:4318\n      zipkin:\n        endpoint: 0.0.0.0:9411\n\n    processors:\n      batch:\n        timeout: 10s\n\n    exporters:\n      jaeger:\n        endpoint: jaeger-collector:14250\n        tls:\n          insecure: true\n      prometheus:\n        endpoint: 0.0.0.0:8889\n\n    service:\n      pipelines:\n        traces:\n          receivers: [otlp, zipkin]\n          processors: [batch]\n          exporters: [jaeger]\n        metrics:\n          receivers: [otlp]\n          processors: [batch]\n          exporters: [prometheus]\n---\n# Istio Telemetry v2 with OTel\napiVersion: telemetry.istio.io\u002Fv1alpha1\nkind: Telemetry\nmetadata:\n  name: mesh-default\n  namespace: istio-system\nspec:\n  tracing:\n    - providers:\n        - name: otel\n      randomSamplingPercentage: 10\n```\n\n## Alerting Rules\n\n```yaml\napiVersion: monitoring.coreos.com\u002Fv1\nkind: PrometheusRule\nmetadata:\n  name: mesh-alerts\n  namespace: istio-system\nspec:\n  groups:\n    - name: mesh.rules\n      rules:\n        - alert: HighErrorRate\n          expr: |\n            sum(rate(istio_requests_total{response_code=~\"5..\"}[5m])) by (destination_service_name)\n            \u002F sum(rate(istio_requests_total[5m])) by (destination_service_name) > 0.05\n          for: 5m\n          labels:\n            severity: critical\n          annotations:\n            summary: \"High error rate for {{ $labels.destination_service_name }}\"\n\n        - alert: HighLatency\n          expr: |\n            histogram_quantile(0.99, sum(rate(istio_request_duration_milliseconds_bucket[5m]))\n            by (le, destination_service_name)) > 1000\n          for: 5m\n          labels:\n            severity: warning\n          annotations:\n            summary: \"High P99 latency for {{ $labels.destination_service_name }}\"\n\n        - alert: MeshCertExpiring\n          expr: |\n            (certmanager_certificate_expiration_timestamp_seconds - time()) \u002F 86400 \u003C 7\n          labels:\n            severity: warning\n          annotations:\n            summary: \"Mesh certificate expiring in less than 7 days\"\n```\n\n## Best Practices\n\n### Do's\n- **Sample appropriately** - 100% in dev, 1-10% in prod\n- **Use trace context** - Propagate headers consistently\n- **Set up alerts** - For golden signals\n- **Correlate metrics\u002Ftraces** - Use exemplars\n- **Retain strategically** - Hot\u002Fcold storage tiers\n\n### Don'ts\n- **Don't over-sample** - Storage costs add up\n- **Don't ignore cardinality** - Limit label values\n- **Don't skip dashboards** - Visualize dependencies\n- **Don't forget costs** - Monitor observability costs\n\n## Resources\n\n- [Istio Observability](https:\u002F\u002Fistio.io\u002Flatest\u002Fdocs\u002Ftasks\u002Fobservability\u002F)\n- [Linkerd Observability](https:\u002F\u002Flinkerd.io\u002F2.14\u002Ffeatures\u002Fdashboard\u002F)\n- [OpenTelemetry](https:\u002F\u002Fopentelemetry.io\u002F)\n- [Kiali](https:\u002F\u002Fkiali.io\u002F)\n",{"name":5,"risk":32,"source":27,"date_added":40,"description":7},"2026-02-27","main","7a38d8e7073e61c16eda85681cb32fb68a8657a5","skills-store\u002Fcopilot\u002Fservice-mesh-observability","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router","https:\u002F\u002Fgithub.com\u002Fsapsapshen","2026-04-14 21:12:12",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add sapsapshen\u002Fai-memory-router --skill service-mesh-observability",{"tool":53,"command":54},"bunx","bunx skills add sapsapshen\u002Fai-memory-router --skill service-mesh-observability",{"tool":56,"command":57},"pnpm","pnpm dlx skills add sapsapshen\u002Fai-memory-router --skill service-mesh-observability","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fservice-mesh-observability\u002FSKILL.md",true,[],[62,86,112,122,135,154],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":73,"publishedAt":35},"01M71ATQRKG48SH06FQ697T5G9","wechat-search","Search WeChat Official Account articles using OpenClaw's web search and fetch capabilities with compliance-focused design.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fwechat-search-release\u002FSKILL.md",[68],{"categoryNo":69,"categoryName":70,"taxonomyType":71,"taxonomyTypeDesc":72},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[74,75,76,77,78,79,80,81,82,83,84,85],"wechat search","wechat","search","capabilities","openclaw","design","web search","compliance","web","official","fetch","with",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":35},"01M71ATNAVGZB35PFYM2GC5N00","trend-tap","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend tap', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-tap\u002FSKILL.md",[],[93,94,95,96,97,98,76,99,100,101,102,103,104,105,106,107,108,109,110,111],"trend","trend tap","tap","api keys","Bash","time","trending","hacker","aggregator","do","when","brew","live","data","google","install","read","across","api",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":35},"01M71ATJ9AM5KM15AA8PS302EB","trend-radar","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend pulse', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-radar\u002FSKILL.md",[],[119,120,93,104,105,106,107,97,76,109,121,110,111,103,101,100,99,108,98,96],"trend radar","radar","pulse",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":35},"01M71ATGF095N3EJM9G8SD0BB5","tech-news-daily","每日科技新闻汇——从全球多个 RSS 源抓取最新科技新闻，翻译（英→中）、去重、排版成每日简报。当用户询问科技新闻、科技新鲜事、每日科技、技术动态、Daily Tech News 或类似表达时触发此技能。","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftech-news-daily\u002FSKILL.md",[],[129,130,131,132,133,134],"news","tech","tech news daily","daily","rss","翻译",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":146,"publishedAt":35},"01M71ATFAEAMQ17M70NQNY7SR8","summarize","Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsummarize\u002FSKILL.md",[141],{"categoryNo":142,"categoryName":143,"taxonomyType":144,"taxonomyTypeDesc":145},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[137,82,147,148,149,85,104,150,151,152,95,153,108],"Audio","cli","youtube","images","https","files","pdfs",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":160,"publishedAt":35},"01M71ATDNS3R0M4H936PACQAWZ","sonoscli","Control Sonos speakers (discover\u002Fstatus\u002Fplay\u002Fvolume\u002Fgroup).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsonoscli\u002FSKILL.md",[],[156,161,162,163,108,164,151,165,166,167,168,169],"status","play","go","latest","github","discover","control","cmd","volume"]