Attributes

Attributes define key metadata points to generate indices. These coroner indices are used for filtering, reporting, visualization and snapshot retrieval. They can be used to determine impact and investigate root cause by looking at interesting patterns. For example, you can request a distribution of process uptime or memory usage in real-time for any group of crashes.

We recommend you create an attribute for each metadata point added to your snapshots that you would like to query, group or filter on. For example, if you are adding customer to each snapshot belonging to this project, you should add "customer" as an attribute.

To create a attribute for this project, simply click "Create a New Attribute" at the top of the Attributes section, and enter name, type, format, and description of the attribute (see Attributes Details below.)

Configure Project - Attributes

Configuration

Name: Name of the attribute

Type: Data type of attribute. The following types are supported:

dictionary This type should be used to store low cardinality strings (less than 2B unique values). Examples would include commits, versions, environment, etc... This encoding is efficient in that any string already present in the dictionary only requires 4 bytes of space to store in the column.
uint64, uint32, uint16, uint8 These are unsigned integer types and can be used to store 64-bit, 32-bit, 16-bit and 8-bit integers respectively.

Format: Format of data type, used for rendering the value. The following formats are supported:

semver A semantic version string.
kilobytes, gigabytes, terabytes, bytes The underlying column is storing integer values, and those values are expected to be treated as the specified unit. This is only valid for integer types.
callstack The underlying column is storing a serialized JSON object that represents a callstack as a sequence of strings, where every element is a function. This is only valid for dictionary.
hostname The underlying column name is a machine hostname. This is only valid for dictionary.
memory_address The values represent memory addresses. They should be rendered as such. This is only valid for integer types.
seconds The values represent seconds since some user-defined epoch (for example, process.age is seconds since process start). Only valid for integers.
unix_timestamp The value represent a UNIX timestamp. Only valid for integers.
js_timestamp The value represents a Javascript timestamp. UNIX epoch in ms. Only valid for integers.
ipv4 The column stores ipv4 addresses. This should be only be used with uint32 type. Javascript must render value as an IP address (see morgue for example).
ipv6 The column stores ipv6 addresses. This can be used with dictionary type only.
username The column stores a reference to a coronerd username. This is for dictionary type only.
sha256 The column stores a sha256 value. Only valid for dictionary type.
url The column stores a valid web URL. Only valid for dictionary type.
none Just render the value as is.

Description: Description of the attribute

Commonly used attributes include version and dc, both as dictionary columns.