Analytics event tracking for OneKey. Use when adding tracking events, logging to server, user behavior tracking, or business metrics. Covers the @LogToServer decorator pattern, logger scope/scene architecture, and common pitfalls. Triggers on "埋点", "统计", "打点", "数据追踪", "日志", "analytics", "tracking event", "Mixpanel", "LogToServer", "trackEvent", "defaultLogger".
72
90%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
OneKey uses a decorator-based logger system to track user behavior events. Events are routed to the analytics server (Mixpanel) via @LogToServer() decorator on scene methods. NEVER call analytics.trackEvent() directly.
| Topic | Guide | Key Files |
|---|---|---|
| Adding events | adding-events.md | packages/shared/src/logger/scopes/ |
| Architecture | architecture.md | packages/shared/src/logger/base/ |
| Common pitfalls | pitfalls.md | — |
@LogToServer() decorator — never call analytics.trackEvent() directly// packages/shared/src/logger/scopes/{scope}/scenes/{scene}.ts
import { BaseScene } from '../../../base/baseScene';
import { LogToServer } from '../../../base/decorators';
export class MyScene extends BaseScene {
@LogToServer()
public myEventName(params: { key: string; value: string }) {
return params;
}
}// packages/shared/src/logger/scopes/{scope}/index.ts
import { MyScene } from './scenes/myScene';
export class MyScope extends BaseScope {
protected override scopeName = EScopeName.myScope;
myScene = this.createScene('myScene', MyScene);
}import { defaultLogger } from '@onekeyhq/shared/src/logger/logger';
defaultLogger.myScope.myScene.myEventName({ key: 'foo', value: 'bar' });| Decorator | Destination | Use Case |
|---|---|---|
@LogToServer() | Mixpanel analytics server | User behavior tracking, business metrics |
@LogToLocal() | Device local log (React Native logger) | Debugging, device-side diagnostics |
@LogToConsole() | Console only | Dev-time debugging |
Stack decorators for dual logging: @LogToServer() + @LogToLocal().
/1k-architecture — Import hierarchy rules (logger is in @onekeyhq/shared)/1k-coding-patterns — TypeScript and React conventions3cff1b4
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.