gcp-logs

- Investigating relayer, validator, or scraper behavior

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "gcp-logs" with this command: npx skills add hyperlane-xyz/hyperlane-monorepo/hyperlane-xyz-hyperlane-monorepo-gcp-logs

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

Field Description

jsonPayload.fields.message

Main log message

jsonPayload.fields.error

Error details

jsonPayload.spans[].domain

Chain involved

jsonPayload.fields.num_retries

Retry count

jsonPayload.fields.operations

Pending message details

jsonPayload.span.id

Message ID in span context

Environment Variations

Environment Namespace Cluster

mainnet3 mainnet3

hyperlane-mainnet

testnet4 testnet4

hyperlane-mainnet

Tips

  • Always start specific - Search for exact message IDs or error patterns first

  • Use noise filters - The base logs are very noisy; always filter

  • Limit results - Use --limit to avoid overwhelming context

  • Progressive detail - Start with message field only, expand as needed

  • Time bound queries - Use --freshness or timestamp filters

  • Pipe to grep/jq - Post-process large results locally

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

ll-feishu-audio

飞书语音交互技能。支持语音消息自动识别、AI 处理、语音回复全流程。需要配置 FEISHU_APP_ID 和 FEISHU_APP_SECRET 环境变量。使用 faster-whisper 进行语音识别,Edge TTS 进行语音合成,自动转换 OPUS 格式并通过飞书发送。适用于飞书平台的语音对话场景。

Archived SourceRecently Updated
General

test_skill

import json import tkinter as tk from tkinter import messagebox, simpledialog

Archived SourceRecently Updated
General

51mee-resume-profile

简历画像。触发场景:用户要求生成候选人画像;用户想了解候选人的多维度标签和能力评估。

Archived SourceRecently Updated
General

51mee-resume-parse

简历解析。触发场景:用户上传简历文件要求解析、提取结构化信息。

Archived SourceRecently Updated