This document specifies all the data (along with the format) which gets sent from the Atom editor core to the GitHub analytics pipeline.
This does not include data that's logged by packages on other repositories. Here are links to the events specs of these packages:
There are 3 different types of events:
- Counters: Used to log the number of times a certain event happens. They don't contain any metadata or additional fields.
- Timing events: Used to log duration of certain actions.
- Standard events: Used to log any other action.
These events are used to count how many times a certain action happens. They don't hold any metadata and they only log the name of the counter and the number of times it was incremented.
Currently Atom core is not logging any counter events, but the GitHub package is using counters to log things like the number of created PRs.
Timing events log the duration that a specific action took plus some metadata that depends on the event.
field | type | description |
---|---|---|
eventType |
string |
Name of the event/action. |
date |
string |
Date when the event happened (In ISO 8601). |
durationInMilliseconds |
number |
The time it took to perform the action. |
metadata |
Object |
Any additional metadata. |
Window load time (more info)
-
eventType:
load
-
metadata
field value ec
core
-
eventType:
load
-
metadata
field value ec
shell
We're logging a bunch of markers to understand where is the startup time spent in Atom.
A list of all the markers can be found by using GitHub search.
-
eventType:
startup
-
metadata
field value ec
Label of the marker
Standard events have a free form and can log any data in its metadata
object. These are the most commonly used types of events.
field | type | description |
---|---|---|
eventType |
string |
Name of the event/action. |
date |
string |
Date when the event happened (In ISO 8601). |
metadata |
Object |
Any additional metadata. |
-
eventType:
window
-
metadata
field value t
event
ec
window
ea
started
field value t
event
ec
window
ea
ended
ev
Session duration (in ms).
-
eventType:
repository
-
metadata
field value action
open
domain
github.com
|gitlab.com
|bitbucket.org
|visualstudio.com
|amazonaws.com
|other
-
eventType:
file
-
metadata
field value t
event
ec
file
ea
open
el
source.${grammarType}
-
eventType:
command
-
metadata
field value t
event
ec
command
ea
First part of the command (until the colon). el
Executed command ev
Number of times that command has been executed in this session.
-
eventType:
appview
-
metadata
field value t
appview
cd
Pane item name. dt
Pane item grammar.
-
eventType:
package
-
metadata
field value t
event
ec
package
ea
numberOptionalPackagesActivatedAtStartup
ev
The number of non-bundled active packages at startup.
-
eventType:
key-binding
-
metadata
field value t
event
ec
key-binding
ea
numberUserDefinedKeyBindingsLoadedAtStartup
ev
The number of custom key bindings.
-
eventType:
customization
-
metadata
field value t
event
ec
customization
ea
userInitScriptChanged
-
eventType:
customization
-
metadata
field value t
event
ec
customization
ea
userStylesheetChanged
-
eventType:
setting
-
metadata
field value t
event
ec
setting
ea
core.telemetryConsent
el
limited
|no
-
eventType:
deprecation-v3
-
metadata
field value t
event
ec
deprecation-v3
ea
${packageName}@${version}
(e.gsettings@1.9.2
).el
deprecation message.
-
eventType:
exception
-
metadata
field value metadata.t
exception
exd
Exception stack trace. exf
0
|1
(whether Atom is in Dev mode).
All the timing and the standard events contain some common metadata fields which get always logged:
field name | type | description |
---|---|---|
cd2 |
string |
Processor architecture with correct detection of 64-Windows |
cd3 |
string |
Processor architecture (more info) |
cm1 |
number |
Size of used memory heap (in MiB). |
cm2 |
number |
Percentage of used heap (from 0-100). |
sr |
string |
Screen size in pixels (e.g 1024x768 ). |
vp |
string |
Atom window size in pixels (e.g 400x300 ). |
aiid |
string |
Release channel (stable | beta | dev | unrecognized ). |