Monitor Edge Server - Preview
您可以查看 Edge Server 实例的指标和日志,以了解总体健康状况或有关使用情况、性能和错误的信息。
您可以监控实例:
在 Atlas UI 中
在本地硬件上的用户界面中
通过 Admin API调用
您还可以将日志转发到 MongoDB 集合或外部服务。
本页包含有关如何查看 Edge Server 实例的指标和日志的详细信息,以及有哪些信息可用。
开始之前
要在Atlas 用户界面中管理边缘服务器,您需要满足以下条件:
具有项目所有者权限的MongoDB Atlas帐户。 要学习;了解如何注册免费帐户,请参阅 Atlas入门。
本地用户界面默认启用,并且只需要一个正在运行的Edge Server实例。
在不受信任的托管上,您可以通过运行以下 edgectl
命令来禁用本地用户界面:
edgectl config --disable-local-ui=true
要使用 Admin API 管理边缘服务器,您需要满足以下条件:
具有项目所有者权限的 MongoDB Atlas 帐户。要了解如何注册免费帐户,请参阅开始使用 Atlas。
MongoDB Atlas Admin API 公钥/私钥对。API 密钥必须具有项目所有者权限才能使用 App Services Admin API。
您的应用的内部ObjectId 十六进制string 以及包含您的应用的ID 项目的项目Atlas 。要学习;了解如何查找这些元数据,请参阅获取应用元数据。
获取Edge Server实例状态
您可以通过以下几种方式获取有关 Edge Server 实例状态的详细信息:
在 用户界面中查看 实例详细信息Edge ServerAtlas
在本地用户界面查看状态详情
使用
edgectl
检查状态向相关 Admin API 端点发出请求
可用的详细信息因访问方式而异。
Edge Server仪表盘列出了每个Edge Server实例的简要摘要,包括上次连接的日期和时间及其状态快照。 您可以选择查看每个实例的详细信息或日志。
要查看Edge Server仪表盘,请在左侧导航栏中选择 Edge Server。
要查看特定Edge Server实例的详细信息,请单击该Edge Server实例的 View Details(查看详细信息)。 或者,单击App Logs浏览与该实例相关的日志。
查看Edge Server实例时提供的信息因实例状态而异。 有关详细信息,请参阅Edge Server实例详细信息。
要访问本地用户界面,请打开网络浏览器并Go http-port
上的 localhost
。 您可以通过以下位置访问默认端口上的本地用户界面: http://localhost:80
您可以通过提供备用端口作为带有以下edgectl
标志的Int
来更改端口:
edgectl config --http-port=<YOUR-PORT-INT>
当Edge Server实例正在运行时,您可以使用以下命令查看实例的状态:
edgectl status
这将为您提供有关Edge Server容器状态的信息,以及同步服务器的详细状态以及重要信息的细分。 它可能看起来类似于以下内容:
{ "mongoContainerStatus": { "message": "running" }, "mongoDBStatus": { "message": "ready" }, "syncServerContainerStatus": { "message": "running" }, "syncServerStatus": { "message": "ACTIVE" }, "syncServerDetailedStatus": { "version": "v0.22.3", "status": "ACTIVE", "cloud_connected": true, "num_local_clients": 0, "query": { "Item": "truepredicate" } } }
syncServerDetailedStatus
包含有关Edge Server实例状态的信息。 这包括有关与 Atlas 的连接以及连接的客户端的详细信息,如下所示:
字段名称 | 类型 | 值 |
---|---|---|
version | 字符串 | 实例运行的Edge Server代码的当前版本。 如果Edge Server实例的主要版本落后于最新可用版本一个以上,则无法连接到Atlas ,必须进行擦除和更新。 有关详细信息,请参阅升级Edge Server版本。 |
status | 字符串 | Edge Server实例的当前状态。 可能的值包括:
|
cloud_connected | 布尔 | 如果为 true ,则Edge Server实例当前已连接到Atlas 。 如果为 false ,则Edge Server实例未连接到Atlas 。 当实例未连接 Atlas 时,仍可接收本地连接并与本地客户端同步数据。 当它与 Atlas 重新连接时,它会尝试同步在未连接时更改的数据。 |
num_local_clients | Int | 当前通过 连接到Edge Server 实例的客户端数量。Atlas Device SDK这不包括通过传输协议进行的连接。 |
query | 对象 | Edge Server实例同步查询,以JSON对象形式呈现。 有关详细信息,请参阅指定Edge Server的查询。 |
对 MongoDB Atlas 用户进行身份验证
使用您的 MongoDB Atlas API 密钥对调用管理员用户身份验证端点:
curl -X POST \ https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{ "username": "<Public API Key>", "apiKey": "<Private API Key>" }'
如果身份验证成功,响应正文将包含一个具有access_token
值的JSON对象:
{ "access_token": "<access_token>", "refresh_token": "<refresh_token>", "user_id": "<user_id>", "device_id": "<device_id>" }
access_token
授予对App Services Admin API的访问权限。 您必须将其作为持有者令牌包含在所有 Admin API请求的Authorization
标头中。
获取Edge Server实例列表
调用Admin API 列出边缘服务器端点以获取所有边缘服务器实例的列表。
您的请求必须包含Authorization
标头,其中包含作为持有令牌的 Admin API访问权限 令牌。
curl -X GET \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <AccessToken>'
成功的请求将返回一个 200
代码和一个 edge_servers
键,该键的值是一个对象数组,其中包含与 appId
关联的每个Edge Server实例的摘要详细信息。
{ "edge_servers": [ { "id": "6622b8f5118368b943d228a9", "created": "2024-04-19T08:51:00Z", "name": "Edge-Store-42", "user_id": "6622b8f5118368b943d2288a", "status": "active", "hostname": "ec2-13-58-70-88.us-east-2.compute.amazonaws.com", "last_connection": "2024-04-19T09:51:00Z" } ] }
有关更多详细信息,请找到要查看其详细信息的实例的id
。
调用Edge Server信息端点
调用Admin API获取Edge Server信息端点以获取有关Edge Server实例的详细信息。
您的请求必须包含Authorization
标头,其中包含作为持有令牌的 Admin API 访问 令牌。
curl -X GET \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/edge/{edgeServerId} \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer <AccessToken>'
成功的请求会返回200
代码以及包含JSON 实例详细信息的Edge Server 对象:
{ "id": "6622b8f5118368b943d228a9", "created": "2024-04-19T08:51:00Z", "name": "Edge-Store-42", "user_id": "6622b8f5118368b943d2288a", "status": "active", "hostname": "ec2-13-58-70-88.us-east-2.compute.amazonaws.com", "last_connection": "2024-04-19T09:51:00Z", "query": { "Item": "(store_id == \"641cb3d99e425c794ef69315\")" }, "package_version": "v0.21.2", "latest_package_version": "v0.22.2", "metrics": [ { "key": "edge_host_memory_percent", "name": "Memory Usage", "category": "host", "detail": "Percentage of memory used by the edge container", "value": 15, "unit": "%" }, ...additional Edge Server metrics... ] }
有关此响应正文的更多信息,请参阅 API 规范。
Edge Server日志
Edge Server使用以下日志类型:
身份验证日志:当Edge Server实例尝试使用Atlas进行身份验证,或者客户端尝试使用Edge Server实例进行身份验证时,会生成身份验证日志。
Device Sync日志:当Edge Server实例与Atlas同步,或者Atlas Device SDK客户端与Edge Server同步时,会生成Device Sync日志。
访问Edge Server日志
您可以使用 Admin API 的Admin API检索App Services日志端点访问权限日志。 筛选与Edge Server实例user_id
匹配的 user_id
。 或者,您可以在 用户界面中查看Edge Server 实例详细信息 Atlas时查看日志。
转发 Edge Server 日志
您可以配置日志转发器以存储日志存储在MongoDB集合中或将日志发送到外部服务。 有关更多信息,请参阅将日志转发到服务。
Edge Server Metrics
Edge Server 实例追踪有关以下方面的各种指标:
主机硬件
请求
传输协议连接及其活动
同步
您可以使用 Admin API的Admin API获取Edge Server信息端点访问权限指标数据。 或者,您可以在 用户界面中查看Edge Server 实例详细信息 Atlas时查看这些指标的子集。
返回的确切指标可能会发生变化。
指标键 | 名称 | category | 单位 | 说明 |
---|---|---|---|---|
edge_host_memory_percent | 内存使用量 | 主机 | 百分比 (%) | Edge Server容器使用的内存百分比。 |
edge_host_cpu_percent | CPU 使用率 | 主机 | 百分比 (%) | Edge Server 容器使用的 CPU 百分比。 |
overall_request_success | 成功的请求 | 总体 | Int | 成功请求的总数。 |
total_request_fail | 请求失败 | 总体 | Int | 失败请求的总数。 |
wire_protocol_request_success | 成功的传输协议请求 | 传输协议 | Int | 成功的传输协议请求总数。 |
wire_protocol_request_fail | 失败的传输协议请求 | 传输协议 | Int | 失败的传输协议请求总数。 |
wire_protocol_egress_bytes | 有线协议数据传输 | 传输协议 | 字节 | 传输协议返回的总字节数。 |
edge_wire_protocol_connection_count | 传输协议连接计数 | 传输协议 | Int | 当前使用传输协议连接的客户端总数。 这些连接包括MongoDB驱动程序、 MongoDB Shell、 MongoDB Compass和其他使用传输协议连接的工具。 |
sync_requests_success | 成功的同步请求 | 同步 | Int | 成功的同步请求总数。 |