Source code

Revision control

Copy as Markdown

Other Tools

---
$title: Gecko Trace-Events Specification
$comment: >
A definition file describing traces collected by Gecko.
type: object
description: Top-level container object.
required: [events]
additionalProperties: false
properties:
events:
type: object
description: Map of event identifiers => event definition objects.
minProperties: 1
propertyNames:
type: string
pattern: "^[a-z][a-z0-9._]*$"
description: Lower-snake-case dotted event identifier
additionalProperties: false
patternProperties:
"^[a-z][a-z0-9._]*$": { $ref: "#/$defs/event" }
$defs:
event:
type: object
required: [description]
properties:
display_name:
type: string
description: >
Display name that appears in Telemetry.
If omitted the enclosing map key is used.
description:
type: string
minLength: 1
description: Human-readable description of the event.
inherits_from:
type: array
items:
type: string
pattern: "^[a-z][a-z0-9._]*$"
minItems: 1
uniqueItems: true
description: Other events this one extends.
attributes:
type: object
minProperties: 1
description: Event-specific attribute declarations.
propertyNames:
type: string
pattern: "^[a-z][a-z0-9._]*$"
additionalProperties: false
patternProperties:
"^[a-z][a-z0-9._]*$": { $ref: "#/$defs/attribute" }
additionalProperties: false
attribute:
type: object
required: [type, description]
properties:
type:
description: >
Allowed value type(s) for this attribute (scalar or array of scalars).
oneOf:
# single primitive
- $ref: "#/$defs/attributeValue"
# array of ONE primitive
- const: array
items:
type: object
properties:
type:
$ref: "#/$defs/attributeValue"
required: [type]
additionalProperties: false
description:
type: string
minLength: 1
description: Human-readable description of the attribute.
additionalProperties: false
if:
properties:
type: { const: array }
then:
required: [items]
else:
properties:
items: false
attributeValue:
$anchor: attributeValue
type: string
enum: ["boolean", "integer", "string"]