Semantic Conventions for FaaS Metrics

Status: Experimental

This document defines how to describe an instance of a function that runs without provisioning or managing of servers (also known as serverless functions or Function as a Service (FaaS)) with metrics.

The conventions described in this section are FaaS (function as a service) specific. When FaaS operations occur, metric events about those operations will be generated and reported to provide insights into the operations. By adding FaaS attributes to metric events it allows for finely tuned filtering.

Metric Instruments

The following metric instruments describe FaaS operations.

FaaS Instance

The following metrics are recorded by the FaaS instance.

Metric: faas.invoke_duration

This metric is recommended.

Name Instrument Type Unit (UCUM) Description
faas.invoke_duration Histogram ms Measures the duration of the function’s logic execution
Attribute Type Description Examples Requirement Level
faas.trigger string Type of the trigger which caused this function invocation. datasource Recommended

faas.trigger MUST be one of the following:

Value Description
datasource A response to some data source operation such as a database or filesystem read/write
http To provide an answer to an inbound HTTP request
pubsub A function is set to be executed when messages are sent to a messaging system
timer A function is scheduled to be executed regularly
other If none of the others apply

Metric: faas.init_duration

This metric is recommended.

Name Instrument Type Unit (UCUM) Description
faas.init_duration Histogram ms Measures the duration of the function’s initialization, such as a cold start
Attribute Type Description Examples Requirement Level
faas.trigger string Type of the trigger which caused this function invocation. datasource Recommended

faas.trigger MUST be one of the following:

Value Description
datasource A response to some data source operation such as a database or filesystem read/write
http To provide an answer to an inbound HTTP request
pubsub A function is set to be executed when messages are sent to a messaging system
timer A function is scheduled to be executed regularly
other If none of the others apply

Metric: faas.coldstarts

This metric is recommended.

Name Instrument Type Unit (UCUM) Description
faas.coldstarts Counter {coldstart} Number of invocation cold starts
Attribute Type Description Examples Requirement Level
faas.trigger string Type of the trigger which caused this function invocation. datasource Recommended

faas.trigger MUST be one of the following:

Value Description
datasource A response to some data source operation such as a database or filesystem read/write
http To provide an answer to an inbound HTTP request
pubsub A function is set to be executed when messages are sent to a messaging system
timer A function is scheduled to be executed regularly
other If none of the others apply

Metric: faas.errors

This metric is recommended.

Name Instrument Type Unit (UCUM) Description
faas.errors Counter {error} Number of invocation errors
Attribute Type Description Examples Requirement Level
faas.trigger string Type of the trigger which caused this function invocation. datasource Recommended

faas.trigger MUST be one of the following:

Value Description
datasource A response to some data source operation such as a database or filesystem read/write
http To provide an answer to an inbound HTTP request
pubsub A function is set to be executed when messages are sent to a messaging system
timer A function is scheduled to be executed regularly
other If none of the others apply

Metric: faas.invocations

This metric is recommended.

Name Instrument Type Unit (UCUM) Description
faas.invocations Counter {invocation} Number of successful invocations
Attribute Type Description Examples Requirement Level
faas.trigger string Type of the trigger which caused this function invocation. datasource Recommended

faas.trigger MUST be one of the following:

Value Description
datasource A response to some data source operation such as a database or filesystem read/write
http To provide an answer to an inbound HTTP request
pubsub A function is set to be executed when messages are sent to a messaging system
timer A function is scheduled to be executed regularly
other If none of the others apply

Metric: faas.timeouts

This metric is recommended.

Name Instrument Type Unit (UCUM) Description
faas.timeouts Counter {timeout} Number of invocation timeouts
Attribute Type Description Examples Requirement Level
faas.trigger string Type of the trigger which caused this function invocation. datasource Recommended

faas.trigger MUST be one of the following:

Value Description
datasource A response to some data source operation such as a database or filesystem read/write
http To provide an answer to an inbound HTTP request
pubsub A function is set to be executed when messages are sent to a messaging system
timer A function is scheduled to be executed regularly
other If none of the others apply

Metric: faas.mem_usage

This metric is recommended.

Name Instrument Type Unit (UCUM) Description
faas.mem_usage Histogram By Distribution of max memory usage per invocation
Attribute Type Description Examples Requirement Level
faas.trigger string Type of the trigger which caused this function invocation. datasource Recommended

faas.trigger MUST be one of the following:

Value Description
datasource A response to some data source operation such as a database or filesystem read/write
http To provide an answer to an inbound HTTP request
pubsub A function is set to be executed when messages are sent to a messaging system
timer A function is scheduled to be executed regularly
other If none of the others apply

Metric: faas.cpu_usage

This metric is recommended.

Name Instrument Type Unit (UCUM) Description
faas.cpu_usage Histogram ms Distribution of CPU usage per invocation
Attribute Type Description Examples Requirement Level
faas.trigger string Type of the trigger which caused this function invocation. datasource Recommended

faas.trigger MUST be one of the following:

Value Description
datasource A response to some data source operation such as a database or filesystem read/write
http To provide an answer to an inbound HTTP request
pubsub A function is set to be executed when messages are sent to a messaging system
timer A function is scheduled to be executed regularly
other If none of the others apply

Metric: faas.net_io

This metric is recommended.

Name Instrument Type Unit (UCUM) Description
faas.net_io Histogram By Distribution of net I/O usage per invocation
Attribute Type Description Examples Requirement Level
faas.trigger string Type of the trigger which caused this function invocation. datasource Recommended

faas.trigger MUST be one of the following:

Value Description
datasource A response to some data source operation such as a database or filesystem read/write
http To provide an answer to an inbound HTTP request
pubsub A function is set to be executed when messages are sent to a messaging system
timer A function is scheduled to be executed regularly
other If none of the others apply

References

Metric References

Below are links to documentation regarding metrics that are available with different FaaS providers. This list is not exhaustive.