Skip to main content

skill-frontend-instrumentation-otel

Instrumenta frontends Vite 3 + TypeScript com OpenTelemetry para Grafana, Tempo e Mimir (traces, Web Vitals, page views, cliques, erros). Use ao adicionar telemetria em novas páginas, configurar RUM ou revisar código de instrumentação existente.

설치로 이동

소스 정보

저장소
whitebeardit/.cursor
최근 소스 활동
2026년 3월 1일 22:17
감지된 SKILL.md 언어
포르투갈어
스타
12
포크
6

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
skill-frontend-instrumentation-otel
description
Instrumenta frontends Vite 3 + TypeScript com OpenTelemetry para Grafana, Tempo e Mimir (traces, Web Vitals, page views, cliques, erros). Use ao adicionar telemetria em novas páginas, configurar RUM ou revisar código de instrumentação existente.
# Instrumentação frontend OpenTelemetry (Grafana / Tempo / Mimir) ## Quando usar - Instrumentar nova página ou feature no frontend (Vite 3 + TypeScript / Vue). - Revisar PR ou trecho de código de instrumentação. - Dúvidas sobre nomes de métricas/spans ou mapeamento código → Grafana. --- ## Fluxo: instrumentar nova página Checklist: ``` - [ ] Entrypoint importa ./instrumentation antes do framework e do router - [ ] View importa usePageTelemetry e chama usePageTelemetry() no setup - [ ] Botões/ações principais chamam trackClick(buttonId, label?) com button_id estável - [ ] Elementos críticos têm data-telemetry-id ou data-testid para seletores estáveis - [ ] Novas métricas/atributos definidos em telemetry/names.ts; uso via constantes ``` **Passos:** 1. **Entrypoint** Garantir que o primeiro import seja da instrumentação (ex.: `import './instrumentation'` em `main.ts`) antes de `createApp`, router e montagem. 2. **View** No componente de página: `import { usePageTelemetry } from '@/composables/usePageTelemetry'` e no setup chamar `usePageTelemetry()`. O composable já registra page view no `onMounted`. 3. **Cliques** Em botões/ações principais: `trackClick(buttonId, label?)`. Usar `button_id` estável (ex.: `'save_settings'`, `'cta_home'`). Preferir `data-telemetry-id` ou `data-testid` no elemento para o span de jornada (`user.journey.click`) ter seletor estável. 4. **Novas métricas/atributos** Não usar literais. Adicionar constantes em `telemetry/names.ts` (ex.: nova métrica, novo atributo de span) e importar onde for usar. --- ## Fluxo: revisar código de instrumentação Checklist de revisão: ``` - [ ] Nomes centralizados em telemetry/names.ts; sem literais em instrumentation ou composables - [ ] SERVICE_NAME definido em names.ts e usado em Resource, getTracer, getMeter - [ ] Atributos de span com namespace semconv (dom.*, journey.*, session.id) - [ ] Métrica de erros: nome sem _total; labels apenas type/page/action (sem message) - [ ] Views usam usePageTelemetry() e trackClick com button_id estável - [ ] Comentários ou docs indicam mapeamento para o dashboard (opcional, recomendado) ``` Para cada item em falta: reportar e sugerir alteração concreta (trecho de código ou path do arquivo). --- ## Referências - Detalhes do plano, mapeamento código → Grafana e labels (`job` vs `service_name`): [reference.md](reference.md). - Código de referência no projeto: `telemetria/frontend/src/telemetry/names.ts`, `telemetria/frontend/src/instrumentation.ts`, `telemetria/frontend/src/composables/usePageTelemetry.ts`. - Doc de arquitetura: `telemetria/docs/frontend-opentelemetry.md`.
GitHub에서 보기