Faas
函数即服务 (FaaS) 属性
FaaS 属性
Attributes
| 键 | Stability | Value Type | 描述 | Example Values |
|---|---|---|---|---|
faas.coldstart | 布尔值 | 一个布尔值,如果 serverless 函数是第一次执行(即冷启动),则为 true。 | ||
faas.cron | 字符串 | 一个字符串,包含计划周期,采用 Cron 表达式 格式。 | 0/5 * * * ? * | |
faas.document.collection | 字符串 | 执行触发操作的源的名称。例如,在 Cloud Storage 或 S3 中对应存储桶名称,在 Cosmos DB 中对应数据库名称。 | myBucketName; myDbName | |
faas.document.name | 字符串 | 进行操作的文档/表名称。例如,在 Cloud Storage 或 S3 中是文件名,在 Cosmos DB 中是表名。 | myFile.txt; myTableName | |
faas.document.operation | 字符串 | 描述了对数据执行的操作类型。 | insert; edit; delete | |
faas.document.time | 字符串 | 一个字符串,包含数据访问时间,采用 ISO 8601 格式,用 UTC 表示。 | 2020-01-23T13:47:06Z | |
faas.instance | 字符串 | 执行环境 ID,字符串格式,可能会被重用于对同一函数/函数版本的其他调用。[1] | 2021/06/28/[$LATEST]2f399eb14537447da05ab2a2e39309de | |
faas.invocation_id | 字符串 | 当前函数调用的调用 ID。 | af9d5aa4-a685-4c5f-a22b-444f80b3cc28 | |
faas.invoked_name | 字符串 | 被调用函数的名称。[2] | my-function | |
faas.invoked_provider | 字符串 | 被调用函数的云提供商。[3] | alibaba_cloud; aws; azure | |
faas.invoked_region | 字符串 | 被调用函数的云区域。[4] | eu-central-1 | |
faas.max_memory | int | 分配给 serverless 函数的可用内存量,以字节为单位。[5] | 134217728 | |
faas.name | 字符串 | 此运行时实例执行的单个函数名称。[6] | my-function; myazurefunctionapp/some-function-name | |
faas.time | 字符串 | 一个字符串,包含函数调用时间,采用 ISO 8601 格式,用 UTC 表示。 | 2020-01-23T13:47:06Z | |
faas.trigger | 字符串 | 导致此函数调用的触发器类型。 | datasource; http; pubsub | |
faas.version | 字符串 | 正在执行的函数的不可变版本。[7] | 26; pinkfroid-00002 |
[1] faas.instance: - AWS Lambda: 使用(完整的)日志流名称。
[2] faas.invoked_name: 应等于被调用函数的 faas.name 资源属性。
[3] faas.invoked_provider: 应等于被调用函数的 cloud.provider 资源属性。
[4] faas.invoked_region: 应等于被调用函数的 cloud.region 资源属性。
[5] faas.max_memory: 建议设置此属性,因为例如过少的内存很容易导致 Java AWS Lambda 函数无法正常工作。在 AWS Lambda 上,环境变量 AWS_LAMBDA_FUNCTION_MEMORY_SIZE 提供了此信息(需要乘以 1,048,576)。
[6] faas.name: 这是在 FaaS 平台上配置/部署的函数的名称,通常与回调函数的名称不同(后者可能存储在 code.namespace/code.function.name span 属性中)。
对于某些云提供商,上述定义可能存在歧义。对于列出的云提供商/产品,必须使用以下函数名称定义作为此属性(以及因此的跨度名称)
- Azure: 完全名称
<FUNCAPP>/<FUNC>,即函数应用名称后跟一个正斜杠,再后跟函数名称(此形式也可在函数的资源 JSON 中看到)。这意味着必须使用跨度属性,因为 Azure 函数应用可以托管多个函数,这些函数通常会共享一个 TracerProvider(另请参阅cloud.resource_id属性)。
[7] faas.version: 根据云提供商和平台,使用
- AWS Lambda: 函数版本(表示为十进制字符串的整数)。
- Google Cloud Run (Services): 修订版本(即函数名称加上修订版本后缀)。
- Google Cloud Functions:
K_REVISION环境变量的值。 - Azure Functions: 不适用。请勿设置此属性。
faas.document.operation 具有以下已知值列表。如果其中一个适用,则必须使用相应的 值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
delete | 删除对象时。 | |
edit | 修改对象时。 | |
insert | 创建新对象时。 |
faas.invoked_provider 具有以下已知值列表。如果其中一个适用,则必须使用相应的 值;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
alibaba_cloud | 阿里云 | |
aws | Amazon Web Services | |
azure | Microsoft Azure | |
gcp | Google Cloud Platform | |
tencent_cloud | 腾讯云 |
faas.trigger 具有以下已知值列表。如果其中一个适用,则必须使用相应的owel;否则,可以使用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
datasource | 对某些数据源操作(如数据库或文件系统读/写)的响应 | |
http | 为响应入站 HTTP 请求而提供答案 | |
other | 如果以上都不适用 | |
pubsub | 设置一个函数,在消息发送到消息系统时执行 | |
timer | 调度函数定期执行 |