Span API
editSpan
API
editA span measures the duration of a single event.
When a span is created it will measure the time until span.end()
is called.
To get a Span
object,
you need to call apm.startSpan()
.
To see an example of using custom spans, see the Custom Spans in Node.js article.
span.transaction
editAdded in: v0.1.0
- Type: Transaction
A reference to the parent transaction object.
All spans belong to a transaction.
span.name
editAdded in: v0.1.0
-
<string>
Default:unnamed
The name of the span.
This can also be set via apm.startSpan()
.
span.type
editAdded in: v0.1.0
-
<string>
Default:custom
The type of span.
This can also be set via apm.startSpan()
.
The type is a hierarchical string used to group similar spans together.
For instance,
all spans of MySQL queries are given the type db.mysql.query
.
In the above example, db
is considered the type prefix.
Though there are no naming restrictions for this prefix,
the following are standardized across all Elastic APM agents:
app
, db
, cache
, template
, and ext
.
span.setTag(name, value)
editDeprecated in 2.10.0.
Replaced by span.setLabel(name, value)
Added in: v2.1.0
Set a tag on the span. You can set multiple tags on the same span.
span.setLabel(name, value)
editAdded in: v2.1.0
Renamed from span.setTag()
to span.setLabel()
: v2.10.0
Set a label on the span. You can set multiple labels on the same span.
span.addTags({ [name]: value })
editDeprecated in 2.10.0.
Replaced by span.addLabels({ [name]: value })
Added in: v2.1.0
-
tags
<Object>
Contains key/value pairs:
Add several tags on the span. You can add tags multiple times.
span.addLabels({ [name]: value })
editAdded in: v2.1.0
Renamed from span.addTags()
to span.addLabels()
: v2.10.0
-
labels
<Object>
Contains key/value pairs:
Add several labels on the span. You can add labels multiple times.
span.ids
editAdded in: v2.17.0
Produces an object containing span.id
and trace.id
.
This enables log correlation to APM traces with structured loggers.
{ "trace.id": "abc123", "span.id": "abc123" }
span.toString()
editAdded in: v2.17.0
Produces a string representation of the span to inject in log messages. This enables log correlation to APM traces with text-only loggers.
"trace.id=abc123 span.id=abc123"
span.end([endTime])
editAdded in: v0.1.0
-
endTime
<number>
The time when the span ended. Must be a Unix Time Stamp representing the number of milliseconds since January 1, 1970, 00:00:00 UTC. Sub-millisecond precision can be achieved using decimals. If not provided, the current time will be used
End the span. If the span has already ended, nothing happens.