Token导航 LogoToken导航

Agent Skill · 研究检索

investigating-with-observability(通过可观察性进行调查)

investigating-with-observability 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

investigating-with-observability 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 39,123。

总安装 1,458周安装 62GitHub Stars 24下载 511核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:investigating-with-observability(通过可观察性进行调查)
来源仓库:https://github.com/victoriametrics/skills
仓库路径:skills/investigating-with-observability
安装命令:
npx skills add https://github.com/victoriametrics/skills --skill investigating-with-observability
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/victoriametrics/skills --skill investigating-with-observability

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

用于查找、检索和筛选相关信息。investigating-with-observability 属于研究检索类 Skill,可作为该场景下的辅助能力补充。适合根据关键词或任务场景快速定位候选结果。可在 Codex、Claude、Cursor 等宿主环境中使用。通过 GitHub 安装,具体用法请参考原始 README。

安装前建议确认权限范围和维护状态,避免触发联网或文件操作。

来源仓库内路径:skills/investigating-with-observability

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/victoriametrics/skills --skill investigating-w…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

investigating-with-observability 怎么安装?

在终端执行 npx skills add https://github.com/victoriametrics/skills --skill investigating-with-observ…。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

investigating-with-observability 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

investigating-with-observability 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

investigating-with-observability 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

investigating-with-observability 用的人多吗?

公开数据是累计安装 1,458 次,近一周安装 62 次,下载 511 次,GitHub 24 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

investigating-with-observability 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
investigating-with-observability

通过可观察性进行调查 · 本页

1,45824需要联网未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Troubleshooting with Observability Skills

Core Principle

Random querying wastes time and produces misleading results. Empty results from wrong metric names look identical to "no problem exists." Jumping between signals without a hypothesis leads to thrashing.

Discover before you query. Hypothesize before you correlate. Confirm before you conclude.

If you haven't completed Phase 1, you cannot propose root causes. If you haven't correlated across at least two signal types, your conclusion is a guess.

The Investigation Protocol

Complete each phase before proceeding to the next.

Phase 1: Gather Signals     → What's already known? What's alerting?
Phase 2: Discover and Scope  → What data exists? What are the real names?
Phase 3: Hypothesize and Test → Form one theory, query to confirm or refute
Phase 4: Correlate and Confirm → Cross-reference across signal types, find root cause

Phase 1: Gather Signals

Before writing any query, establish what's already known.

1. Check env var availability — run the gating check from the Subagent Dispatch section.

2. Dispatch signal-gathering subagents in parallel:

SubagentConditionWhat it does
AlertManager checkVM_ALERTMANAGER_URL availableChecks VM alerts + AlertManager alerts and silences
Metrics discovery (alerts only)VM_METRICS_URL available AND VM_ALERTMANAGER_URL NOT availableChecks VM alerts as fallback when AlertManager agent can't be dispatched

If VM_ALERTMANAGER_URL IS available, the AlertManager check agent handles BOTH VM alerts and AlertManager queries — no need to dispatch a separate metrics agent for alerts.

Read the agent prompt files and dispatch in a single Agent tool call. Include in each subagent's prompt:

  • The agent file content
  • The investigation target (namespace, service, or component name if known)

3. Synthesize results — once subagents return:

  • Combine alert findings from all sources
  • Establish a timeline: when did symptoms start? What changed?
  • If timeline is unclear, ask the user

4. Identify which signal type to start with:

SymptomStart withThen correlate with
Resource/rate issueMetricsLogs
Errors/crashesLogsMetrics
Latency/slow requestsTracesLogs
Alert firingMetrics (alert details)Logs + Traces

Phase 2: Discover and Scope

Never guess metric names, log field names, or service names. Discovery is not optional — it prevents the single most common investigation failure: drawing conclusions from empty results caused by wrong names.

Dispatch discovery subagents in parallel for ALL available backends. Read each agent prompt file and dispatch in a single Agent tool call. Include in each subagent's prompt:

  • The agent file content
  • Target namespace and/or service name (from Phase 1 findings)
  • Time range for the investigation (RFC3339 format)
  • Any specific keywords or components to search for
SubagentCondition
Metrics discoveryVM_METRICS_URL available
Logs discoveryVM_LOGS_URL available
Traces discoveryVM_TRACES_URL available

Synthesize discovery results:

  • Merge discovered names across all backends
  • Note which backends have data for the target and which don't
  • Identify the richest signal source for Phase 3 hypothesis testing

Consult skill references for complex queries. You do NOT know LogsQL syntax from training data — it is NOT Loki LogQL. For complex queries beyond what the subagents already ran, invoke the corresponding *-query skill or use the LogsQL Quick Reference below.

Phase 3: Hypothesize and Test

After discovery, form a specific hypothesis before querying further.

State it clearly: "I think [component X] is [failing/slow/OOM] because [evidence Y from Phase 1]."

Test minimally:

  • Query ONE thing to confirm or refute the hypothesis
  • Don't query everything at once — you'll drown in data
  • Use instant queries first (cheaper, faster) before range queries

If the hypothesis is wrong:

  • Don't add more queries on top — form a NEW hypothesis
  • Re-examine what Phase 1 and Phase 2 revealed
  • Ask: did discovery show anything unexpected?

After 3 failed hypotheses: STOP. Three wrong guesses means you're missing something fundamental. Either:

  • A key data source hasn't been discovered yet
  • The scope is wrong (different namespace, different service, different time range)
  • You need to ask the user for more context

Phase 4: Correlate and Confirm

A single signal type is not proof. Correlate across at least two before concluding.

Dispatch correlation subagents in parallel for the signal types you need. Reuse the same agent prompt files from agents/, but provide specific queries rather than discovery tasks. Include in each subagent's prompt:

  • The agent file content
  • The specific query to run (metric expression, log filter, trace search parameters)
  • The exact time range to query (narrowed from Phase 3 findings)
  • What to look for (the confirmed hypothesis from Phase 3)

Example parallel dispatch for correlation:

  • Metrics agent: "Query rate(http_requests_total{code=~'5..', namespace='myapp'}[5m]) from T1 to T2"
  • Logs agent: "Search {namespace='myapp'} error from T1 to T2, return sample messages"
  • Traces agent: "Search traces for service myapp with minDuration=1s from T1 to T2"

Correlation techniques:

  • Time-based: Identify anomaly timestamp in metrics, query logs/traces at that time
  • Trace ID: Find trace IDs in traces, search logs for trace_id:"<id>"
  • Pod name: Get pod name from metrics labels, use it in log stream filters

Only after correlation: propose root cause and remediation.

Red Flags — STOP and Return to Phase 1

If you catch yourself:

  • Proposing a root cause after querying only one signal type
  • Writing a LogsQL query from memory without checking syntax
  • Querying a metric name you haven't confirmed exists via discovery
  • Getting empty results and concluding "no problem"
  • Skipping the alerts check because "it's probably not that"
  • Running five different queries hoping one shows something
  • Saying "let me just try..." instead of forming a hypothesis

All of these mean: STOP. You're guessing, not investigating.

Common Rationalizations

ExcuseReality
"I know the metric name"Maybe. Discovery takes 2 seconds and prevents 20 minutes of chasing empty results.
"Alerts won't help here"Alerts are free to check and frequently contain the exact answer. Skip at your peril.
"Just need to check logs quickly"Quick log checks without discovery produce wrong field names and misleading results.
"Empty results = no problem"Empty results more often mean wrong query than absent problem. Verify names first.
"I'll correlate later"Single-signal conclusions are guesses. Correlate before claiming root cause.
"LogsQL is like LogQL/Elasticsearch"It's not. The syntax differences cause silent failures. Consult the reference.

Environment

Environment is controlled by env vars. Check current state:

echo "VM_METRICS_URL:      $VM_METRICS_URL"
echo "VM_LOGS_URL:         $VM_LOGS_URL"
echo "VM_TRACES_URL:       $VM_TRACES_URL"
echo "VM_ALERTMANAGER_URL: $VM_ALERTMANAGER_URL"
if [ -n "${VM_AUTH_HEADER-}" ]; then
  echo "VM_AUTH_HEADER:      (set)"
else
  echo "VM_AUTH_HEADER:      (empty - no auth)"
fi

If unsure which environment the application runs in, ask user.

Subagent Dispatch

This skill dispatches parallel subagents at phase boundaries to speed up investigations. Each subagent carries embedded API reference and returns structured findings.

Env Var Gating

Before each dispatch round, check which backends are available:

echo "METRICS:${VM_METRICS_URL:+available}"
echo "LOGS:${VM_LOGS_URL:+available}"
echo "TRACES:${VM_TRACES_URL:+available}"
echo "ALERTMANAGER:${VM_ALERTMANAGER_URL:+available}"

Only dispatch subagents for backends that report available. Do not dispatch a subagent if its env var is empty or unset.

How to Dispatch

  1. Read the agent prompt file from the agents/ directory (relative to this skill's directory)
  2. Use the Agent tool to dispatch, including:

- The agent prompt file content as the base instructions - Investigation context: target namespace, service name, time range (RFC3339) - Any specific queries or metrics to look for

  1. Dispatch independent subagents in the SAME tool-call message for parallel execution
  2. Set allowed-tools: Bash(curl:*) on each subagent

Agent Files

AgentFileRequiresUsed in
AlertManager checkagents/alertmanager-check.mdVM_ALERTMANAGER_URL + VM_METRICS_URLPhase 1
Metrics discoveryagents/metrics-discovery.mdVM_METRICS_URLPhase 2, 4
Logs discoveryagents/logs-discovery.mdVM_LOGS_URLPhase 2, 4
Traces discoveryagents/traces-discovery.mdVM_TRACES_URLPhase 2, 4

Skill-to-API Mapping

victoriametrics-query  = Metrics only (MetricsQL/PromQL) → $VM_METRICS_URL
victorialogs-query     = Logs only (LogsQL)              → $VM_LOGS_URL
victoriatraces-query   = Traces only (Jaeger API)        → $VM_TRACES_URL
alertmanager-query     = AlertManager (silences, routing) → $VM_ALERTMANAGER_URL

Never cross APIs between backends. Use the correct env var and endpoint for each data type.

AlertManager provides what VM alerts cannot: silences and inhibition state. But it's in-cluster and may be down — fall back to $VM_METRICS_URL/api/v1/alerts when unavailable.

Timestamp Formats

BackendParameterFormatExample
VictoriaMetricsstart/endRFC3339 string2026-02-06T09:00:00Z
VictoriaLogsstart (REQUIRED), endRFC3339 string2026-02-06T09:00:00Z
VictoriaTracesstart/endUnix microseconds NUMBER1738836000000000 (16 digits)
VictoriaTraces (dependencies)endTs/lookbackUnix milliseconds NUMBER1738836000000 (13 digits) / 3600000

VictoriaLogs start is always required — omitting it scans ALL stored data (extremely expensive).

Discovery Protocol

Follow this order for each signal type. For full API details and additional endpoints, invoke the corresponding query skill.

Metrics Discovery → victoriametrics-query skill

  1. Search metadata by keyword: $VM_METRICS_URL/api/v1/metadata?metric=<keyword>&limit=10
  2. Label values for scoping: $VM_METRICS_URL/api/v1/label/<label_name>/values (filter with match[])
  3. Series for a namespace: $VM_METRICS_URL/api/v1/series?limit=20 with match[]={namespace="X"}
  4. Then query — instant at api/v1/query or range at api/v1/query_range (range requires start, RFC3339)

Logs Discovery → victorialogs-query skill

ALL VictoriaLogs endpoints require start (RFC3339). Use --data-urlencode for the query parameter.

  1. Stream field names: $VM_LOGS_URL/select/logsql/stream_field_names?start=<RFC3339>
  2. Stream field values: $VM_LOGS_URL/select/logsql/stream_field_values?start=<RFC3339>&field=namespace
  3. Facets (best discovery tool — all field distributions in one call): $VM_LOGS_URL/select/logsql/facets?start=<RFC3339>
  4. Non-stream field names: $VM_LOGS_URL/select/logsql/field_names?start=<RFC3339>
  5. Then query (JSON Lines response): $VM_LOGS_URL/select/logsql/query?start=<RFC3339>&limit=100

Traces Discovery → victoriatraces-query skill

Trace discovery endpoints accept NO time-range parameters:

  1. List services: $VM_TRACES_URL/api/services
  2. Operations for a service: $VM_TRACES_URL/api/services/<service>/operations
  3. Dependencies (Unix milliseconds, 13 digits): $VM_TRACES_URL/api/dependencies?endTs=<ms>&lookback=3600000
  4. Then search traces (service required, times in Unix microseconds, 16 digits): $VM_TRACES_URL/api/traces?service=<svc>&start=<µs>&end=<µs>&limit=20

LogsQL Quick Reference

For full LogsQL syntax, invoke the victorialogs-query skill. Key points:

  • LogsQL is space-separated (AND by default). Pipes use |.
  • Stream filters: {namespace="myapp"}
  • Word filters: {namespace="myapp"} error
  • OR: (error OR warning), Regex: ~"err|warn", Field-specific: level:error
  • Time filter: _time:1h (alternative to API start/end params — use one OR the other, never both)
  • Negation: -"expected error"
  • Stats: | stats by (level) count() as total

Common mistakes: | grep does NOT exist (use word filters or ~"regex"). | filter is valid ONLY after | stats. Stream field names depend on ingestion config — discover them first.

Investigation Playbooks

"Application is slow"

  1. Phase 1: Check alerts. Establish timeline — when did latency increase?
  2. Phase 2: Discover traced services and metrics matching the app
  3. Phase 3: Hypothesize — "latency is in [service X] based on [alert/user report]"

- Query latency/error rate metrics for that service - Search traces with minDuration filter to find slow spans

  1. Phase 4: Correlate trace timestamps with logs around those times

"Pod crash looping"

  1. Phase 1: Check alerts (may already show KubePodCrashLooping). Get pod name.
  2. Phase 2: Discover metrics for restart counts, memory usage. Discover log streams for the pod.
  3. Phase 3: Hypothesize — OOM? Liveness probe failure? Startup crash?

- Regular interval crashes → liveness probe. Memory spike before crash → OOM.

  1. Phase 4: Correlate error logs with metric timestamps to confirm cause.

"Resource growing"

  1. Phase 1: Check alerts. How fast is it growing?
  2. Phase 2: Discover resource usage metrics for the namespace/pod
  3. Phase 3: Hypothesize — leak? Increased load? Missing limits?

- Use deriv() or increase() to quantify growth rate - Check per-pod breakdown to isolate the culprit

  1. Phase 4: Correlate with deployment events in logs. Did growth start after a deploy?

Common Mistakes

MistakeFix
Guessing metric namesUse metadata endpoint: $VM_METRICS_URL/api/v1/metadata?metric=keyword
Writing LogsQL from memoryConsult LogsQL Quick Reference above or victorialogs-query skill
Wrong timestamp formatSee Timestamp Formats table above
Skipping alerts checkQuery $VM_METRICS_URL/api/v1/alerts first — it's free
Empty results → "no problem"Verify metric/field names exist via discovery first
Not using facets for log explorationfacets returns field distributions in one call
Not URL-encoding queriesUse --data-urlencode 'query=...' for POST requests
Missing start on VictoriaLogsOmitting start scans ALL data (extremely expensive)
Forgetting match[] needs []match alone won't work — must be match[]
Wrong timestamp type for tracesSearch uses MICROSECONDS (16 digits), dependencies use MILLISECONDS (13 digits)
Confusing stats_query vs stats_query_rangeInstant uses time, range uses start/end/step
Mixing _time: filter with API startUse one OR the other, never both
Searching "error" catching vmselect noiseAdd -"vm_slow_query_stats" to exclude PromQL text
Grouping logs by cluster fieldVector logs lack cluster stream field — use kubernetes.pod_namespace
Blocking on AlertManager failureUse VM alerts as primary, AlertManager as best-effort
Single-signal conclusionCorrelate across at least two signal types before claiming root cause

平台分布

Codex

34.02%
按下载量换算174

Claude

29.2%
按下载量换算149

Cursor

20.53%
按下载量换算105

Gemini CLI

10.46%
按下载量换算53

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills