Skip to content

이벤트 레퍼런스 v0.5.0

SDK가 수집하는 모든 이벤트 타입을 카테고리별로 정리합니다. 총 62종입니다.

상호작용 (6종)

사용자가 봇에게 보내는 입력입니다. interactionCreate 리스너로 감지하며, 건별로 즉시 큐잉됩니다.

event_typeEVENT_TYPES 키설명
interaction_slashinteractionSlash슬래시 명령어(Chat Input Command) 실행
interaction_buttoninteractionButton버튼 클릭
interaction_selectinteractionSelect셀렉트 메뉴 선택
interaction_modalinteractionModal모달(폼) 제출
interaction_context_menuinteractionContextMenu사용자/메시지 컨텍스트 메뉴 실행
interaction_autocompleteinteractionAutocomplete자동완성 요청

data 필드:

필드타입필수설명
commandNamestring명령어 이름 (서브커맨드 포함 전체 경로)
interactionKindstring상호작용 종류 (1~50자)
interactionIdstring상호작용 고유 ID (최대 32자)
successboolean응답 성공 여부
deferredbooleandeferReply() 사용 여부
latencyMsnumber응답 지연 시간 (0~3,600,000ms)
deferMsnumberdefer까지 걸린 시간
completedboolean응답 완료 여부
timedOutboolean15초 내 미응답 시 true
shardIdinteger샤드 ID (0~32,767)
clusterIdinteger클러스터 ID (0~32,767)

자세한 내용은 상호작용 데이터 모델을 참고하세요.

작업 (22종)

봇이 Discord REST API를 호출하는 행위입니다. REST 메서드 패치로 감지하며, 건별로 즉시 큐잉됩니다.

메시지 (4종)

event_typeEVENT_TYPES 키REST 경로메서드
action_message_sendactionMessageSend/channels/{id}/messagesPOST
action_message_editactionMessageEdit/channels/{id}/messages/{id}PATCH
action_message_deleteactionMessageDelete/channels/{id}/messages/{id}DELETE
action_bulk_deleteactionBulkDelete/channels/{id}/messages/bulk-deletePOST

채널 (2종)

event_typeEVENT_TYPES 키REST 경로메서드
action_channel_editactionChannelEdit/channels/{id}PATCH
action_channel_deleteactionChannelDelete/channels/{id}DELETE

역할 (5종)

event_typeEVENT_TYPES 키REST 경로메서드
action_role_addactionRoleAdd/guilds/{id}/members/{id}/roles/{id}PUT
action_role_removeactionRoleRemove/guilds/{id}/members/{id}/roles/{id}DELETE
action_role_createactionRoleCreate/guilds/{id}/rolesPOST
action_role_editactionRoleEdit/guilds/{id}/roles/{id}PATCH
action_role_deleteactionRoleDelete/guilds/{id}/roles/{id}DELETE

멤버 (4종)

event_typeEVENT_TYPES 키REST 경로메서드
action_member_banactionMemberBan/guilds/{id}/bans/{id}PUT
action_member_unbanactionMemberUnban/guilds/{id}/bans/{id}DELETE
action_member_kickactionMemberKick/guilds/{id}/members/{id}DELETE
action_member_editactionMemberEdit/guilds/{id}/members/{id}PATCH

기타 (7종)

event_typeEVENT_TYPES 키REST 경로메서드
action_pinactionPin/channels/{id}/pins/{id}PUT
action_unpinactionUnpin/channels/{id}/pins/{id}DELETE
action_reactactionReact/channels/{id}/messages/{id}/reactions/...PUT
action_thread_createactionThreadCreate/channels/{id}/threadsPOST
action_permission_editactionPermissionEdit/channels/{id}/permissions/{id}PUT
action_invite_createactionInviteCreate/channels/{id}/invitesPOST
action_voice_sessionactionVoiceSession(음성 상태 추적)--

일반 작업 data 필드:

필드타입설명
shardIdinteger샤드 ID (0~32,767)
clusterIdinteger클러스터 ID (0~32,767)

action_voice_session data 필드:

필드타입필수설명
durationMsinteger세션 지속 시간 (ms)
peakListenersinteger최대 청취자 수 (봇 제외)
startedTsstring세션 시작 시각 (ISO-8601)
shardIdinteger샤드 ID
clusterIdinteger클러스터 ID

자세한 내용은 작업 데이터 모델을 참고하세요.

게이트웨이 이벤트 (24종)

Discord 게이트웨이에서 발생하는 서버 활동입니다. 60초 카운터로 집계하여 전송됩니다.

event_typeEVENT_TYPES 키discord.js 이벤트필요 인텐트
event_member_joineventMemberJoinguildMemberAddGuildMembers
event_member_leaveeventMemberLeaveguildMemberRemoveGuildMembers
event_member_updateeventMemberUpdateguildMemberUpdateGuildMembers
event_message_createeventMessageCreatemessageCreateGuildMessages
event_message_updateeventMessageUpdatemessageUpdateGuildMessages
event_message_deleteeventMessageDeletemessageDeleteGuildMessages
event_channel_createeventChannelCreatechannelCreateGuilds
event_channel_updateeventChannelUpdatechannelUpdateGuilds
event_channel_deleteeventChannelDeletechannelDeleteGuilds
event_role_createeventRoleCreateroleCreateGuilds
event_role_updateeventRoleUpdateroleUpdateGuilds
event_role_deleteeventRoleDeleteroleDeleteGuilds
event_ban_addeventBanAddguildBanAddGuildModeration
event_ban_removeeventBanRemoveguildBanRemoveGuildModeration
event_reaction_addeventReactionAddmessageReactionAddGuildMessageReactions
event_reaction_removeeventReactionRemovemessageReactionRemoveGuildMessageReactions
event_voice_stateeventVoiceStatevoiceStateUpdateGuilds
event_thread_createeventThreadCreatethreadCreateGuilds
event_thread_updateeventThreadUpdatethreadUpdateGuilds
event_thread_deleteeventThreadDeletethreadDeleteGuilds
event_invite_createeventInviteCreateinviteCreateGuilds
event_invite_deleteeventInviteDeleteinviteDeleteGuilds
event_typing_starteventTypingStarttypingStartGuildMessageTyping
event_presence_updateeventPresenceUpdatepresenceUpdateGuildPresences

참고

GuildMembersGuildPresences는 특권 인텐트입니다. Discord Developer Portal에서 활성화해야 합니다.

data 필드:

필드타입필수설명
countinteger집계 기간(60초) 동안 발생한 건수

자세한 내용은 이벤트 데이터 모델을 참고하세요.

오류 (2종)

event_typeEVENT_TYPES 키감지 방식
command_errorcommandError상호작용 응답 메서드(reply 등) reject/throw 시
errorerrorcaptureError() 호출 또는 autoCapturePromiseRejections

command_error data 필드:

필드타입필수설명
namestring오류 이름 (1~200자)
messagestring오류 메시지 (최대 2 KiB)
stackstring스택 트레이스 (최대 8 KiB)
commandNamestring관련 명령어 이름
interactionKindstring상호작용 종류
interactionIdstring원래 상호작용 이벤트와 연결하는 ID
phasestring오류 발생 단계 (최대 50자)
shardIdinteger샤드 ID
clusterIdinteger클러스터 ID

error data 필드:

필드타입필수설명
namestring오류 이름 (1~200자)
messagestring오류 메시지 (최대 2 KiB)
stackstring스택 트레이스 (최대 8 KiB)
sourcestring오류 출처 (최대 50자)
shardIdinteger샤드 ID
clusterIdinteger클러스터 ID

서버 (2종)

event_typeEVENT_TYPES 키감지 방식
guild_joinguildJoinguildCreate (unavailable 제외)
guild_leaveguildLeaveguildDelete (unavailable 제외)

unavailable 필터링

Discord 장애로 서버가 일시적으로 unavailable 상태가 되면 guildDelete 이벤트가 발생합니다. SDK는 available === false인 경우를 무시하여 실제 탈퇴만 기록합니다.

data 필드:

필드타입설명
memberCountinteger서버 멤버 수
guildNamestring서버 이름 (최대 100자)
localestring서버 로케일 (최대 10자)
shardIdinteger샤드 ID
clusterIdinteger클러스터 ID

샤드 생명주기 (4종)

event_typeEVENT_TYPES 키discord.js 이벤트
shard_readyshardReadyshardReady
shard_disconnectshardDisconnectshardDisconnect
shard_resumeshardResumeshardResume
shard_reconnectingshardReconnectingshardReconnecting

data 필드:

필드타입설명
shardIdinteger샤드 ID (0~32,767)
clusterIdinteger클러스터 ID (0~32,767)
closeCodeinteger종료 코드 (0~65,535, disconnect 시에만)
replayedEventsinteger재생된 이벤트 수 (resume 시에만)

스냅샷 (3종)

스냅샷은 events 테이블에 저장되지 않으며, 할당량에 포함되지 않습니다.

heartbeat

snapshotIntervalMs 주기(기본 60초)마다 수집되는 봇 상태 스냅샷입니다.

필드타입설명
guildCountinteger캐시된 서버 수
wsPingMsnumberWebSocket 핑 (ms)
memoryMbnumber메모리 사용량 (MB)
cpuPercentnumberCPU 사용률 (0~100)
voiceConnectionsinteger활성 음성 연결 수
eventLoopP95Msnumber이벤트 루프 P95 (ms)
gatewayEventsinteger윈도우 내 게이트웨이 이벤트 수
apiRequestsinteger윈도우 내 REST API 요청 수
api429Globalinteger글로벌 429 횟수
api429Bucketinteger버킷 429 횟수
apiInvalidinteger잘못된 API 요청 수
botUserIdstring봇 사용자 ID
botAvatarHashstring봇 아바타 해시
shardIdinteger샤드 ID
clusterIdinteger클러스터 ID

guild_snapshot

snapshotIntervalMs 주기마다 캐시된 각 서버의 상태를 기록합니다.

필드타입설명
memberCountinteger서버 멤버 수
onlineCountinteger온라인 멤버 수 (GuildPresences 인텐트 필요)
guildNamestring서버 이름 (최대 100자)
localestring서버 로케일 (최대 10자)
shardIdinteger샤드 ID
clusterIdinteger클러스터 ID

api_routes_snapshot

5분 주기로 상위 10개 API 라우트 사용 통계를 수집합니다 (유휴 시 건너뜀).

필드타입필수설명
routesarray상위 10개 라우트 배열
routes[].routestringAPI 라우트 경로 (스노우플레이크 정규화, 1~120자)
routes[].countinteger호출 횟수
shardIdinteger샤드 ID
clusterIdinteger클러스터 ID

커스텀 (1종)

event_typeEVENT_TYPES 키감지 방식
customcustomtrack(name, props) 호출

data 필드:

필드타입필수설명
namestring이벤트 이름 (최대 256바이트 UTF-8)
propsobject속성 (최대 50키, 키당 100자, 전체 8 KiB)
shardIdinteger샤드 ID
clusterIdinteger클러스터 ID

disabledEvents로 비활성화할 수 없습니다. 자세한 사용법은 커스텀 이벤트를 참고하세요.

레거시 이벤트 이름

v0.5.0에서 이름이 변경된 이벤트입니다. 이전 이름도 하위 호환을 위해 지원됩니다.

이전 이름현재 이름EVENT_TYPES 키
message_sentaction_message_sendmessageSent (deprecated) → actionMessageSend
voice_sessionaction_voice_sessionvoiceSession (deprecated) → actionVoiceSession

데이터 보호 요약

항목제한
문자열 속성개당 최대 4 KiB
이벤트 data 전체최대 16 KiB
오류 name최대 200자
오류 message최대 2 KiB
오류 stack최대 8 KiB
중첩 깊이최대 8단계
배열 항목최대 100개
객체 키최대 100개
순환 참조자동 제거
직렬화 불가능 값자동 제거 (함수, Symbol, undefined)

Dicolytics — Discord bot analytics