본문으로 건너뛰기
cccskills
무료GitHub에 공개

gcp-logs

Read and query GCP logs for Hyperlane agents using gcloud CLI. Use when investigating relayer, validator, or scraper logs, debugging message processing, or analyzing operational issues. Provides efficient filtering and context management strategies.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md6.7 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

GCP Logs Query Skill

When to Use

  • Investigating relayer, validator, or scraper behavior
  • Debugging message processing issues
  • Analyzing operational incidents
  • Looking for specific errors or patterns in agent logs

Prerequisites

  • gcloud CLI installed and authenticated
  • Access to abacus-labs-dev GCP project

Base Query Templates

Relayer (Omniscient)

gcloud logging read 'resource.type="k8s_container" AND resource.labels.project_id="abacus-labs-dev" AND resource.labels.location="us-east1-c" AND resource.labels.cluster_name="hyperlane-mainnet" AND resource.labels.namespace_name="mainnet3" AND labels.k8s-pod/app_kubernetes_io/component="relayer" AND labels.k8s-pod/app_kubernetes_io/instance="omniscient-relayer" AND labels.k8s-pod/app_kubernetes_io/name="hyperlane-agent"' --project=abacus-labs-dev --limit=50 --format=json --freshness=1d

Validator

gcloud logging read 'resource.type="k8s_container" AND resource.labels.project_id="abacus-labs-dev" AND resource.labels.location="us-east1-c" AND resource.labels.cluster_name="hyperlane-mainnet" AND resource.labels.namespace_name="mainnet3" AND labels.k8s-pod/app_kubernetes_io/component="validator" AND labels.k8s-pod/app_kubernetes_io/name="hyperlane-agent"' --project=abacus-labs-dev --limit=50 --format=json --freshness=1d

Scraper

gcloud logging read 'resource.type="k8s_container" AND resource.labels.project_id="abacus-labs-dev" AND resource.labels.location="us-east1-c" AND resource.labels.cluster_name="hyperlane-mainnet" AND resource.labels.namespace_name="mainnet3" AND labels.k8s-pod/app_kubernetes_io/component="scraper3" AND labels.k8s-pod/app_kubernetes_io/instance="omniscient-scraper" AND labels.k8s-pod/app_kubernetes_io/name="hyperlane-agent"' --project=abacus-labs-dev --limit=50 --format=json --freshness=1d

Noise Filtering

Add these filters to reduce noisy log lines that consume context without providing value:

-jsonPayload.fields.message="Found log(s) in index range"
-jsonPayload.fields.message="Dispatching get_public_key"
NOT "Instantiated AWS signer"
-jsonPayload.fields.message="Ingesting leaf"
-jsonPayload.fields.message="Message already marked as processed in DB"
-jsonPayload.fields.message="Message destined for self, skipping"
-jsonPayload.fields.message="Message has already been delivered, marking as submitted."
-jsonPayload.fields.message="Popped OpQueue operations"
-jsonPayload.fields.message="Validator returned latest index"
-jsonPayload.fields.message="Found signed checkpoint"
-jsonPayload.fields.return="Ok(None)"
-jsonPayload.fields.message="Fast forwarded current sequence"
-jsonPayload.fields.message="Cursor can't make progress, sleeping"
-jsonPayload.fields.message="fallback_request"
-jsonPayload.fields.message="No message found in DB for leaf index"
-jsonPayload.fields.message="Processor working on message"
-jsonPayload.fields.message="Message destined for unknown domain, skipping"

Progressive Query Strategy (Token Efficiency)

Step 1: Fetch Message Field Only First

To minimize context consumption, first fetch only the message field:

gcloud logging read '[BASE_QUERY] AND "[search_term]"' --project=abacus-labs-dev --limit=30 --format='json(jsonPayload.fields.message,timestamp)' --freshness=1d

This gives you a quick overview without the full log payload.

Step 2: Get Full Context for Specific Entries

Once you identify interesting log entries, fetch full details:

gcloud logging read '[BASE_QUERY] AND "[specific_identifier]"' --project=abacus-labs-dev --limit=20 --format=json --freshness=1d

Step 3: Extract Specific Fields

When you need specific details, use jq or grep to extract:

gcloud logging read '[QUERY]' --format=json | jq '.[].jsonPayload.fields.error'

Common Query Patterns

Search by Message ID

gcloud logging read '[BASE_QUERY] AND "0x[MESSAGE_ID]"' --project=abacus-labs-dev --limit=50 --format=json --freshness=1d

Search for Errors/Warnings

gcloud logging read '[BASE_QUERY] AND severity>="WARNING"' --project=abacus-labs-dev --limit=50 --format=json --freshness=1d

Search by Chain/Domain

gcloud logging read '[BASE_QUERY] AND jsonPayload.spans.domain:"[chain_name]"' --project=abacus-labs-dev --limit=50 --format=json --freshness=1d

Search for Stuck Messages (High Retry Count)

gcloud logging read '[BASE_QUERY] AND jsonPayload.fields.num_retries>=5' --project=abacus-labs-dev --limit=30 --format=json --freshness=1d

Search for Gas Estimation Errors

gcloud logging read '[BASE_QUERY] AND "eth_estimateGas"' --project=abacus-labs-dev --limit=30 --format=json --freshness=1d

Search by App Context

gcloud logging read '[BASE_QUERY] AND jsonPayload.fields.app_context:"[APP_CONTEXT]"' --project=abacus-labs-dev --limit=30 --format=json --freshness=1d

Time Range Options

  • --freshness=1h - Last hour
  • --freshness=1d - Last day
  • --freshness=7d - Last week
  • Or use explicit timestamps in filter: timestamp>="2026-01-27T00:00:00Z"

Output Format Options

  • --format=json - Full JSON (verbose, high context)
  • --format='json(jsonPayload.fields.message,timestamp)' - Specific fields only (efficient)
  • --format='value(jsonPayload.fields.message)' - Just values, no structure

Key Log Fields to Focus On

FieldDescription
jsonPayload.fields.messageMain log message
jsonPayload.fields.errorError details
jsonPayload.spans[].domainChain involved
jsonPayload.fields.num_retriesRetry count
jsonPayload.fields.operationsPending message details
jsonPayload.span.idMessage ID in span context

Environment Variations

EnvironmentNamespaceCluster
mainnet3mainnet3hyperlane-mainnet
testnet4testnet4hyperlane-mainnet

Tips

  1. Always start specific - Search for exact message IDs or error patterns first
  2. Use noise filters - The base logs are very noisy; always filter
  3. Limit results - Use --limit to avoid overwhelming context
  4. Progressive detail - Start with message field only, expand as needed
  5. Time bound queries - Use --freshness or timestamp filters
  6. Pipe to grep/jq - Post-process large results locally

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Write a changeset file in the `hyperlane-registry` repo for a PR that adds, updates, or modifies warp route config / chain metadata / addresses. Canonical pattern — never run the interactive `pnpm changeset` CLI; write the file directly. Referenced by any skill that opens a registry PR.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hyperlane-xyz/hyperlane-monorepo772026년 10월 23일 업데이트

Trigger Docker image builds for Hyperlane agent, monorepo, or node service images. Use when the user wants to build new Docker images for a branch, commit, or tag.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hyperlane-xyz/hyperlane-monorepo772026년 10월 23일 업데이트

The low-level on-chain probes for identifying what an owner address is — cast code → EOA / EIP-7702-delegated EOA / contract, VERSION() → Gnosis Safe, read-only get-owner-ica.ts derive → ICA derivation, getAccountInfo → Sealevel account existence — with how to interpret each result. The primitive layer beneath validate-owners / resolve-artifacts / update-owners, which each apply their own per-chain or per-artifact policy on top.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hyperlane-xyz/hyperlane-monorepo772026년 10월 23일 업데이트

Review code changes using Hyperlane monorepo coding standards. Use when reviewing PRs, checking your own changes, or doing self-review before committing.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hyperlane-xyz/hyperlane-monorepo772026년 10월 23일 업데이트

Debug why a Hyperlane message is not being processed. Use when given a message ID or explorer URL to investigate delivery failures, gas estimation errors, validator issues, or other processing problems.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hyperlane-xyz/hyperlane-monorepo772026년 10월 23일 업데이트

Debug RPC provider health issues for a chain. Use when alerts mention RPC failures, high latency, stale blocks, or provider errors. Diagnoses the issue and recommends fixes.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hyperlane-xyz/hyperlane-monorepo772026년 10월 23일 업데이트

hyperlane-xyz의 스킬 모두 보기

이 스킬의 문제 신고