393 lines
22 KiB
Markdown
393 lines
22 KiB
Markdown
<!--- Hugo front matter used to generate the website version of this page:
|
|
linkTitle: Metrics
|
|
--->
|
|
|
|
# Semantic conventions for FaaS metrics
|
|
|
|
**Status**: [Development][DocumentStatus]
|
|
|
|
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.
|
|
|
|
<!-- toc -->
|
|
|
|
- [Metric instruments](#metric-instruments)
|
|
- [FaaS instance](#faas-instance)
|
|
- [Metric: `faas.invoke_duration`](#metric-faasinvoke_duration)
|
|
- [Metric: `faas.init_duration`](#metric-faasinit_duration)
|
|
- [Metric: `faas.coldstarts`](#metric-faascoldstarts)
|
|
- [Metric: `faas.errors`](#metric-faaserrors)
|
|
- [Metric: `faas.invocations`](#metric-faasinvocations)
|
|
- [Metric: `faas.timeouts`](#metric-faastimeouts)
|
|
- [Metric: `faas.mem_usage`](#metric-faasmem_usage)
|
|
- [Metric: `faas.cpu_usage`](#metric-faascpu_usage)
|
|
- [Metric: `faas.net_io`](#metric-faasnet_io)
|
|
- [References](#references)
|
|
- [Metric references](#metric-references)
|
|
|
|
<!-- tocstop -->
|
|
|
|
## 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][MetricRecommended].
|
|
|
|
This metric SHOULD be specified with
|
|
[`ExplicitBucketBoundaries`](https://github.com/open-telemetry/opentelemetry-specification/tree/v1.47.0/specification/metrics/api.md#instrument-advisory-parameters)
|
|
of `[ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 ]`.
|
|
|
|
<!-- semconv metric.faas.invoke_duration -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|
|
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
|
|
| `faas.invoke_duration` | Histogram | `s` | Measures the duration of the function's logic execution. |  | |
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`faas.trigger`](/docs/registry/attributes/faas.md) | string | Type of the trigger which caused this function invocation. | `datasource`; `http`; `pubsub` | `Recommended` |  |
|
|
|
|
---
|
|
|
|
`faas.trigger` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
|
|
|
|
| Value | Description | Stability |
|
|
|---|---|---|
|
|
| `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 |  |
|
|
| `other` | If none of the others apply |  |
|
|
| `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 |  |
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
#### Metric: `faas.init_duration`
|
|
|
|
This metric is [recommended][MetricRecommended].
|
|
|
|
This metric SHOULD be specified with
|
|
[`ExplicitBucketBoundaries`](https://github.com/open-telemetry/opentelemetry-specification/tree/v1.47.0/specification/metrics/api.md#instrument-advisory-parameters)
|
|
of `[ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 ]`.
|
|
|
|
<!-- semconv metric.faas.init_duration -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|
|
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
|
|
| `faas.init_duration` | Histogram | `s` | Measures the duration of the function's initialization, such as a cold start. |  | |
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`faas.trigger`](/docs/registry/attributes/faas.md) | string | Type of the trigger which caused this function invocation. | `datasource`; `http`; `pubsub` | `Recommended` |  |
|
|
|
|
---
|
|
|
|
`faas.trigger` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
|
|
|
|
| Value | Description | Stability |
|
|
|---|---|---|
|
|
| `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 |  |
|
|
| `other` | If none of the others apply |  |
|
|
| `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 |  |
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
#### Metric: `faas.coldstarts`
|
|
|
|
This metric is [recommended][MetricRecommended].
|
|
|
|
<!-- semconv metric.faas.coldstarts -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|
|
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
|
|
| `faas.coldstarts` | Counter | `{coldstart}` | Number of invocation cold starts. |  | |
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`faas.trigger`](/docs/registry/attributes/faas.md) | string | Type of the trigger which caused this function invocation. | `datasource`; `http`; `pubsub` | `Recommended` |  |
|
|
|
|
---
|
|
|
|
`faas.trigger` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
|
|
|
|
| Value | Description | Stability |
|
|
|---|---|---|
|
|
| `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 |  |
|
|
| `other` | If none of the others apply |  |
|
|
| `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 |  |
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
#### Metric: `faas.errors`
|
|
|
|
This metric is [recommended][MetricRecommended].
|
|
|
|
<!-- semconv metric.faas.errors -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|
|
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
|
|
| `faas.errors` | Counter | `{error}` | Number of invocation errors. |  | |
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`faas.trigger`](/docs/registry/attributes/faas.md) | string | Type of the trigger which caused this function invocation. | `datasource`; `http`; `pubsub` | `Recommended` |  |
|
|
|
|
---
|
|
|
|
`faas.trigger` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
|
|
|
|
| Value | Description | Stability |
|
|
|---|---|---|
|
|
| `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 |  |
|
|
| `other` | If none of the others apply |  |
|
|
| `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 |  |
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
#### Metric: `faas.invocations`
|
|
|
|
This metric is [recommended][MetricRecommended].
|
|
|
|
<!-- semconv metric.faas.invocations -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|
|
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
|
|
| `faas.invocations` | Counter | `{invocation}` | Number of successful invocations. |  | |
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`faas.trigger`](/docs/registry/attributes/faas.md) | string | Type of the trigger which caused this function invocation. | `datasource`; `http`; `pubsub` | `Recommended` |  |
|
|
|
|
---
|
|
|
|
`faas.trigger` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
|
|
|
|
| Value | Description | Stability |
|
|
|---|---|---|
|
|
| `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 |  |
|
|
| `other` | If none of the others apply |  |
|
|
| `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 |  |
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
#### Metric: `faas.timeouts`
|
|
|
|
This metric is [recommended][MetricRecommended].
|
|
|
|
<!-- semconv metric.faas.timeouts -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|
|
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
|
|
| `faas.timeouts` | Counter | `{timeout}` | Number of invocation timeouts. |  | |
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`faas.trigger`](/docs/registry/attributes/faas.md) | string | Type of the trigger which caused this function invocation. | `datasource`; `http`; `pubsub` | `Recommended` |  |
|
|
|
|
---
|
|
|
|
`faas.trigger` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
|
|
|
|
| Value | Description | Stability |
|
|
|---|---|---|
|
|
| `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 |  |
|
|
| `other` | If none of the others apply |  |
|
|
| `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 |  |
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
#### Metric: `faas.mem_usage`
|
|
|
|
This metric is [recommended][MetricRecommended].
|
|
|
|
<!-- semconv metric.faas.mem_usage -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|
|
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
|
|
| `faas.mem_usage` | Histogram | `By` | Distribution of max memory usage per invocation. |  | |
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`faas.trigger`](/docs/registry/attributes/faas.md) | string | Type of the trigger which caused this function invocation. | `datasource`; `http`; `pubsub` | `Recommended` |  |
|
|
|
|
---
|
|
|
|
`faas.trigger` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
|
|
|
|
| Value | Description | Stability |
|
|
|---|---|---|
|
|
| `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 |  |
|
|
| `other` | If none of the others apply |  |
|
|
| `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 |  |
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
#### Metric: `faas.cpu_usage`
|
|
|
|
This metric is [recommended][MetricRecommended].
|
|
|
|
This metric SHOULD be specified with
|
|
[`ExplicitBucketBoundaries`](https://github.com/open-telemetry/opentelemetry-specification/tree/v1.47.0/specification/metrics/api.md#instrument-advisory-parameters)
|
|
of `[ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10 ]`.
|
|
|
|
<!-- semconv metric.faas.cpu_usage -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|
|
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
|
|
| `faas.cpu_usage` | Histogram | `s` | Distribution of CPU usage per invocation. |  | |
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`faas.trigger`](/docs/registry/attributes/faas.md) | string | Type of the trigger which caused this function invocation. | `datasource`; `http`; `pubsub` | `Recommended` |  |
|
|
|
|
---
|
|
|
|
`faas.trigger` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
|
|
|
|
| Value | Description | Stability |
|
|
|---|---|---|
|
|
| `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 |  |
|
|
| `other` | If none of the others apply |  |
|
|
| `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 |  |
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
#### Metric: `faas.net_io`
|
|
|
|
This metric is [recommended][MetricRecommended].
|
|
|
|
<!-- semconv metric.faas.net_io -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
| Name | Instrument Type | Unit (UCUM) | Description | Stability | Entity Associations |
|
|
| -------- | --------------- | ----------- | -------------- | --------- | ------ |
|
|
| `faas.net_io` | Histogram | `By` | Distribution of net I/O usage per invocation. |  | |
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`faas.trigger`](/docs/registry/attributes/faas.md) | string | Type of the trigger which caused this function invocation. | `datasource`; `http`; `pubsub` | `Recommended` |  |
|
|
|
|
---
|
|
|
|
`faas.trigger` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
|
|
|
|
| Value | Description | Stability |
|
|
|---|---|---|
|
|
| `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 |  |
|
|
| `other` | If none of the others apply |  |
|
|
| `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 |  |
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
## References
|
|
|
|
### Metric references
|
|
|
|
Below are links to documentation regarding metrics that are available with different
|
|
FaaS providers. This list is not exhaustive.
|
|
|
|
* [AWS Lambda Metrics](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-metrics.html)
|
|
* [AWS Lambda Insight Metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Lambda-Insights-metrics.html)
|
|
* [Azure Functions Metrics](https://docs.microsoft.com/azure/azure-monitor/platform/metrics-supported)
|
|
* [Google CloudFunctions Metrics](https://cloud.google.com/monitoring/api/metrics_gcp#gcp-cloudfunctions)
|
|
* [OpenFaas Metrics](https://docs.openfaas.com/architecture/metrics/)
|
|
|
|
[DocumentStatus]: https://opentelemetry.io/docs/specs/otel/document-status
|
|
[MetricRecommended]: /docs/general/metric-requirement-level.md#recommended
|