Laminar events are fully-compatible with OpenTelemetry events. They are stored in the events field of the span object.

Event object

AttributeDescriptionTypeLaminar representation (if different)Example
nameName of the eventstringmy_event
time_unix_nanoTimestamp of the events in nanoseconds [1]numbertimestamp with Utc timezone1630000000000000000
attributesAttributes associated with the event. See belowKey-value pair. Value must be of AttributeType [2]{"gen_ai.usage.output_tokens": 369}

[1] In most OpenTelemetry client implementations, you don’t have to convert the timestamp to nanoseconds manually, you can simply pass the Date / datetime object and the client will convert it to nanoseconds.

[2] AttributeType is a union of string, number, boolean, Array<string>, Array<number>, Array<boolean>

Event attributes

AttributeDescriptionTypeExample
lmnr.event.typeType of the event. Must be default or evaluate for default and semantic events respectivelystringdefault

Default event attributes

AttributeDescriptionTypeExample
lmnr.event.valueValue of the event. Can be Boolean, String, or Number, or a sequence of each.AttributeType369

Evaluate event attributes

AttributeDescriptionTypeExample
lmnr.event.evaluatorName of the evaluator pipelinestringmy_pipeline
lmnr.event.dataInput to the evaluator pipelineKey-value pair, stringified json{"input_node_name": "Is your AI agent working at all???!!!"}
lmnr.event.envEnviroment for the evaluator pipeline. This gets sent with every event, and is not recorded in Laminar, so that none of your API keys are stored.Key-value pair, stringified JSON{"OPENAI_API_KEY": "my_openai_api_key"}