{"id":"0c5cf1e3-4208-4eb6-b55f-409096b21b48","shortId":"SKMTbh","kind":"skill","title":"service-mesh-observability","tagline":"Complete guide to observability patterns for Istio, Linkerd, and service mesh deployments.","description":"# 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/implementation-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/v1\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  / 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/v1alpha1\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/v1\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/all-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/my-app\n\n# Per-route metrics\nlinkerd viz routes deploy/my-app --to deploy/backend\n\n# Live traffic inspection\nlinkerd viz tap deploy/my-app --to deploy/backend\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])) / 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/v1alpha1\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://prometheus.istio-system:9090\n    tracing:\n      url: http://jaeger-query.istio-system:16686\n    grafana:\n      url: http://grafana.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/v1alpha1\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/v1\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            / 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()) / 86400 < 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/traces** - Use exemplars\n- **Retain strategically** - Hot/cold 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://istio.io/latest/docs/tasks/observability/)\n- [Linkerd Observability](https://linkerd.io/2.14/features/dashboard/)\n- [OpenTelemetry](https://opentelemetry.io/)\n- [Kiali](https://kiali.io/)\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["service","mesh","observability","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding"],"capabilities":["skill","source-sickn33","skill-service-mesh-observability","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/service-mesh-observability","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34515 github stars · SKILL.md body (10,456 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T12:51:45.325Z","embedding":null,"createdAt":"2026-04-18T21:44:45.284Z","updatedAt":"2026-04-22T12:51:45.325Z","lastSeenAt":"2026-04-22T12:51:45.325Z","tsv":"'-10':926 '/)':995,999 '/2.14/features/dashboard/)':991 '/latest/docs/tasks/observability/)':986 '/v1':241,800 '/v1alpha1':377,659,775 '0':586 '0.0.0.0':722,726,730,748 '0.05':843 '0.99':315,349,606,863 '1':116,171,178,590,925 '1.50':428 '10':793 '100':310,388,580,922 '100.0':387 '1000':877 '10s':735 '14250':449,742 '14268':446 '15s':202,264 '16686':443,690 '2':145,266 '3':365 '3000':695 '4':463 '4317':723 '4318':727 '5':300,524,572,594,827 '500ms':160 '5775':431 '5778':440 '5m':283,301,309,325,358,549,573,579,616,640,828,838,845,871,879 '5xx':168,290 '6':648 '6831':434 '6832':437 '7':697,902,914 '80':175 '86400':901 '8889':749 '9090':685 '9411':398,452,461,731 'access':129,478,677 'across':90 'action':71,228 'add':959 'address':395 'alert':152,794,807,817,858,892,937 'annot':849,883,906 'anomali':165 'anonym':672 'apivers':186,238,374,401,656,705,772,797 'app':256,415,420 'appli':63,476 'appropri':921 'apps/v1':402 'ask':1033 'audit':143 'auth':670 'bash':467 'batch':733,757,764 'best':65,916 'bottleneck':142 'boundari':1041 'bucket':322,355,613,870 'byte':354 'cardin':964 'certif':896,909 'certmanag':895 'clarif':1035 'clarifi':57 'clear':1008 'cli':483 'code':299,571,826 'collector':456,702,713,741 'color':587,591,595 'command':484 'communic':107 'complet':5,20 'concept':115 'config':204,212,221,441,714 'config.yaml':716 'configmap':189,708 'connect':113,332,336 'consist':934 'constraint':59 'contain':423 'containerport':430,433,436,439,442,445,448,451 'context':128,931 'core':114 'correl':941 'cost':958,977,980 'criteria':1044 'critic':848 'dashboard':97,466,479,482,526,529,971 'data':197,715 'day':915 'debug':98,139 'default':582,782 'defaultconfig':384 'defin':103 'depend':110,138,514,973 'deploy':16,31,400,404,518,676 'deploy/backend':502,511 'deploy/my-app':492,500,509 'describ':1012 'descript':151 'destin':282,285,297,308,324,328,340,342,357,361,548,551,555,615,619,623,639,644,830,840,874 'detail':76,135 'detect':166 'dev':390,924 'differ':49 'distribut':88,367 'domain':50 'durat':156,320,611,868 'edg':513,517 'enabletrac':382 'endpoint':214,258,721,725,729,738,747 'env':454 'environ':1024 'environment-specif':1023 'error':101,131,134,167,169,288,559,852 'exampl':77 'exemplar':944 'expert':1029 'expir':897,910 'export':736,758,765 'expr':541,564,603,632,819,860,894 'extens':471 'extern':679 'f':477 'fieldconfig':581 'forget':976 'gaug':562 'global':199 'goal':58 'golden':146,939 'grafana':182,525,691 'grafana.istio':693 'graph':539,601 'green':588 'group':813 'grpc':450,720 'guid':6,21 'header':933 'high':851,885 'higherrorr':818 'highlat':859 'histogram':313,347,604,861 'host':458 'hot/cold':947 'http':261,447,724 'http-monitor':260 'ignor':963 'imag':426 'implement':92 'info':140 'input':62,1038 'insecur':744 'inspect':505 'instal':184,371,468,474,655 'install.istio.io':376 'install.istio.io/v1alpha1':375 'instruct':56 'integr':699 'interv':201,263 'issu':102 'istio':11,26,179,195,208,218,232,247,251,268,278,293,304,318,334,352,373,410,544,567,576,609,635,667,767,785,810,822,835,866,982 'istio-mesh':207,246 'istio-system':194,217,250,409,666,784,809 'istio-telemetri':231 'istio.io':985 'istio.io/latest/docs/tasks/observability/)':984 'istiod':257 'istiooper':379 'jaeger':366,370,399,407,416,421,425,737,740,759 'jaeger-collector':739 'jaeger-collector.istio':396 'jaeger-query.istio':688 'jaegertracing/all-in-one':427 'job':205 'json':527,528 'keep':229 'key':267 'kiali':649,654,661,664,996 'kiali.io':658,998 'kiali.io/)':997 'kiali.io/v1alpha1':657 'kind':188,242,378,403,660,707,776,801 'kubectl':475 'kubernet':210,225 'label':223,419,846,880,903,966 'labels.destination':855,889 'latenc':99,133,136,154,312,599,887 'le':327,360,618,873 'legendformat':554,622 'less':912 'limit':965,1000 'linkerd':12,27,464,469,472,480,489,497,506,515,987 'linkerd.io':990 'linkerd.io/2.14/features/dashboard/)':989 'live':503 'log':124,130 'lower':391 'match':1009 'matchlabel':255,414 'mesh':3,15,18,30,44,94,112,149,209,248,532,651,704,781,806,908 'mesh-alert':805 'mesh-default':780 'mesh.rules':815 'meshcertexpir':893 'meshconfig':381 'meta':224 'metadata':190,244,405,418,662,709,778,803 'metric':95,122,269,496,760 'metrics/traces':942 'millisecond':321,612,869 'miss':1046 'monitor':262,978 'monitoring.coreos.com':240,799 'monitoring.coreos.com/v1':239,798 'my-namespac':520 'n':519 'name':191,206,216,227,245,287,330,344,363,406,424,455,553,557,621,625,646,663,710,779,790,804,814,832,842,857,876,891 'namespac':193,215,249,408,522,665,678,783,808 'need':47 'nodegraph':630 'observ':4,8,19,23,45,120,121,486,979,983,988 'open':80,337 'openid':674 'opentelemetri':698,701,992 'opentelemetry.io':994 'opentelemetry.io/)':993 'oper':237 'otel':712,771,791 'otel-collector-config':711 'otlp':718,754,762 'outcom':69 'output':1018 'outsid':53 'over-sampl':954 'overview':533 'p50':137,157 'p99':158,159,311,598,886 'panel':534 'pattern':9,24 'per':163,494 'per-rout':493 'permiss':1039 'pillar':118 'pipelin':751 'port':259,429,459 'practic':66,917 'processor':732,756,763 'prod':393,928 'prometheus':181,185,192,236,681,746,766 'prometheus.istio':683 'prometheus.yml':198 'prometheusrul':802 'promql':271 'propag':932 'protocol':719 'provid':70,789 'quantil':314,348,605,862 'queri':270 'randomsamplingpercentag':792 'rate':126,132,170,273,277,289,292,303,317,351,537,543,560,566,575,608,634,821,834,853,865 'receiv':717,753,761 'red':596 'regex':230 'relabel':220 'relev':64 'report':281,296,307,323,339,356,547,614,638 'request':125,155,162,272,279,294,305,319,345,353,488,536,545,568,577,610,636,823,836,867 'requir':61,79,1037 'resourc':173,981 'resources/implementation-playbook.md':81 'respons':298,570,825 'retain':945 'review':1030 'role':213 'rout':495,499 'rule':795,816 'safeti':1040 'sampl':386,920,956 'satur':141,172 'scope':55,1011 'scrape':200,203 'sd':211 'second':164,899 'selector':254,413 'servic':2,14,17,29,43,91,93,106,109,226,275,286,329,343,362,512,531,552,556,620,624,627,645,650,680,750,831,841,856,875,890 'service-mesh-observ':1 'servicemonitor':234,243 'set':86,935 'sever':847,881,904 'signal':147,150,940 'size':346 'skill':36,84,1003 'skill-service-mesh-observability' 'skip':970 'slos':104 'sourc':222,642 'source-sickn33' 'span':127 'spec':253,380,412,422,669,787,812 'specif':1025 'step':72,584 'stop':1031 'storag':948,957 'strateg':946 'strategi':671 'substitut':1021 'success':1043 'sum':276,291,302,316,333,350,542,565,574,607,633,820,833,864 'summari':850,884,907 'system':196,219,252,397,411,668,684,689,694,786,811 'tap':508 'target':540,563,602,631 'task':39,1007 'tcp':331,335 'telemetri':233,768,777 'telemetry.istio.io':774 'telemetry.istio.io/v1alpha1':773 'templat':176,177,265,364,417,462,523,647,696 'test':1027 'three':117 'threshold':153,583 'thrift':435,438 'tier':949 'time':900 'timeout':734 'timestamp':898 'titl':530,535,558,597,626 'tls':743 'token':675 'tool':52 'top':487,491 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'topolog':628 'total':280,295,306,338,546,569,578,637,824,837 'trace':89,123,368,385,686,752,788,930 'traffic':161,504 'trail':144 'treat':1016 'troubleshoot':111 'true':383,745 'ts':951 'type':538,561,600,629 'udp':432 'ui':444 'unrel':41 'url':682,687,692 'use':34,82,929,943,1001 'util':174 'v1':187,706 'v2':769 'valid':68,1026 'valu':460,585,589,593,967 'verif':74 'visual':108,652,972 'viz':465,470,473,481,490,498,507,516 'warn':882,905 'workload':643 'yaml':183,369,653,700,796 'yellow':592 'zipkin':394,453,457,728,755","prices":[{"id":"f2353481-d28e-4987-8fbc-36430ac8d2e4","listingId":"0c5cf1e3-4208-4eb6-b55f-409096b21b48","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:44:45.284Z"}],"sources":[{"listingId":"0c5cf1e3-4208-4eb6-b55f-409096b21b48","source":"github","sourceId":"sickn33/antigravity-awesome-skills/service-mesh-observability","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/service-mesh-observability","isPrimary":false,"firstSeenAt":"2026-04-18T21:44:45.284Z","lastSeenAt":"2026-04-22T12:51:45.325Z"}],"details":{"listingId":"0c5cf1e3-4208-4eb6-b55f-409096b21b48","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"service-mesh-observability","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34515,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-22T06:40:00Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"71d9cbb40a46f5e53f94a50c31c2863ef01eac17","skill_md_path":"skills/service-mesh-observability/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/service-mesh-observability"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"service-mesh-observability","description":"Complete guide to observability patterns for Istio, Linkerd, and service mesh deployments."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/service-mesh-observability"},"updatedAt":"2026-04-22T12:51:45.325Z"}}