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

appsignal-logs

Query Ayunis deployed-environment telemetry in AppSignal — incidents, occurrence counts and error traces via the `appsignal-cli` binary; structured log attributes (user.id, org.id, nestjs.context, custom metadata) via the v2 logs API. Use when investigating a production/staging incident or log data — NOT for local dev logs (see backend-debugging).

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

ayunis-core/ayunis-core스타 34(GitHub 34 + cccskills 0)

실행 점수 미검증

설치 방법 보기

포함된 파일(1)

  • SKILL.md5.3 KB

SKILL.md(원문)

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

AppSignal

Ayunis ships backend logs and errors to AppSignal. There are two access paths and they answer different questions. Pick by the question, don't default to one.

Pick the tool by the question

QuestionTool
Is this incident still happening? How often, first/last seen?appsignal-cli
Which exception, what stack trace, which deploy?appsignal-cli
What did this log line actually carry — user.id, org.id, nestjs.context, custom metadata?v2 logs API

Incident-shaped ticket questions are answered from incident data, not from reading code. "Is this fix realistic?", "how often does this happen?", "is this still occurring after the last deploy?", "is this already fixed?" — all of these need appsignal-cli before you form an opinion. A full PR was once built and then closed as a duplicate because an earlier ticket had already suppressed the error in a deployed revision and nobody checked the live incident first.

appsignal-cli

The binary is appsignal-cli, not appsignal. command -v appsignal returning nothing does not mean the CLI is absent — check appsignal-cli.

It is already authenticated: the CLI holds its own OAuth token in its config file (~/Library/Application Support/appsignal/config.toml on macOS). Nothing needs to be fetched from Bitwarden to use the CLI.

appsignal-cli --help                 # discover the current command surface
appsignal-cli <subcommand> --help    # flags change between versions — check, don't guess
appsignal-cli apps list              # app ids + environments

The CLI covers apps, incidents (occurrence counts, first/last seen), error traces, log search/sources, and deploy markers. Read --help rather than guessing flags.

Always name the environment

Ayunis runs different config and different model deployments per environment. Before drawing any conclusion, confirm which app/environment you queried and say so in your report. A confident diagnosis built on production data presented as staging (or vice versa) is worse than no diagnosis — it has happened, and the whole analysis had to be thrown away.

The CLI's one blind spot — structured attributes

appsignal-cli renders only AppSignal's legacy attributes field, which AppSignal is phasing out. Modern structured attributes are emitted under a separate json field that the CLI does not display — so the CLI shows attributes: null (or an empty object) even when the line is rich with structured data.

Consequence: trusting the CLI for attribute presence produces a false-negative "the logs have no metadata / dotted keys are being dropped" diagnosis. That exact wrong conclusion has been reached twice. If a logging investigation hinges on "are attributes present?", query the v2 API — never answer that question from the CLI.

This is a narrow blind spot, not a reason to avoid the CLI for everything else.

Query the v2 logs API for attributes

Structured attributes live in the .json field of each returned line. The request shape below is the one that currently works — source_ids is an array, and a pagination object is required:

# TOKEN: the appsignal-cli OAuth token from its config.toml (see above), or an
# AppSignal API token from Bitwarden (search AppSignal). Pass via env; never inline.
curl -sS -X POST 'https://appsignal.com/api/v2/logs/lines' \
  -H "Authorization: Bearer ${TOKEN}" \
  -H 'Content-Type: application/json' \
  -d '{
        "from":       "2026-08-06T08:30:00Z",
        "to":         "2026-08-06T08:55:00Z",
        "source_ids": ["<log source id>"],
        "query":      "message:\"Thread deleted successfully\"",
        "pagination":  {"per_page": 100, "order": "ASC", "cursor": {"time": null}}
      }' \
| jq '.[] | {timestamp, message, json}'   # <-- .json holds the real attributes
  • Auth is the Authorization: Bearer header. The old ?token= query parameter and the site_id / source_id / limit body fields no longer work.
  • The .json field is where user.id, org.id, nestjs.context and custom metadata appear. .attributes is the legacy field the CLI reads — expect it empty.
  • Get the log source_id from appsignal-cli (log sources) or the AppSignal UI URL for the logs view.
  • Scope with from/to and query; set per_page explicitly.

If the API rejects a request, check AppSignal's current API docs before reverse-engineering — the schema has changed at least once.

Secrets

For the v2 API you can reuse the CLI's own token or fetch the AppSignal API token from Bitwarden. Per skill conventions, this SKILL.md names the secret; the agent fetches it (get-secret) and exports it before running the curl. Scripts must never call Bitwarden internally.

Scope

This skill is for AppSignal (deployed environments). For local dev-stack runtime errors, use the backend-debugging skill (./dev logs backend) — that is a different log source and a different workflow.

리뷰

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

댓글

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

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

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

0 / 1,000자

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

같은 저장소의 스킬

Ayunis Core backend specifics — module boundaries, key files, and project conventions. Complements the nestjs-hexagonal-backend skill.

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

ayunis-core/ayunis-core342026년 10월 26일 업데이트

Frontend development in ayunis-core. Use when creating, modifying, or debugging frontend code (React, Feature-Sliced Design, API client).

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

ayunis-core/ayunis-core342026년 10월 26일 업데이트

Debug backend runtime errors (500s, crashes, unexpected behavior). Use when something is broken at runtime — not for writing new code.

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

ayunis-core/ayunis-core342026년 10월 26일 업데이트

Shared test fixtures for backend specs — port mock factories, domain builders, and shared IDs in a per-module testing/ folder. Use when a module's *.use-case.spec.ts files repeat the same mock-repository literal, inline entity construction, or hardcoded UUIDs across files.

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

ayunis-core/ayunis-core342026년 10월 26일 업데이트

Analyze Cursor Bugbot PR comments through a root-cause lens: is the finding valid, and is the suggested fix the real fix or a bandaid over a deeper problem? Use when the user asks to check, assess, or triage bugbot comments.

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

ayunis-core/ayunis-core342026년 10월 26일 업데이트

Self-review local changes before creating a PR. Use when the user says "review", "review my code", "check my changes", or wants confidence before submitting.

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

ayunis-core/ayunis-core342026년 10월 26일 업데이트

ayunis-core의 스킬 모두 보기

이 스킬의 문제 신고