Azure Functions

编辑

版本

0.8.0 [beta] 此功能处于 Beta 阶段,可能会发生变化。其设计和代码不如正式 GA 功能成熟,并且按“原样”提供,不提供任何担保。Beta 功能不受官方 GA 功能的支持 SLA 约束。 (查看所有)

兼容的 Kibana 版本

8.13.0 或更高版本

支持的无服务器项目类型
这是什么?

安全
可观测性

订阅级别
这是什么?

基本

支持级别
这是什么?

Elastic

Azure Functions 集成允许你监视 Azure Functions。Azure Functions 是一个事件驱动的无服务器计算平台,可帮助你使用你选择的编程语言更高效地进行开发。触发器会导致函数运行。触发器定义如何调用函数,并且一个函数必须恰好有一个触发器。

使用 Azure Functions 构建 Web API、响应数据库更改、处理 IoT 流、管理消息队列等等。有关详细信息,请参阅常见的 Azure Functions 场景

托管计划和指标

编辑

每个 Azure Functions 应用都需要一个托管计划:消耗计划、弹性消耗计划、高级计划、专用计划或容器应用。有关各种计划的更多详细信息,请查看 Azure Functions 托管选项

这些计划在生成的指标数量上互不相同,然后这些指标会导出到 Azure 之外,供其他监视解决方案(如 Elastic Observability)使用。例如,特定于 Azure Function Apps 的指标(如 FunctionExecutionCountFunctionExecutionUnits)仅适用于在消耗(无服务器)计划上运行的函数应用,并且在其他计划中不可见。另一方面,所有其他指标都专门为高级计划和专用计划生成,并且不适用于消耗计划。

数据流

编辑

Azure Functions 集成包含两个数据流:函数应用日志指标

日志
编辑

支持的日志类别

日志类别 描述

Functionapplogs

函数应用日志。

要求和设置
编辑

有关设置和使用此集成的更多信息,请参阅 Azure 日志页面。

配置选项
编辑

eventhub : 字符串 事件中心是一项完全托管的实时数据引入服务。Elastic 建议仅使用字母、数字和连字符 (-) 作为事件中心名称,以最大化兼容性。你可以使用事件中心名称中带有下划线 (_) 的现有事件中心;在这种情况下,当集成使用事件中心名称在后台创建依赖的 Azure 资源时(例如,用于存储事件中心使用者偏移量的存储帐户容器),会将下划线替换为连字符 (-)。Elastic 还建议为每种日志类型使用单独的事件中心,因为每种日志类型的字段映射不同。默认值为 insights-operational-logs

consumer_group : 字符串 事件中心的发布/订阅机制通过使用者组启用。使用者组是整个事件中心的视图(状态、位置或偏移量)。使用者组使多个使用者应用程序可以各自拥有事件流的单独视图,并以自己的速度和自己的偏移量独立读取该流。默认值:$Default

connection_string : 字符串 需要连接字符串才能与事件中心通信,请参阅此处的步骤。

为了存储/检索/更新事件中心消息的偏移量或状态,需要一个 Blob 存储帐户。这意味着在停止 Azure 日志包后,它可以从停止处理消息的位置重新启动。

storage_account : 字符串 将存储和更新状态/偏移量的存储帐户的名称。

storage_account_key : 字符串 存储帐户密钥,此密钥将用于授权访问存储帐户中的数据。

storage_account_container : 字符串 集成存储使用者组的检查点数据的存储帐户容器。这是一个高级选项,请谨慎使用。你必须为每种 Azure 日志类型(活动、登录、审核日志等)使用专用的存储帐户容器。请勿将同一容器名称重复用于多个 Azure 日志类型。有关 Microsoft 的命名规则的详细信息,请参阅 容器名称。如果未指定,集成将生成一个默认容器名称。

resource_manager_endpoint : 字符串 可选,默认情况下我们使用的是 Azure 公共环境,要覆盖,用户可以提供特定的资源管理器终结点以使用不同的 Azure 环境。

资源管理器终结点

# Azure ChinaCloud
https://management.chinacloudapi.cn/

# Azure GermanCloud
https://management.microsoftazure.de/

# Azure PublicCloud
https://management.azure.com/

# Azure USGovernmentCloud
https://management.usgovcloudapi.net/
示例

以下是 functionapplogs 的示例事件

{
    "@timestamp": "2023-05-23T20:11:59.000Z",
    "azure": {
        "category": "FunctionAppLogs",
        "function": {
            "app_name": "test-function",
            "category": "Function.hello",
            "event_name": "FunctionStarted",
            "host_instance_id": "bb84c437-4c26-4d0b-a06d-7fc2f16976e3",
            "host_version": "4.19.2.2",
            "invocation_id": "d878e365-b3d6-4796-9292-7500acd0c677",
            "level": "Information",
            "level_id": 2,
            "message": "Executing Functions.hello (Reason=This function was programmatically called via the host APIs., Id=d878e365-b3d6-4796-9292-7500acd0c677)",
            "name": "Functions.hello",
            "process_id": 67,
            "role_instance": "54108609-638204200593759681"
        },
        "operation_name": "Microsoft.Web/sites/functions/log",
        "resource": {
            "group": "TEST-RG",
            "id": "/SUBSCRIPTIONS/12CABCB4-86E8-404F-A3D2-1DC9982F45CA/RESOURCEGROUPS/TEST-RG/PROVIDERS/MICROSOFT.WEB/SITES/TEST-FUNCTION",
            "name": "TEST-FUNCTION",
            "provider": "MICROSOFT.WEB/SITES"
        },
        "subscription_id": "12CABCB4-86E8-404F-A3D2-1DC9982F45CA"
    },
    "cloud": {
        "account": {
            "id": "12CABCB4-86E8-404F-A3D2-1DC9982F45CA"
        },
        "provider": "azure"
    },
    "ecs": {
        "version": "8.11.0"
    },
    "event": {
        "original": "{\"time\":\"2023-05-23T20:11:59Z\",\"resourceId\":\"/SUBSCRIPTIONS/12CABCB4-86E8-404F-A3D2-1DC9982F45CA/RESOURCEGROUPS/TEST-RG/PROVIDERS/MICROSOFT.WEB/SITES/TEST-FUNCTION\",\"category\":\"FunctionAppLogs\",\"operationName\":\"Microsoft.Web/sites/functions/log\",\"level\":\"Informational\",\"location\":\"East US\",\"properties\":{\"appName\":\"test-function\",\"roleInstance\":\"54108609-638204200593759681\",\"message\":\"Executing Functions.hello (Reason=This function was programmatically called via the host APIs., Id=d878e365-b3d6-4796-9292-7500acd0c677)\",\"category\":\"Function.hello\",\"hostVersion\":\"4.19.2.2\",\"functionInvocationId\":\"d878e365-b3d6-4796-9292-7500acd0c677\",\"functionName\":\"Functions.hello\",\"hostInstanceId\":\"bb84c437-4c26-4d0b-a06d-7fc2f16976e3\",\"level\":\"Information\",\"levelId\":2,\"processId\":67,\"eventId\":1,\"eventName\":\"FunctionStarted\"}}"
    },
    "observer": {
        "product": "Azure Functions",
        "type": "functions",
        "vendor": "Azure"
    },
    "tags": [
        "preserve_original_event"
    ]
}

ECS 字段参考

有关 ECS 字段的详细信息,请参阅以下 文档

导出的字段
字段 描述 类型

@timestamp

事件时间戳。

日期

azure.category

日志类别名称。

关键词

azure.function.app_name

函数应用程序名称。

关键词

azure.function.category

操作类别。

关键词

azure.function.event_id

事件 ID。

长整型

azure.function.event_name

事件名称。

关键词

azure.function.exception_details

异常详细信息。包括异常类型、消息和堆栈跟踪。

match_only_text

azure.function.exception_message

异常消息。

match_only_text

azure.function.exception_type

异常类型。

关键词

azure.function.host_instance_id

主机实例 ID。

关键词

azure.function.host_version

Functions 主机版本。

关键词

azure.function.invocation_id

记录消息的调用 ID。

关键词

azure.function.level

日志级别。有效值为 Trace、Debug、Information、Warning、Error 或 Critical。

关键词

azure.function.level_id

日志级别的整数值。有效值为 0(跟踪)、1(调试)、2(信息)、3(警告)、4(错误)或 5(严重)。

长整型

azure.function.message

日志消息。

关键词

azure.function.name

记录消息的函数的名称。

关键词

azure.function.process_id

进程 ID。

长整型

azure.function.role_instance

角色实例 ID。

关键词

azure.operation_name

操作名称。

关键词

azure.resource.group

Azure 资源组

关键词

azure.resource.id

资源 ID

关键词

azure.resource.name

名称

关键词

azure.resource.provider

资源类型/命名空间

关键词

azure.subscription_id

Azure 订阅 ID

关键词

azure.tenant_id

租户 ID

关键词

data_stream.dataset

数据流数据集名称。

常量_关键词

data_stream.namespace

数据流命名空间。

常量_关键词

data_stream.type

数据流类型。

常量_关键词

dataset.name

数据集名称。

常量_关键词

dataset.namespace

数据集命名空间。

常量_关键词

dataset.type

数据集类型。

常量_关键词

指标
编辑

指标可让你深入了解 Azure 函数应用的性能。集成包括一个开箱即用的仪表板,用于可视化 Azure Functions 中托管的应用生成的监视数据。

要求
编辑

要使用此集成,你需要

  • Azure 应用程序注册:你需要设置一个 Azure 应用程序注册,以允许代理访问 Azure API。应用程序注册需要具有“监视读取者”角色才能访问,以便能够从函数应用收集指标。请参阅“设置”部分中的更多详细信息。
  • Elasticsearch 和 Kibana:你需要 Elasticsearch 来存储和搜索数据,并需要 Kibana 来可视化和管理数据。你可以使用我们在 Elastic Cloud 上的托管 Elasticsearch 服务(推荐)、本机 Azure 集成或在你的硬件上自行管理 Elastic Stack。
设置
编辑
         ┌────────────────────┐       ┌─────────┐       ┌─-─────────────────────┐
         │                    │       │         │       │    azure.functions    │
         │     Azure APIs     │──────▶│  Agent  │──────▶│    <<data stream>>    │
         │                    │       │         │       │                       │
         └────────────────────┘       └─────────┘       └───-───────────────────┘

Elastic Agent 需要应用程序注册才能代表你访问 Azure,以使用 Azure REST API 收集数据。需要应用程序注册才能以编程方式访问 Azure API。

要开始使用此集成收集数据,你需要

  • 通过注册应用程序、添加凭据和分配适当的角色来设置新的 Azure 应用程序注册。
  • 在 Kibana 中指定集成 设置,这将确定集成如何访问 Azure API。
注册新应用
编辑

要创建新的应用程序注册,请

  1. 登录 Azure 门户
  2. 搜索并选择 Microsoft Entra ID
  3. 管理 下,选择 应用注册 > 新建注册
  4. 为你的应用程序输入一个显示名称(例如,“elastic-agent”)。
  5. 指定谁可以使用该应用程序。
  6. 重定向 URI 不要输入任何内容。这是可选的,代理不使用它。
  7. 选择 注册 完成初始应用注册。

记下 应用程序(客户端)ID,稍后在集成设置中指定 客户端 ID 时会用到。

添加凭据
编辑

凭据允许你的应用程序访问 Azure API 并进行身份验证,无需在运行时与用户交互。

此集成使用客户端密钥来证明其身份。

  1. Azure 门户中,选择你在上一节中创建的应用程序。
  2. 选择 证书 & 机密 > 客户端机密 > 新建客户端机密
  3. 添加描述(例如,“Elastic Agent 客户端机密”)。
  4. 选择机密的过期时间或指定自定义生命周期。
  5. 选择 添加

记下 客户端机密 表中 列中的内容,稍后在集成设置中指定 客户端机密 时会用到。离开此页面后,此机密值将不再显示。 将机密值记录在安全的地方。

分配角色
编辑
  1. Azure 门户中,搜索并选择 订阅
  2. 选择要为其分配应用程序的订阅。
  3. 选择 访问控制 (IAM)
  4. 选择 添加 > 添加角色分配 以打开添加角色分配页
  5. 角色 选项卡中,搜索并选择角色 监控读取者
  6. 选择 下一步 按钮,移动到 成员 选项卡。
  7. 选择 为以下对象分配访问权限 > 用户、组或服务主体,然后选择 选择成员。默认情况下,此页不显示可用选项中的 Azure AD 应用程序。
  8. 要查找你的应用程序,请按名称搜索(例如,“elastic-agent”),然后从列表中选择它。
  9. 单击 选择 按钮。
  10. 然后单击 查看 + 分配 按钮。

记下以下值,稍后在指定设置时会用到。

  • 订阅 ID:使用你选择的“订阅 ID”的内容。
  • 租户 ID:使用你使用的 Azure Active Directory 中的“租户 ID”。

你的应用注册现在可以与 Elastic Agent 一起使用了。

其他资源
编辑

如果你想了解有关此过程的更多信息,可以阅读 Microsoft 提供的以下两个通用指南

主要选项
编辑

设置的主要部分包含访问 Azure API 和收集 Azure Functions 指标数据所需的所有选项。现在你将使用应用注册中的所有值,包括

客户端 ID 字符串:应用注册的唯一标识符(有时称为应用程序 ID)。

客户端机密 字符串:用于身份验证的客户端机密。

订阅 ID 字符串:Azure 订阅的唯一标识符。你只能提供一个订阅 ID。代理使用此 ID 来访问 Azure API。

租户 ID 字符串:Azure Active Directory 的租户 ID 的唯一标识符。

高级选项
编辑

还有两个额外的高级选项

资源管理器终结点 字符串:可选。默认情况下,集成使用 Azure 公共环境。要覆盖,用户可以提供特定的资源管理器终结点以使用不同的 Azure 环境。

示例

  • https://management.chinacloudapi.cn 用于 Azure 中国云
  • https://management.microsoftazure.de 用于 Azure 德国云
  • https://management.azure.com 用于 Azure 公共云
  • https://management.usgovcloudapi.net 用于 Azure 美国政府云

Active Directory 终结点 字符串:可选。默认情况下,集成使用关联的 Active Directory 终结点。要覆盖,用户可以提供特定的 Active Directory 终结点以使用不同的 Azure 环境。

示例

  • https://login.chinacloudapi.cn 用于 Azure 中国云
  • https://login.microsoftonline.de 用于 Azure 德国云
  • https://login.microsoftonline.com 用于 Azure 公共云
  • https://login.microsoftonline.us 用于 Azure 美国政府云
指标参考
编辑
示例

指标的示例事件如下所示

{
    "@timestamp": "2023-08-23T12:20:00.000Z",
    "agent": {
        "ephemeral_id": "7511408f-f109-4e34-a405-98ad479fc097",
        "id": "ae16c4cf-2550-452a-860d-cef5e5182e94",
        "name": "docker-fleet-agent",
        "type": "metricbeat",
        "version": "8.7.1"
    },
    "azure": {
        "functions": {
            "app_connections": {
                "avg": 0
            },
            "average_memory_working_set": {
                "avg": 328533059.5
            },
            "bytes_received": {
                "total": 28804
            },
            "bytes_sent": {
                "total": 8192
            },
            "function_execution_count": {
                "total": 0
            },
            "function_execution_units": {
                "total": 0
            },
            "handles": {
                "avg": 0
            },
            "http2xx": {
                "total": 16
            },
            "http3xx": {
                "total": 0
            },
            "http4xx": {
                "total": 0
            },
            "http5xx": {
                "total": 16
            },
            "http_response_time": {
                "avg": 0.02796875
            },
            "io_other_bytes_per_second": {
                "total": 0
            },
            "io_other_operations_per_second": {
                "total": 0
            },
            "io_read_bytes_per_second": {
                "total": 31879
            },
            "io_read_operations_per_second": {
                "total": 0
            },
            "io_write_bytes_per_second": {
                "total": 0
            },
            "io_write_operations_per_second": {
                "total": 0
            },
            "memory_working_set": {
                "avg": 328533059.5
            },
            "requests": {
                "total": 32
            },
            "requests_inapplication_queue": {
                "avg": 0
            },
            "total_app_domains": {
                "avg": 0
            },
            "total_app_domains_unloaded": {
                "avg": 0
            }
        },
        "namespace": "Microsoft.Web/sites",
        "resource": {
            "group": "test-rg",
            "id": "/subscriptions/12hjkls-78tyu-404f-a3d2-1dc9982f45ds/resourceGroups/test-rg/providers/Microsoft.Web/sites/return-of-the-jedi",
            "name": "return-of-the-jedi",
            "tags": {
                "hidden-link: /app-insights-resource-id": "/subscriptions/12hjkls-78tyu-404f-a3d2-1dc9982f45ds/resourceGroups/test-rg/providers/Microsoft.Insights/components/return-of-the-jedi"
            },
            "type": "Microsoft.Web/sites"
        },
        "subscription_id": "12hjkls-78tyu-404f-a3d2-1dc9982f45ds",
        "timegrain": "PT5M"
    },
    "data_stream": {
        "dataset": "azure.function",
        "namespace": "default",
        "type": "metrics"
    },
    "ecs": {
        "version": "8.11.0"
    },
    "elastic_agent": {
        "id": "ae16c4cf-2550-452a-860d-cef5e5182e94",
        "snapshot": false,
        "version": "8.7.1"
    },
    "event": {
        "agent_id_status": "verified",
        "dataset": "azure.function",
        "duration": 42827917228,
        "ingested": "2023-08-23T12:25:34Z",
        "module": "azure"
    },
    "host": {
        "architecture": "x86_64",
        "containerized": false,
        "hostname": "docker-fleet-agent",
        "id": "fd2c4b0943e444508c12855a04d117c7",
        "ip": [
            "172.19.0.9"
        ],
        "mac": [
            "02-42-AC-13-00-09"
        ],
        "name": "docker-fleet-agent",
        "os": {
            "codename": "focal",
            "family": "debian",
            "kernel": "5.15.49-linuxkit",
            "name": "Ubuntu",
            "platform": "ubuntu",
            "type": "linux",
            "version": "20.04.6 LTS (Focal Fossa)"
        }
    },
    "metricset": {
        "name": "monitor",
        "period": 300000
    },
    "service": {
        "type": "azure"
    }
}

ECS 字段参考

有关 ECS 字段的详细信息,请参阅以下 文档

导出的字段
字段 描述 类型 单位 指标类型

@timestamp

事件时间戳。

日期

azure.application_id

应用程序 ID

关键词

azure.dimensions.*

Azure 指标维度。

对象

azure.functions.app_connections.avg

沙盒中存在的绑定套接字数(w3wp.exe 及其子进程)。绑定套接字通过调用 bind()/connect() API 创建,并保持到使用 CloseHandle()/closesocket() 关闭该套接字为止。适用于 WebApps 和 FunctionApps。

长整型

计数器

azure.functions.average_memory_working_set.avg

应用程序使用的平均内存量,单位为 MiB。适用于 WebApps 和 FunctionApps。

长整型

字节

计量器

azure.functions.bytes_received.total

应用程序消耗的传入带宽量,单位为 MiB。

长整型

字节

计量器

azure.functions.bytes_sent.total

应用程序消耗的传出带宽量,单位为 MiB。

长整型

字节

计量器

azure.functions.current_assemblies.avg

此应用程序中所有 AppDomain 中加载的当前程序集数。

长整型

计量器

azure.functions.file_system_usage.avg

应用程序消耗的文件系统配额百分比。

长整型

字节

计量器

azure.functions.function_execution_count.total

函数执行计数。仅适用于 FunctionApps。

长整型

计数器

azure.functions.function_execution_units.total

函数执行单元。仅适用于 FunctionApps。

长整型

计数器

azure.functions.gen_0_collections.total

自应用程序进程启动以来,第 0 代对象被垃圾回收的次数。较高代的 GC 包括所有较低代的 GC。

长整型

计数器

azure.functions.gen_1_collections.total

自应用程序进程启动以来,第 1 代对象被垃圾回收的次数。较高代的 GC 包括所有较低代的 GC。

长整型

计数器

azure.functions.gen_2_collections.total

自应用程序进程启动以来,第 2 代对象被垃圾回收的次数。较高代的 GC 包括所有较低代的 GC。

长整型

计数器

azure.functions.handles.avg

应用程序进程当前打开的总句柄数。

长整型

计数器

azure.functions.health_check_status.avg

运行状况检查状态。

长整型

计量器

azure.functions.http2xx.total

导致 HTTP 状态代码 >= 200 但 < 300 的请求计数。

长整型

计数器

azure.functions.http3xx.total

导致 HTTP 状态代码 >= 300 但 < 400 的请求计数。

长整型

计数器

azure.functions.http4xx.total

导致 HTTP 状态代码 >= 400 但 < 500 的请求计数。

长整型

计数器

azure.functions.http5xx.total

导致 HTTP 状态代码 >= 500 但 < 600 的请求计数。

长整型

计数器

azure.functions.http_response_time.avg

应用程序服务请求所花费的时间,单位为秒。

长整型

计量器

azure.functions.io_other_bytes_per_second.total

应用程序进程向不涉及数据的 I/O 操作(例如,控制操作)发出的字节速率。显示为字节/秒。

长整型

计量器

azure.functions.io_other_operations_per_second.total

应用程序进程发出的不是读取或写入操作的 I/O 操作的速率。显示为字节/秒。

长整型

计量器

azure.functions.io_read_bytes_per_second.total

应用程序进程从 I/O 操作中读取字节的速率。显示为字节/秒。

长整型

计量器

azure.functions.io_read_operations_per_second.total

应用程序进程发出读取 I/O 操作的速率。显示为字节/秒。

长整型

计量器

azure.functions.io_write_bytes_per_second.total

应用程序进程向 I/O 操作写入字节的速率。显示为字节/秒。

长整型

计量器

azure.functions.io_write_operations_per_second.total

应用程序进程发出写入 I/O 操作的速率。显示为字节/秒。

长整型

计量器

azure.functions.memory_working_set.avg

应用程序当前使用的内存量,单位为 MiB。

长整型

字节

计量器

azure.functions.private_bytes.avg

专用字节是应用程序进程已分配的无法与其他进程共享的内存的当前大小(以字节为单位)。

长整型

字节

计量器

azure.functions.requests.total

不考虑其结果 HTTP 状态代码的请求总数。

长整型

计数器

azure.functions.requests_inapplication_queue.avg

应用程序请求队列中的请求数。

长整型

计数器

azure.functions.threads.avg

应用程序进程中当前活动的线程数。

长整型

计量器

azure.functions.total_app_domains.avg

此应用程序中加载的当前 AppDomain 数。

长整型

计量器

azure.functions.total_app_domains_unloaded.avg

自应用程序启动以来卸载的 AppDomain 总数。

长整型

计量器

azure.namespace

所选的命名空间

关键词

azure.resource.group

资源组

关键词

azure.resource.id

资源的 ID

关键词

azure.resource.name

资源的名称

关键词

azure.resource.tags.*

Azure 资源标记。

对象

azure.resource.type

资源的类型

关键词

azure.subscription_id

订阅 ID

关键词

azure.timegrain

Azure 指标时间粒度

关键词

cloud.image.id

云实例的映像 ID。

关键词

data_stream.dataset

数据流数据集名称。

常量_关键词

data_stream.namespace

数据流命名空间。

常量_关键词

data_stream.type

数据流类型。

常量_关键词

dataset.name

数据集名称。

常量_关键词

dataset.namespace

数据集命名空间。

常量_关键词

dataset.type

数据集类型。

常量_关键词

host.containerized

如果主机是一个容器。

布尔值

host.os.build

操作系统版本信息。

关键词

host.os.codename

操作系统代号(如果有)。

关键词

变更日志

编辑
变更日志
版本 详细信息 Kibana 版本

0.8.0

增强 (查看拉取请求)
允许 @custom 管道访问 event.original 而无需设置 preserve_original_event。

0.7.0

增强 (查看拉取请求)
为指标数据流添加处理器支持。

0.6.0

增强 (查看拉取请求)
ECS 版本已更新至 8.11.0。更新 Kibana 约束至 ^8.13.0。修改了字段定义,以移除 ecs@mappings 组件模板中冗余的 ECS 字段。

0.5.0

增强 (查看拉取请求)
为仪表板添加全局过滤器以提高性能。

0.4.2

增强 (查看拉取请求)
将 Azure AD 替换为 Microsoft Entra ID。

0.4.1

错误修复 (查看拉取请求)
从代理配置中移除“添加云元数据”标志。

0.4.0

增强 (查看拉取请求)
为敏感字段启用密钥。有关更多详细信息,请参阅 https://elastic.ac.cn/guide/en/fleet/current/agent-policy.html#agent-policy-secret-values

0.3.1

错误修复 (查看拉取请求)
由于错误,为较旧的堆栈版本禁用密钥。

0.3.0

增强 (查看拉取请求)
为敏感字段启用密钥,从 8.12 版本开始支持。

0.2.1

增强 (查看拉取请求)
内联“通过引用”可视化

0.2.0

增强 (查看拉取请求)
更新软件包 format_version 至 3.0.0。

0.1.0

增强 (查看拉取请求)
添加 Azure Functions 指标数据流

0.0.1

增强 (查看拉取请求)
添加 Azure Functions 日志数据流