[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6990Z0BPZ0NQDHDA83NG9RE":3,"skill-same:01M6990Z0BPZ0NQDHDA83NG9RE":80},{"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":23,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":51,"commitSha":52,"skillDirectory":53,"forksCount":54,"repositoryHtmlUrl":55,"repositoryHomepageUrl":6,"ownerHtmlUrl":56,"ownerBlogUrl":57,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6990Z0BPZ0NQDHDA83NG9RE","cloud-monitoring-metric-selection",null,"Retrieve, query, and identify relevant Cloud Monitoring metric descriptors on Google Cloud for a service or resource (such as Compute Engine, Spanner, BigQuery, Cloud Run, Cloud SQL, Pub\u002FSub, Cloud Storage, etc.). Use when asked to find, list, search, or discover GCP metric types, names, kind\u002Fvalue schemas, or descriptors.","google\u002Fskills","google","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1342004?v=4","01M698VYEFDM0VJBZDYYJ2T83S","Google","01M698WR0H76ENHE587T9EJT89",24235,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fcloud-monitoring-metric-selection\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,9,37,38,39,40,41,42],"cloud monitoring metric selection","metric","monitoring","cloud","cloud monitoring","selection","list","when","Cloud Storage","relevant","types","discover","query","gcp","search","run","sql","storage","google cloud","2026-11-10 10:12:30",false,"---\nname: cloud-monitoring-metric-selection\nmetadata:\n  version: \"1.0.2\"\n  category: CloudObservabilityAndMonitoring\ndescription: >-\n  Retrieve, query, and identify relevant Cloud Monitoring metric descriptors on\n  Google Cloud for a service or resource (such as Compute Engine, Spanner,\n  BigQuery, Cloud Run, Cloud SQL, Pub\u002FSub, Cloud Storage, etc.). Use when asked\n  to find, list, search, or discover GCP metric types, names, kind\u002Fvalue\n  schemas, or descriptors.\n---\n\n# Metric Selection (Service Query & Local Keyword Filtering)\n\nUse this skill to identify the most relevant Cloud Monitoring metric\ndescriptors. It queries all metric descriptors for a target service from the API\nand filters them locally inside the agent's context using keyword matching.\n\n## Attribution\n\n**MUST READ**: Before executing any `gcloud`, REST API, or MCP command, you\nMUST read [Usage Attribution](references\u002Fattribution.md). For commands executed\ndirectly in the terminal (never in generated scripts, Terraform, or user code),\nprefix `gcloud` with\n`CLOUDSDK_METRICS_REQUEST_ATTRIBUTION=\"agent-skills\u002F1.0 (skill:cloud-monitoring-metric-selection)\"`\nand append `agent-skills\u002F1.0 (skill:cloud-monitoring-metric-selection)` to `User-Agent` headers.\n\n## CRITICAL RULES\n\n*   **Always Query Live APIs**: You MUST always retrieve the most up-to-date\n    metric descriptors dynamically by calling the `list_metric_descriptors` MCP\n    tool.\n*   **Mandatory Project ID and Resource Parameter Clarification**: BEFORE\n    calling any API tools (such as `list_metric_descriptors`), you MUST ensure\n    the GCP Project ID is provided in the prompt, URI, or environment context.\n    If the Project ID cannot be resolved, you MUST ask the user to clarify or\n    provide it BEFORE executing API queries. Do NOT run API queries against\n    unconfirmed default or placeholder project names (such as `mock-project`,\n    `my-project-id`, `unused`, or `YOUR_PROJECT_ID`).\n*   **Fallback Reporting**: If API calls fail and fallback sources (such as\n    public docs) are used, you MUST state the error, the fallback source, and\n    the risks of non-live data (such as potential staleness, missing custom\n    metrics, or schema mismatches).\n\n## Workflow\n\n### Step 1: Verify & Auto-Configure MCP\n\n1.  Check if any tool matching `list_metric_descriptors` (such as\n    `google-cloud-monitoring:list_metric_descriptors`,\n    `mcp_google-cloud-monitoring_list_metric_descriptors`, or a similar pattern)\n    is available in your active toolset.\n2.  **Verify via Unique URL**: To ensure you are calling the correct Cloud\n    Monitoring tool, confirm that the underlying MCP server configuration\n    points to: **`https:\u002F\u002Fmonitoring.googleapis.com\u002Fmcp`**.\n3.  If the tool is **missing**:\n\n    *   Locate the MCP configuration file for the user's environment. Check\n        common paths:\n        -   `~\u002F.gemini\u002Fconfig\u002Fmcp_config.json`\n        -   `~\u002F.codeium\u002Fwindsurf\u002Fmcp_config.json`\n        -   `cline_mcp_settings.json`\n        -   `claude_desktop_config.json`\n    *   Directly update\u002Fmerge the configuration file with the following server\n        configuration. **CRITICAL**: Merge the JSON object to preserve any\n        existing MCP servers in `mcpServers`. Do not overwrite the file.\n\n        ```json\n        \"google-cloud-monitoring\": {\n          \"url\": \"https:\u002F\u002Fmonitoring.googleapis.com\u002Fmcp\",\n          \"authProviderType\": \"google_credentials\",\n          \"enabledTools\": [\n            \"list_metric_descriptors\"\n          ]\n        }\n        ```\n\n    *   Print a clear message notifying the user that the\n        `google-cloud-monitoring` MCP server has been configured, and request\n        them to restart or start a new chat session to refresh tools. Stop\n        calling further tools and end the turn.\n\n### Step 2: Analyze Request & Extract Keywords\n\n1.  **Resolve Project ID and Identifiers**: Check for the GCP Project ID and\n    resource identifiers in the prompt, resource URIs, or environment context.\n    According to the CRITICAL RULES above, do NOT use placeholder project names.\n\n2.  **Identify Service Prefix**: Map target GCP services to their standard\n    prefix (such as `compute`, `spanner`, `bigquery`, `storage`).\n\n3.  **Extract Metric Concepts**: Extract metric keywords from user prompt (such\n    as \"CPU\", \"memory\", \"bytes scanned\", \"latency\", \"connections\") and map to\n    search substrings.\n\n*Example Query Analysis:*\n\n*   **User Prompt**: \"Check Cloud Storage bucket write throughput and request\n    count\"\n*   **Resource URI**:\n    `\u002F\u002Fstorage.googleapis.com\u002Fprojects\u002Fmy-project\u002Fbuckets\u002Fmy-bucket`\n*   **Service Prefix**: `storage` (mapped to `storage.googleapis.com`)\n*   **Metric Keywords**: `write`, `throughput`, `request`, `count`\n*   **Mapped Substrings**: `write`, `throughput`, `request_count`, `count`\n\n### Step 3: Query Metric Descriptors via list_metric_descriptors Tool\n\nQuery all metric descriptors for each identified service prefix using the\n`list_metric_descriptors` MCP tool (using `pageSize: 200`). Because Cloud\nMonitoring filters do not allow combining multiple `metric.type` restrictions\nwith `OR`, you must **initiate a separate query for each identified service\nprefix** (either sequentially or in parallel).\n\nIf any response includes a `nextPageToken`, you MUST make consecutive follow-up\ncalls passing `pageToken` until all remaining descriptors for that prefix are\nretrieved before filtering.\n\n*Filter Pattern Construction:* Map the target service domain to its appropriate\nprefix style:\n\n1.  **Standard Google Cloud Services**:\n    `starts_with(\"\u003Cservice_prefix>.googleapis.com\u002F\")` (such as\n    `bigquery.googleapis.com\u002F`, `redis.googleapis.com\u002F`).\n2.  **Ops Agent (Guest OS)**: `starts_with(\"agent.googleapis.com\u002F\")` (for guest\n    OS memory\u002Fdisk metrics).\n3.  **Kubernetes \u002F GKE Native**: `starts_with(\"kubernetes.io\u002F\")`\n4.  **Istio Service Mesh**: `starts_with(\"istio.io\u002F\")`\n5.  **Knative Serving \u002F Autoscaler**: `starts_with(\"knative.dev\u002F\")`\n6.  **Custom \u002F External Metrics**: Use `starts_with(\"custom.googleapis.com\u002F\")`\n    or `starts_with(\"external.googleapis.com\u002F\")`.\n\n*Example Tool Call Payload:* If both Spanner and Compute Engine are targeted in\nthe request, execute these two tool calls:\n\n1.  Spanner query:\n\n```json\n{\n  \"name\": \"projects\u002Fmy-project-id\",\n  \"filter\": \"metric.type = starts_with(\\\"spanner.googleapis.com\u002F\\\")\",\n  \"pageSize\": 200\n}\n```\n\n1.  Compute Engine query:\n\n```json\n{\n  \"name\": \"projects\u002Fmy-project-id\",\n  \"filter\": \"metric.type = starts_with(\\\"compute.googleapis.com\u002F\\\")\",\n  \"pageSize\": 200\n}\n```\n\nCall the `list_metric_descriptors` tool with these payloads.\n\n### Step 4: Local Filtering & Fallback Protocol\n\nAggregate all descriptors returned from Step 3, and filter them locally inside\nyour LLM context:\n\n1.  **Keyword Filtering**: Filter the list by matching your target metric\n    keywords (such as \"cpu\", \"latency\") against the `type`, `displayName`, and\n    `description` fields of the descriptors.\n2.  **Resource Alignment**: Check if the metric contains labels matching the\n    target resource granularity (such as checking for a `database` label if\n    targeting a database resource). Do not attempt to dynamically match resource\n    type strings directly, as Cloud Monitoring resource mappings (like\n    Spanner databases mapping to `spanner_instance`) can be counter-intuitive.\n\n#### Troubleshooting & API Fallbacks\n\nIf any tool call fails, times out, or returns empty results, use these\nstrategies:\n\n*   **Case A: API Syntax Error**: Examine the error message, correct the filter\n    syntax, and retry.\n*   **Case B: Timeout \u002F Rate Limits**: Retry the call once with a smaller page\n    size (such as `pageSize: 20`).\n*   **Case C: Unrecoverable Failure \u002F Empty List**:\n    1.  Verify if the target service is enabled in the project.\n    2.  Search Google Cloud public documentation to verify standard metrics for\n        the service.\n\n### Step 5: Output Selected Metrics\n\nFor each service domain, return only the 5-15 key metrics directly relevant to\nthe user's intent.\n\nYou MUST report the selected metrics in clean Markdown tables, grouped by\nservice (that is, one table per service prefix). The table MUST include the\nfollowing columns: \"Metric Type\", \"Display Name\", \"Description\", \"Metric Kind\",\n\"Value Type\", \"Unit\", and \"Monitored Resource Types\". Map the fields from the\nCloud Monitoring `list_metric_descriptors` tool call response objects\ndirectly to the table columns:\n\n*   **Metric Type**: Map to the `type` field (for example,\n    `spanner.googleapis.com\u002Finstance\u002Fcpu\u002Futilization`).\n*   **Display Name**: Map to the `displayName` field.\n*   **Description**: Map to the `description` field.\n*   **Metric Kind**: Map to the `metricKind` field (for example, `GAUGE`,\n    `DELTA`, `CUMULATIVE`).\n*   **Value Type**: Map to the `valueType` field (for example, `INT64`,\n    `DOUBLE`, `DISTRIBUTION`, `BOOL`).\n*   **Unit**: Map to the `unit` field (for example, `1`, `By`, `s`, `ms`).\n*   **Monitored Resource Types**: Map to the `monitoredResourceTypes` list field\n    (for example, `[\"spanner_instance\"]`).\n\n*Example Output Table:*\n\nMetric Type                                       | Display Name             | Description                                 | Metric Kind | Value Type | Unit | Monitored Resource Types\n:------------------------------------------------ | :----------------------- | :------------------------------------------ | :---------- | :--------- | :--- | :-----------------------\n`spanner.googleapis.com\u002Finstance\u002Fcpu\u002Futilization` | Instance CPU Utilization | Fraction of allocated CPU currently in use. | GAUGE       | DOUBLE     | 1    | `[\"spanner_instance\"]`\n\n## Reference Documentation & Links\n\n*   **Cloud Monitoring Metric List**:\n    [GCP Metrics Documentation](https:\u002F\u002Fcloud.google.com\u002Fmonitoring\u002Fapi\u002Fmetrics_gcp)\n*   **MetricDescriptor MCP Tool Reference**:\n    [MCP Tools Reference: monitoring.googleapis.com](https:\u002F\u002Fdocs.cloud.google.com\u002Fmonitoring\u002Fapi\u002Fref_v3_mcp\u002Fmcp\u002Ftools_list\u002Flist_metric_descriptors)\n*   **Monitoring Filter Syntax Guide**:\n    [Monitoring Filters](https:\u002F\u002Fcloud.google.com\u002Fmonitoring\u002Fapi\u002Fv3\u002Ffilters)\n","# Metric Selection (Service Query & Local Keyword Filtering)\n\nUse this skill to identify the most relevant Cloud Monitoring metric\ndescriptors. It queries all metric descriptors for a target service from the API\nand filters them locally inside the agent's context using keyword matching.\n\n## Attribution\n\n**MUST READ**: Before executing any `gcloud`, REST API, or MCP command, you\nMUST read [Usage Attribution](references\u002Fattribution.md). For commands executed\ndirectly in the terminal (never in generated scripts, Terraform, or user code),\nprefix `gcloud` with\n`CLOUDSDK_METRICS_REQUEST_ATTRIBUTION=\"agent-skills\u002F1.0 (skill:cloud-monitoring-metric-selection)\"`\nand append `agent-skills\u002F1.0 (skill:cloud-monitoring-metric-selection)` to `User-Agent` headers.\n\n## CRITICAL RULES\n\n*   **Always Query Live APIs**: You MUST always retrieve the most up-to-date\n    metric descriptors dynamically by calling the `list_metric_descriptors` MCP\n    tool.\n*   **Mandatory Project ID and Resource Parameter Clarification**: BEFORE\n    calling any API tools (such as `list_metric_descriptors`), you MUST ensure\n    the GCP Project ID is provided in the prompt, URI, or environment context.\n    If the Project ID cannot be resolved, you MUST ask the user to clarify or\n    provide it BEFORE executing API queries. Do NOT run API queries against\n    unconfirmed default or placeholder project names (such as `mock-project`,\n    `my-project-id`, `unused`, or `YOUR_PROJECT_ID`).\n*   **Fallback Reporting**: If API calls fail and fallback sources (such as\n    public docs) are used, you MUST state the error, the fallback source, and\n    the risks of non-live data (such as potential staleness, missing custom\n    metrics, or schema mismatches).\n\n## Workflow\n\n### Step 1: Verify & Auto-Configure MCP\n\n1.  Check if any tool matching `list_metric_descriptors` (such as\n    `google-cloud-monitoring:list_metric_descriptors`,\n    `mcp_google-cloud-monitoring_list_metric_descriptors`, or a similar pattern)\n    is available in your active toolset.\n2.  **Verify via Unique URL**: To ensure you are calling the correct Cloud\n    Monitoring tool, confirm that the underlying MCP server configuration\n    points to: **`https:\u002F\u002Fmonitoring.googleapis.com\u002Fmcp`**.\n3.  If the tool is **missing**:\n\n    *   Locate the MCP configuration file for the user's environment. Check\n        common paths:\n        -   `~\u002F.gemini\u002Fconfig\u002Fmcp_config.json`\n        -   `~\u002F.codeium\u002Fwindsurf\u002Fmcp_config.json`\n        -   `cline_mcp_settings.json`\n        -   `claude_desktop_config.json`\n    *   Directly update\u002Fmerge the configuration file with the following server\n        configuration. **CRITICAL**: Merge the JSON object to preserve any\n        existing MCP servers in `mcpServers`. Do not overwrite the file.\n\n        ```json\n        \"google-cloud-monitoring\": {\n          \"url\": \"https:\u002F\u002Fmonitoring.googleapis.com\u002Fmcp\",\n          \"authProviderType\": \"google_credentials\",\n          \"enabledTools\": [\n            \"list_metric_descriptors\"\n          ]\n        }\n        ```\n\n    *   Print a clear message notifying the user that the\n        `google-cloud-monitoring` MCP server has been configured, and request\n        them to restart or start a new chat session to refresh tools. Stop\n        calling further tools and end the turn.\n\n### Step 2: Analyze Request & Extract Keywords\n\n1.  **Resolve Project ID and Identifiers**: Check for the GCP Project ID and\n    resource identifiers in the prompt, resource URIs, or environment context.\n    According to the CRITICAL RULES above, do NOT use placeholder project names.\n\n2.  **Identify Service Prefix**: Map target GCP services to their standard\n    prefix (such as `compute`, `spanner`, `bigquery`, `storage`).\n\n3.  **Extract Metric Concepts**: Extract metric keywords from user prompt (such\n    as \"CPU\", \"memory\", \"bytes scanned\", \"latency\", \"connections\") and map to\n    search substrings.\n\n*Example Query Analysis:*\n\n*   **User Prompt**: \"Check Cloud Storage bucket write throughput and request\n    count\"\n*   **Resource URI**:\n    `\u002F\u002Fstorage.googleapis.com\u002Fprojects\u002Fmy-project\u002Fbuckets\u002Fmy-bucket`\n*   **Service Prefix**: `storage` (mapped to `storage.googleapis.com`)\n*   **Metric Keywords**: `write`, `throughput`, `request`, `count`\n*   **Mapped Substrings**: `write`, `throughput`, `request_count`, `count`\n\n### Step 3: Query Metric Descriptors via list_metric_descriptors Tool\n\nQuery all metric descriptors for each identified service prefix using the\n`list_metric_descriptors` MCP tool (using `pageSize: 200`). Because Cloud\nMonitoring filters do not allow combining multiple `metric.type` restrictions\nwith `OR`, you must **initiate a separate query for each identified service\nprefix** (either sequentially or in parallel).\n\nIf any response includes a `nextPageToken`, you MUST make consecutive follow-up\ncalls passing `pageToken` until all remaining descriptors for that prefix are\nretrieved before filtering.\n\n*Filter Pattern Construction:* Map the target service domain to its appropriate\nprefix style:\n\n1.  **Standard Google Cloud Services**:\n    `starts_with(\"\u003Cservice_prefix>.googleapis.com\u002F\")` (such as\n    `bigquery.googleapis.com\u002F`, `redis.googleapis.com\u002F`).\n2.  **Ops Agent (Guest OS)**: `starts_with(\"agent.googleapis.com\u002F\")` (for guest\n    OS memory\u002Fdisk metrics).\n3.  **Kubernetes \u002F GKE Native**: `starts_with(\"kubernetes.io\u002F\")`\n4.  **Istio Service Mesh**: `starts_with(\"istio.io\u002F\")`\n5.  **Knative Serving \u002F Autoscaler**: `starts_with(\"knative.dev\u002F\")`\n6.  **Custom \u002F External Metrics**: Use `starts_with(\"custom.googleapis.com\u002F\")`\n    or `starts_with(\"external.googleapis.com\u002F\")`.\n\n*Example Tool Call Payload:* If both Spanner and Compute Engine are targeted in\nthe request, execute these two tool calls:\n\n1.  Spanner query:\n\n```json\n{\n  \"name\": \"projects\u002Fmy-project-id\",\n  \"filter\": \"metric.type = starts_with(\\\"spanner.googleapis.com\u002F\\\")\",\n  \"pageSize\": 200\n}\n```\n\n1.  Compute Engine query:\n\n```json\n{\n  \"name\": \"projects\u002Fmy-project-id\",\n  \"filter\": \"metric.type = starts_with(\\\"compute.googleapis.com\u002F\\\")\",\n  \"pageSize\": 200\n}\n```\n\nCall the `list_metric_descriptors` tool with these payloads.\n\n### Step 4: Local Filtering & Fallback Protocol\n\nAggregate all descriptors returned from Step 3, and filter them locally inside\nyour LLM context:\n\n1.  **Keyword Filtering**: Filter the list by matching your target metric\n    keywords (such as \"cpu\", \"latency\") against the `type`, `displayName`, and\n    `description` fields of the descriptors.\n2.  **Resource Alignment**: Check if the metric contains labels matching the\n    target resource granularity (such as checking for a `database` label if\n    targeting a database resource). Do not attempt to dynamically match resource\n    type strings directly, as Cloud Monitoring resource mappings (like\n    Spanner databases mapping to `spanner_instance`) can be counter-intuitive.\n\n#### Troubleshooting & API Fallbacks\n\nIf any tool call fails, times out, or returns empty results, use these\nstrategies:\n\n*   **Case A: API Syntax Error**: Examine the error message, correct the filter\n    syntax, and retry.\n*   **Case B: Timeout \u002F Rate Limits**: Retry the call once with a smaller page\n    size (such as `pageSize: 20`).\n*   **Case C: Unrecoverable Failure \u002F Empty List**:\n    1.  Verify if the target service is enabled in the project.\n    2.  Search Google Cloud public documentation to verify standard metrics for\n        the service.\n\n### Step 5: Output Selected Metrics\n\nFor each service domain, return only the 5-15 key metrics directly relevant to\nthe user's intent.\n\nYou MUST report the selected metrics in clean Markdown tables, grouped by\nservice (that is, one table per service prefix). The table MUST include the\nfollowing columns: \"Metric Type\", \"Display Name\", \"Description\", \"Metric Kind\",\n\"Value Type\", \"Unit\", and \"Monitored Resource Types\". Map the fields from the\nCloud Monitoring `list_metric_descriptors` tool call response objects\ndirectly to the table columns:\n\n*   **Metric Type**: Map to the `type` field (for example,\n    `spanner.googleapis.com\u002Finstance\u002Fcpu\u002Futilization`).\n*   **Display Name**: Map to the `displayName` field.\n*   **Description**: Map to the `description` field.\n*   **Metric Kind**: Map to the `metricKind` field (for example, `GAUGE`,\n    `DELTA`, `CUMULATIVE`).\n*   **Value Type**: Map to the `valueType` field (for example, `INT64`,\n    `DOUBLE`, `DISTRIBUTION`, `BOOL`).\n*   **Unit**: Map to the `unit` field (for example, `1`, `By`, `s`, `ms`).\n*   **Monitored Resource Types**: Map to the `monitoredResourceTypes` list field\n    (for example, `[\"spanner_instance\"]`).\n\n*Example Output Table:*\n\nMetric Type                                       | Display Name             | Description                                 | Metric Kind | Value Type | Unit | Monitored Resource Types\n:------------------------------------------------ | :----------------------- | :------------------------------------------ | :---------- | :--------- | :--- | :-----------------------\n`spanner.googleapis.com\u002Finstance\u002Fcpu\u002Futilization` | Instance CPU Utilization | Fraction of allocated CPU currently in use. | GAUGE       | DOUBLE     | 1    | `[\"spanner_instance\"]`\n\n## Reference Documentation & Links\n\n*   **Cloud Monitoring Metric List**:\n    [GCP Metrics Documentation](https:\u002F\u002Fcloud.google.com\u002Fmonitoring\u002Fapi\u002Fmetrics_gcp)\n*   **MetricDescriptor MCP Tool Reference**:\n    [MCP Tools Reference: monitoring.googleapis.com](https:\u002F\u002Fdocs.cloud.google.com\u002Fmonitoring\u002Fapi\u002Fref_v3_mcp\u002Fmcp\u002Ftools_list\u002Flist_metric_descriptors)\n*   **Monitoring Filter Syntax Guide**:\n    [Monitoring Filters](https:\u002F\u002Fcloud.google.com\u002Fmonitoring\u002Fapi\u002Fv3\u002Ffilters)\n",{"name":5,"metadata":48,"description":7},{"version":49,"category":50},"1.0.2","CloudObservabilityAndMonitoring","main","bb9b3f464aae37af360d079c1d863524955b0363","skills\u002Fcloud\u002Fcloud-monitoring-metric-selection",2014,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills","https:\u002F\u002Fgithub.com\u002Fgoogle","https:\u002F\u002Fopensource.google\u002F","Google ❤️ Open Source","2026-11-14 23:31:00",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add google\u002Fskills --skill cloud-monitoring-metric-selection",{"tool":66,"command":67},"bunx","bunx skills add google\u002Fskills --skill cloud-monitoring-metric-selection",{"tool":69,"command":70},"pnpm","pnpm dlx skills add google\u002Fskills --skill cloud-monitoring-metric-selection","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fcloud-monitoring-metric-selection\u002FSKILL.md",true,[74],{"path":75,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fattribution.md","REFERENCE","参考文档",1939,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fcloud-monitoring-metric-selection\u002Freferences\u002Fattribution.md",[81,116,145,172,199,223],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":93,"publishedAt":43},"01M6998S2EZKD3GEJ7F943RZTE","sign-in-with-google-web","Implement, configure, and secure Sign In With Google (SiwG) using Google Identity Services (GIS \u002F `https:\u002F\u002Faccounts.google.com\u002Fgsi\u002Fclient`) across web architectures. Use when creating Google sign-in buttons, implementing Google One Tap with FedCM, integrating GIS in React\u002FNext.js\u002FAngular\u002FHTML, verifying ID tokens on backend runtimes (Python\u002FNode.js\u002FGo\u002FJava), enforcing Google Workspace domain restrictions (`hd`), securing client-side ID tokens via WebCrypto nonces or encrypted IndexedDB, embedding in cross-origin iframes via the Intermediate Iframe API (`https:\u002F\u002Faccounts.google.com\u002Fgsi\u002Fintermediate`), configuring Content Security Policy (CSP), COOP, and Permissions Policy (`identity-credentials-get`) headers, or handling sign-out and revocation. Don't use for legacy Google Sign-In (`gapi.auth2`), Google Cloud IAM service accounts, or Android\u002FiOS native Credential Manager.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fidentity\u002Fsign-in-with-google-web\u002FSKILL.md",[87,90],{"categoryNo":88,"categoryName":89,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":91,"categoryName":92,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",[9,94,95,96,97,98,99,100,101,42,102,103,104,105,106,107,108,109,110,111,112,113,114,115],"sign in with google web","sign","with","web","android","go","security","google workspace","implement","policy","python","implementing","react","iam","permissions","buttons","secure","manager","identity","architectures","domain","runtimes",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":129,"publishedAt":43},"01M6998PHPDCAD684VW5WRG83D","dpop-adoption","Implement and debug OAuth 2.0 DPoP (RFC 9449) refresh token sender-constraining for WebCrypto, Node.js ES6, and browser runtimes integrating with Google's OAuth platform. Use when configuring non-extractable asymmetric key pairs (P-256), generating DPoP Proof JWTs for authorization code exchange and token refresh, or handling 400 use_dpop_nonce challenge retry loops at oauth2.googleapis.com\u002Ftoken. Don't use for unconstrained OAuth 2.0 flows (where refresh tokens are not bound to a client key pair), or for Google Cloud IAM \u002F service account authentication.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fidentity\u002Fdpop-adoption\u002FSKILL.md",[122,123,124],{"categoryNo":91,"categoryName":92,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":125,"categoryName":126,"taxonomyType":127,"taxonomyTypeDesc":128},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[130,131,9,42,132,133,134,135,136,137,107,138,139,140,141,142,143,112,115,144,31],"dpop adoption","adoption","es6","retry","authentication","flows","challenge","code","browser","loops","at","node","token","pair","platform",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":157,"publishedAt":43},"01M6998M72TC73EEAQH4XC7EXW","retrieving-developer-knowledge","Searches, retrieves, and synthesizes official Google developer documentation across Google Cloud, AI\u002FGemini, Android, Chrome, Web, Flutter, Go, Firebase, and other Google developer platforms. Integrates with the Developer Knowledge MCP server (search_documents, get_documents, answer_query) or the Developer Knowledge REST API fallback. Use when searching for gcloud CLI commands, API syntax, IAM permissions, official documentation, architectural comparisons, or product choice overviews. Don't use for local filesystem lookups or non-Google documentation.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdevelopers\u002Fretrieving-developer-knowledge\u002FSKILL.md",[151,152,155,156],{"categoryNo":91,"categoryName":92,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":153,"categoryName":154,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":125,"categoryName":126,"taxonomyType":127,"taxonomyTypeDesc":128},[158,159,160,161,42,162,163,164,165,38,166,167,168,31,36,169,170,107,171,108],"retrieving developer knowledge","knowledge","developer","MCP","mcp server","official","developer documentation","get","local","choice","documents","api","across","documentation",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":178,"publishedAt":43},"01M6998J2CZEXS9BES9S3WWFKC","migrate-to-rust","Clones, analyzes, plans, and migrates legacy codebases (C++, Fortran, Java, Python, C, Shell) from a GitHub URL or local directory to a modern, high-performance, deterministic, 100% Safe Rust architecture, tracking live telemetry across every task bucket, test failure\u002Ffix cycle, and Profile-Guided Optimization (PGO) stage, and producing a first-person AI storytelling report and interactive HTML infographic. Use when migrating a GitHub repository or local codebase to Rust, porting legacy C++, Fortran, Python, or Java workloads to memory-safe Rust, designing Struct-of-Arrays (SoA) or SIMD Rust architectures, or optimizing Rust ports with LLVM PGO. Don't use for unrelated non-Rust refactoring or single-line syntax questions.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdevelopers\u002Fmigrate-to-rust\u002FSKILL.md",[],[179,180,181,182,183,184,185,186,104,187,188,189,190,191,192,166,193,194,195,31,196,197,170,198],"migrate to rust","rust","migrate","github","memory","performance","directory","safe","ports","llvm","soa","cycle","porting","fix","arrays","infographic","high-performance","URL","architecture","unrelated",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":208,"publishedAt":43},"01M6998GCC3K29WZ82KXMB9E02","finding-google-skills","Google platform decision and setup guidance, loaded on demand from Google's skill catalog. Use when a developer is choosing or setting up part of their stack, such as where to run a service, a database, storage, messaging, authentication, analytics, ads, or AI model serving, and a Google product is a reasonable candidate - whether or not a vendor is named - or when a request names a Google product or API. Brings in the matching Google skill so the answer can weigh Google options, their trade-offs, and when they are not the right fit. Skip when the stack is already settled on another provider and no Google product is named, or the task involves no platform choice.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdevelopers\u002Ffinding-google-skills\u002FSKILL.md",[205,206,207],{"categoryNo":91,"categoryName":92,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":125,"categoryName":126,"taxonomyType":127,"taxonomyTypeDesc":128},[9,209,41,210,211,144,212,213,214,215,216,134,217,218,219,167,220,221,31,222,169],"finding google skills","as","messaging","model","trade-offs","provider","answer","fit","catalog","up","decision","use","database","candidate",{"skillNo":224,"name":225,"nameZh":6,"description":226,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":227,"categories":228,"keywords":231,"publishedAt":43},"01M6998DWNHTH0BS6W1CY8ZXMP","workload-manager-basics","Use this skill to manage Google Cloud Workload Manager evaluations, rules, scanned resources, and validation results by using public client libraries and the REST API. Use when you need to inspect workload best-practice rules, create and run evaluations for Google Cloud general best practices, SAP, SQL Server, or custom organizational rules, review violations, export results to BigQuery, or automate Workload Manager through client libraries because no service-specific public CLI or MCP server is available. Don't use for general Google Compute Engine instance management, VPC configuration, or standard IAM auditing.","https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fcloud\u002Fworkload-manager-basics\u002FSKILL.md",[229,230],{"categoryNo":91,"categoryName":92,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[232,233,111,234,9,161,235,42,162,236,237,238,239,31,240,169,107,241,242,243,39],"workload manager basics","workload","basics","cli","review","vpc","resources","inspect","you","create","libraries","server"]