[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6H86XE15ST30JPE2RJS1M85":3,"skill-same:01M6H86XE15ST30JPE2RJS1M85":75},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":54,"install":55,"resources":68},"01M6H86XE15ST30JPE2RJS1M85","openevidence-observability",null,"Set up comprehensive observability for OpenEvidence integrations with metrics, traces, and alerts.\nUse when implementing monitoring for clinical AI operations, setting up dashboards,\nor configuring alerting for healthcare application health.\nTrigger with phrases like \"openevidence monitoring\", \"openevidence metrics\",\n\"openevidence observability\", \"monitor openevidence\", \"openevidence alerts\".","micsapp\u002Fmicstec-skills","micsapp","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F82411001?v=4","01M6GWCFQ6D3PV8EHNY62NN5VW","01M6GWCFVE1PA5HG0DKC7AMFJ3",4,"MIT","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fclaude-code\u002Fplugins-plus-skills\u002Fplugins\u002Fsaas-packs\u002Fopenevidence-pack\u002Fskills\u002Fopenevidence-observability\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"observability","openevidence observability","read","for","implementing","io","clinical","alerts","up","edit","write","openclaw","integrations","dashboards","healthcare","SET","monitoring","alerting","metrics","code","2026-11-10 10:12:30",false,"---\nname: openevidence-observability\ndescription: |\n  Set up comprehensive observability for OpenEvidence integrations with metrics, traces, and alerts.\n  Use when implementing monitoring for clinical AI operations, setting up dashboards,\n  or configuring alerting for healthcare application health.\n  Trigger with phrases like \"openevidence monitoring\", \"openevidence metrics\",\n  \"openevidence observability\", \"monitor openevidence\", \"openevidence alerts\".\nallowed-tools: Read, Write, Edit\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ncompatible-with: claude-code, codex, openclaw\n---\n# OpenEvidence Observability\n\n## Table of Contents\n- [Overview](#overview)\n- [Prerequisites](#prerequisites)\n- [Instructions](#instructions)\n- [Output](#output)\n- [Error Handling](#error-handling)\n- [Examples](#examples)\n- [Resources](#resources)\n\n## Overview\nSet up comprehensive observability for OpenEvidence clinical AI integrations with Prometheus metrics, OpenTelemetry tracing, structured logging with PHI redaction, and Grafana dashboards.\n\n## Prerequisites\n- Prometheus or compatible metrics backend\n- OpenTelemetry SDK installed\n- Grafana or similar dashboarding tool\n- AlertManager or PagerDuty configured\n\n## Key Metrics\n\n| Metric | Type | Alert Threshold |\n|--------|------|-----------------|\n| `openevidence_requests_total` | Counter | N\u002FA |\n| `openevidence_request_duration_seconds` | Histogram | P95 > 15s |\n| `openevidence_errors_total` | Counter | > 5% error rate |\n| `openevidence_cache_hits_total` | Counter | \u003C 50% hit rate |\n| `openevidence_rate_limit_remaining` | Gauge | \u003C 10% headroom |\n| `openevidence_deepconsult_active` | Gauge | > 50 concurrent |\n\n## Instructions\n\n### Step 1: Set Up Prometheus Metrics\nRegister counters (requests, errors, cache hits\u002Fmisses), histograms (request duration, DeepConsult duration), gauges (rate limit remaining), and summaries (confidence scores) with appropriate labels.\n\n### Step 2: Instrument Client Wrapper\nWrap OpenEvidence client with metrics collection, cache hit\u002Fmiss tracking, rate limit monitoring from response headers, and confidence score recording.\n\n### Step 3: Configure Distributed Tracing\nInitialize OpenTelemetry with Google Cloud Trace exporter, HTTP and Express instrumentations, and service metadata.\n\n### Step 4: Set Up Structured Logging\nUse pino with PHI redaction (patient.*, patientId, mrn, *.ssn) and OpenEvidence-specific child logger for clinical queries and DeepConsult events.\n\n### Step 5: Define Alert Rules\nCreate Prometheus alerts for: high error rate (>5% warning, >20% critical), high P95 latency (>15s), low cache hit rate (\u003C50%), rate limit warning (\u003C10 remaining), service down.\n\n### Step 6: Build Grafana Dashboard\nCreate panels for request rate, error rate gauge, latency heatmap, cache hit rate timeseries, rate limit gauge, and confidence score distribution.\n\n## Output\n- Prometheus metrics collection with `\u002Fmetrics` endpoint\n- Instrumented client wrapper with tracing\n- Distributed tracing (OpenTelemetry + Cloud Trace)\n- Structured logging with PHI redaction\n- Alert rules for critical conditions\n- Grafana dashboard JSON\n\n## Error Handling\n| Issue | Detection | Resolution |\n|-------|-----------|------------|\n| Metrics endpoint down | Prometheus scrape failure | Check `\u002Fmetrics` route registration |\n| Missing traces | No spans in Cloud Trace | Verify OpenTelemetry SDK initialization |\n| PHI in logs | Audit review | Add patterns to pino redact config |\n| Alert fatigue | Too many alerts | Adjust thresholds, add `for` durations |\n\n## Examples\n\n### Metrics Endpoint\n```typescript\nrouter.get('\u002Fmetrics', async (req, res) => {\n  res.set('Content-Type', registry.contentType);\n  res.send(await registry.metrics());\n});\n```\n\nSee [detailed implementation](${CLAUDE_SKILL_DIR}\u002Freferences\u002Fimplementation.md) for advanced patterns.\n\n## Resources\n- [Prometheus Best Practices](https:\u002F\u002Fprometheus.io\u002Fdocs\u002Fpractices\u002Fnaming\u002F)\n- [OpenTelemetry Documentation](https:\u002F\u002Fopentelemetry.io\u002Fdocs\u002F)\n- [Grafana Dashboards](https:\u002F\u002Fgrafana.com\u002Fdocs\u002Fgrafana\u002Flatest\u002Fdashboards\u002F)","# OpenEvidence Observability\n\n## Table of Contents\n- [Overview](#overview)\n- [Prerequisites](#prerequisites)\n- [Instructions](#instructions)\n- [Output](#output)\n- [Error Handling](#error-handling)\n- [Examples](#examples)\n- [Resources](#resources)\n\n## Overview\nSet up comprehensive observability for OpenEvidence clinical AI integrations with Prometheus metrics, OpenTelemetry tracing, structured logging with PHI redaction, and Grafana dashboards.\n\n## Prerequisites\n- Prometheus or compatible metrics backend\n- OpenTelemetry SDK installed\n- Grafana or similar dashboarding tool\n- AlertManager or PagerDuty configured\n\n## Key Metrics\n\n| Metric | Type | Alert Threshold |\n|--------|------|-----------------|\n| `openevidence_requests_total` | Counter | N\u002FA |\n| `openevidence_request_duration_seconds` | Histogram | P95 > 15s |\n| `openevidence_errors_total` | Counter | > 5% error rate |\n| `openevidence_cache_hits_total` | Counter | \u003C 50% hit rate |\n| `openevidence_rate_limit_remaining` | Gauge | \u003C 10% headroom |\n| `openevidence_deepconsult_active` | Gauge | > 50 concurrent |\n\n## Instructions\n\n### Step 1: Set Up Prometheus Metrics\nRegister counters (requests, errors, cache hits\u002Fmisses), histograms (request duration, DeepConsult duration), gauges (rate limit remaining), and summaries (confidence scores) with appropriate labels.\n\n### Step 2: Instrument Client Wrapper\nWrap OpenEvidence client with metrics collection, cache hit\u002Fmiss tracking, rate limit monitoring from response headers, and confidence score recording.\n\n### Step 3: Configure Distributed Tracing\nInitialize OpenTelemetry with Google Cloud Trace exporter, HTTP and Express instrumentations, and service metadata.\n\n### Step 4: Set Up Structured Logging\nUse pino with PHI redaction (patient.*, patientId, mrn, *.ssn) and OpenEvidence-specific child logger for clinical queries and DeepConsult events.\n\n### Step 5: Define Alert Rules\nCreate Prometheus alerts for: high error rate (>5% warning, >20% critical), high P95 latency (>15s), low cache hit rate (\u003C50%), rate limit warning (\u003C10 remaining), service down.\n\n### Step 6: Build Grafana Dashboard\nCreate panels for request rate, error rate gauge, latency heatmap, cache hit rate timeseries, rate limit gauge, and confidence score distribution.\n\n## Output\n- Prometheus metrics collection with `\u002Fmetrics` endpoint\n- Instrumented client wrapper with tracing\n- Distributed tracing (OpenTelemetry + Cloud Trace)\n- Structured logging with PHI redaction\n- Alert rules for critical conditions\n- Grafana dashboard JSON\n\n## Error Handling\n| Issue | Detection | Resolution |\n|-------|-----------|------------|\n| Metrics endpoint down | Prometheus scrape failure | Check `\u002Fmetrics` route registration |\n| Missing traces | No spans in Cloud Trace | Verify OpenTelemetry SDK initialization |\n| PHI in logs | Audit review | Add patterns to pino redact config |\n| Alert fatigue | Too many alerts | Adjust thresholds, add `for` durations |\n\n## Examples\n\n### Metrics Endpoint\n```typescript\nrouter.get('\u002Fmetrics', async (req, res) => {\n  res.set('Content-Type', registry.contentType);\n  res.send(await registry.metrics());\n});\n```\n\nSee [detailed implementation](${CLAUDE_SKILL_DIR}\u002Freferences\u002Fimplementation.md) for advanced patterns.\n\n## Resources\n- [Prometheus Best Practices](https:\u002F\u002Fprometheus.io\u002Fdocs\u002Fpractices\u002Fnaming\u002F)\n- [OpenTelemetry Documentation](https:\u002F\u002Fopentelemetry.io\u002Fdocs\u002F)\n- [Grafana Dashboards](https:\u002F\u002Fgrafana.com\u002Fdocs\u002Fgrafana\u002Flatest\u002Fdashboards\u002F)",{"name":5,"author":43,"license":14,"version":44,"description":45,"allowed-tools":46,"compatible-with":47},"Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Set up comprehensive observability for OpenEvidence integrations with metrics, traces, and alerts.\nUse when implementing monitoring for clinical AI operations, setting up dashboards,\nor configuring alerting for healthcare application health.\nTrigger with phrases like \"openevidence monitoring\", \"openevidence metrics\",\n\"openevidence observability\", \"monitor openevidence\", \"openevidence alerts\".\n","Read, Write, Edit","claude-code, codex, openclaw","master","3f5d983eb4ef375b749adcd6b07ec03bd82ae8a8","claude-code\u002Fplugins-plus-skills\u002Fplugins\u002Fsaas-packs\u002Fopenevidence-pack\u002Fskills\u002Fopenevidence-observability",0,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills","https:\u002F\u002Fgithub.com\u002Fmicsapp","2026-03-20 11:24:18",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add micsapp\u002Fmicstec-skills --skill openevidence-observability",{"tool":61,"command":62},"bunx","bunx skills add micsapp\u002Fmicstec-skills --skill openevidence-observability",{"tool":64,"command":65},"pnpm","pnpm dlx skills add micsapp\u002Fmicstec-skills --skill openevidence-observability","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fclaude-code\u002Fplugins-plus-skills\u002Fplugins\u002Fsaas-packs\u002Fopenevidence-pack\u002Fskills\u002Fopenevidence-observability\u002FSKILL.md",true,[69],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"references\u002Fimplementation.md","REFERENCE","参考文档",1844,"https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fclaude-code\u002Fplugins-plus-skills\u002Fplugins\u002Fsaas-packs\u002Fopenevidence-pack\u002Fskills\u002Fopenevidence-observability\u002Freferences\u002Fimplementation.md",[76,112,140,161,181,205],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":92,"publishedAt":38},"01M6HBTJ02FXBFG9NYEHHYAP52","azure-apim-architecture","Analyzes and explains Azure API Management architecture decisions for enterprise API marketplace implementations using VNet Internal mode, Front Door, hybrid authentication, and multi-environment strategies. Use when discussing APIM component selection, network topology, cost optimization, or comparing alternatives like workspaces vs instances, VNet Internal vs External mode, or Front Door vs Application Gateway.","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fcopilot-agent-skills\u002F.github\u002Fskills\u002Fazure-apim-architecture\u002FSKILL.md",[82,87],{"categoryNo":83,"categoryName":84,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":88,"categoryName":89,"taxonomyType":90,"taxonomyTypeDesc":91},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,21],"architecture","azure","azure apim architecture","component","authentication","gateway","topology","Optimization","network","api","team","environment","multi-environment","workspaces","instances","selection","strategies","azure api management","mode",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":126,"publishedAt":38},"01M6HBT7J4H082JEEA670B3EQ9","apiops-deployment","Guides deployment of Azure API Management infrastructure using Infrastructure as Code (Bicep\u002FTerraform), CI\u002FCD pipelines (GitHub Actions\u002FAzure DevOps), and APIOps workflows. Use when deploying APIM, creating pipelines, or implementing dev→test→prod promotion strategies.","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fcopilot-agent-skills\u002F.github\u002Fskills\u002Fapiops-deployment\u002FSKILL.md",[118,119,122,125],{"categoryNo":83,"categoryName":84,"taxonomyType":85,"taxonomyTypeDesc":86},{"categoryNo":120,"categoryName":121,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":123,"categoryName":124,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":88,"categoryName":89,"taxonomyType":90,"taxonomyTypeDesc":91},[127,128,129,130,94,131,37,132,133,134,135,136,102,103,109,137,138,110,139,22],"deployment","apiops deployment","workflows","azure devops","infrastructure","infrastructure as code","actions","ci","github actions","github-actions","as","guides","CI\u002FCD",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":147,"publishedAt":38},"01M6HBT2HEA23THNE9E00GYQBE","apim-policy-authoring","Creates production-ready Azure API Management policy XML for authentication (OAuth 2.0, JWT validation, subscription keys), rate limiting, CORS configuration, error handling, and API transformations. Use when implementing API security, access control, or request\u002Fresponse processing logic.","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fcopilot-agent-skills\u002F.github\u002Fskills\u002Fapim-policy-authoring\u002FSKILL.md",[146],{"categoryNo":83,"categoryName":84,"taxonomyType":85,"taxonomyTypeDesc":86},[148,149,150,151,94,97,102,103,152,153,154,155,156,157,158,110,159,160,22,21],"policy","authoring","apim policy authoring","security","access","use","ready","api security","Access Control","error","processing","cors configuration","production-ready",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":169,"publishedAt":38},"01M6HBSY65SB29J9WE9KYD0K6T","api-security-review","Reviews Azure API Management configurations for security vulnerabilities, OWASP API Security Top 10 compliance, VNet Internal mode validation, Private Link verification, and Azure Security Benchmark alignment. Use when performing security audits, pre-deployment validation, or compliance reviews.","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fcopilot-agent-skills\u002F.github\u002Fskills\u002Fapi-security-review\u002FSKILL.md",[167,168],{"categoryNo":83,"categoryName":84,"taxonomyType":85,"taxonomyTypeDesc":86},{"categoryNo":88,"categoryName":89,"taxonomyType":90,"taxonomyTypeDesc":91},[170,151,171,102,155,172,94,127,173,174,175,176,103,177,110,178,179,180,111,21],"review","security review","api security review","benchmark","verification","owasp","owasp-api","alignment","azure security","reviews","top",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":187,"publishedAt":38},"01M6HBSRW4PDFE6K4F8JYPZQ05","jira-cli","Interact with Jira from the command line to create, list, view, edit, and transition issues, manage sprints and epics, and perform common Jira workflows. Use when the user asks about Jira tasks, tickets, issues, sprints, or needs to manage project work items.","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fawesome-copilot-agents\u002Fskills\u002Fjira-cli\u002FSKILL.md",[],[188,189,190,129,191,192,193,194,102,195,196,197,27,198,199,200,201,202,203,204],"cli","jira","jira cli","init","tasks","create","issues","common","work","command","list","view","project","project work","token","line","sprints",{"skillNo":206,"name":207,"nameZh":6,"description":208,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":209,"categories":210,"keywords":211,"publishedAt":38},"01M6HBSNS3JHMW603G47TWE31H","calculator","Performs arbitrary-precision arithmetic calculations including addition, subtraction, multiplication, division, and exponents. Use when the user asks to calculate, compute, or evaluate math expressions, or when precise decimal arithmetic is needed to avoid floating-point errors.","https:\u002F\u002Fgithub.com\u002Fmicsapp\u002Fmicstec-skills\u002Fblob\u002Fmaster\u002Fcopilot-cli\u002Fawesome-copilot-agents\u002Fskills\u002Fcalculator\u002FSKILL.md",[],[207,212,213,214,215,216,217,153,218,219],"npm","js","calculate","node","math","user","compute","errors"]