

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Nucleus 遥测发射器
<a name="nucleus-emitter-component"></a>

nucleus 遥测发射器组件 (`aws.greengrass.telemetry.NucleusEmitter`) 收集系统健康遥测数据，并将其持续发布到本地主题和 MQTT 主题。 AWS IoT Core 此组件使您能够在 Greengrass 核心设备上收集实时系统遥测数据。有关向亚马逊发布系统遥测数据的 Greengrass 遥测代理的信息，请参阅。 EventBridge [从 AWS IoT Greengrass 核心设备收集系统运行状况遥测数据](telemetry.md)

默认情况下，nucleus 遥测发射器组件每 60 秒将遥测数据发布到以下本地主题。 publish/subscribe 

```
$local/greengrass/telemetry
```

默认情况下，nucleus 遥测发射器组件不会发布到 AWS IoT Core MQTT 主题中。您可以将此组件配置为在部署时将其发布到 AWS IoT Core MQTT 主题。使用 MQTT 主题向发布数据需视[AWS IoT Core 定价](https://aws.amazon.com/iot-core/pricing/)而定。 AWS Cloud 

<a name="greengrass-software-catalog-influxdb-telemetry-publisher"></a>AWS IoT Greengrass 提供了多个[社区组件](greengrass-software-catalog.md)，可帮助您使用 InfluxDB 和 Grafana 在核心设备上本地分析和可视化遥测数据。这些组件使用来自 Nucleus 发射器组件的遥测数据。有关更多信息，请参阅 [InfluxDB 发布者组件](https://github.com/awslabs/aws-greengrass-labs-telemetry-influxdbpublisher)的自述文件。

**Topics**
+ [版本](#nucleus-emitter-component-versions)
+ [Type](#nucleus-emitter-component-type)
+ [操作系统](#nucleus-emitter-component-os-support)
+ [依赖项](#nucleus-emitter-component-dependencies)
+ [配置](#nucleus-emitter-component-configuration)
+ [输出数据](#nucleus-emitter-component-output-data)
+ [用法](#nucleus-emitter-component-usage)
+ [本地日志文件](#nucleus-emitter-component-log-file)
+ [更改日志](#nucleus-emitter-component-changelog)

## 版本
<a name="nucleus-emitter-component-versions"></a>

此组件具有以下版本：
+ 1.0.x

## Type
<a name="nucleus-emitter-component-type"></a>

<a name="public-component-type-plugin-para1"></a>此组件是一个插件组件 (`aws.greengrass.plugin`)。[Greengrass Nucleus](greengrass-nucleus-component.md) 在与该 Nucleus 相同的 Java 虚拟机（JVM）中运行该组件。当您在核心设备上更改此组件的版本时，Nucleus 会重新启动。

<a name="public-component-type-plugin-para2"></a>此组件使用与 Greengrass Nucleus 相同的日志文件。有关更多信息，请参阅 [监控 AWS IoT Greengrass 日志](monitor-logs.md)。

<a name="public-component-type-more-information"></a>有关更多信息，请参阅 [组件类型](develop-greengrass-components.md#component-types)。

## 操作系统
<a name="nucleus-emitter-component-os-support"></a>

此组件可以安装在运行以下操作系统的核心设备上：
+ Linux
+ Windows

## 依赖项
<a name="nucleus-emitter-component-dependencies"></a>

部署组件时， AWS IoT Greengrass 还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖关系的要求，才能成功部署组件。本部分列出了此组件的[已发布版本](#nucleus-emitter-component-changelog)的依赖关系，以及定义每个依赖关系的组件版本的语义版本约束。您还可以在 [AWS IoT Greengrass 控制台](https://console.aws.amazon.com//greengrass)中查看每个组件版本的依赖关系。在组件详细信息页面上，查找**依赖关系**列表。

------
#### [ 1.0.12 ]

下表列出了此组件版本 1.0.12 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) | >=2.4.0 <2.17.0 | 软性 | 

------
#### [ 1.0.11 ]

下表列出了此组件版本 1.0.11 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.16.0  | 硬性 | 

------
#### [ 1.0.10 ]

下表列出了此组件版本 1.0.10 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.15.0  | 硬性 | 

------
#### [ 1.0.9 ]

下表列出了此组件版本 1.0.9 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.14.0  | 硬性 | 

------
#### [ 1.0.8 ]

下表列出了此组件版本 1.0.8 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.13.0  | 硬性 | 

------
#### [ 1.0.7 ]

下表列出了此组件版本 1.0.7 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.12.0  | 硬性 | 

------
#### [ 1.0.6 ]

下表列出了此组件版本 1.0.6 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.11.0  | 硬性 | 

------
#### [ 1.0.5 ]

下表列出了此组件版本 1.0.5 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.10.0  | 硬性 | 

------
#### [ 1.0.4 ]

下表列出了此组件的版本 1.0.4 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.9.0  | 硬性 | 

------
#### [ 1.0.3 ]

下表列出了此组件版本 1.0.3 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.8.0  | 硬性 | 

------
#### [ 1.0.2 ]

下表列出了此组件版本 1.0.2 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.7.0  | 硬性 | 

------
#### [ 1.0.1 ]

下表列出了此组件版本 1.0.1 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.6.0  | 硬性 | 

------
#### [ 1.0.0 ]

下表列出了此组件的版本 1.0.0 的依赖关系。


| 依赖关系 | 兼容版本 | 依赖关系类型 | 
| --- | --- | --- | 
| [Greengrass Nucleus](greengrass-nucleus-component.md) |  >=2.4.0 <2.5.0  | 硬性 | 

------

有关组件依赖关系的更多信息，请参阅[组件配方参考](component-recipe-reference.md#recipe-reference-component-dependencies)。

## 配置
<a name="nucleus-emitter-component-configuration"></a>

此组件提供您可以在部署组件时自定义的以下配置参数。

`pubSubPublish`  
（可选）定义是否向 `$local/greengrass/telemetry` 主题发布遥测数据。支持的值为 `true` 和 `false`。  
默认值：`true`

`mqttTopic`  
（可选）此组件向其发布遥测数据的 AWS IoT Core MQTT 主题。  
将此值设置为要向其发布遥测数据的 AWS IoT Core MQTT 主题。当此值为空时，Nucleus 发射器不会将遥测数据发布到 AWS Cloud。  
使用 MQTT 主题向发布数据需视[AWS IoT Core 定价](https://aws.amazon.com/iot-core/pricing/)而定。 AWS Cloud 
默认值：`""`

`telemetryPublishIntervalMs`  
（可选）组件发布遥测数据的间隔时长（以毫秒为单位）。如果将此值设置为低于支持的最小值，则组件将改用最小值。  
较低的发布间隔会导致核心设备上的 CPU 使用率更高。我们建议您从默认发布间隔开始，然后根据设备的 CPU 使用率进行调整。
最低：`500`  
默认值：`60000`

**Example 示例：配置合并更新**  
以下示例显示了一个配置合并更新示例，该更新允许每 5 秒向`$local/greengrass/telemetry`主题和 `greengrass/myTelemetry` AWS IoT Core MQTT 主题发布遥测数据。  

```
{
  "pubSubPublish": "true",
  "mqttTopic": "greengrass/myTelemetry",
  "telemetryPublishIntervalMs": 5000
}
```

## 输出数据
<a name="nucleus-emitter-component-output-data"></a>

此组件将遥测指标作为 JSON 数组发布到以下主题。

**本地主题：**`$local/greengrass/telemetry`

您也可以选择将遥测指标发布到 AWS IoT Core MQTT 主题。有关主题的更多信息，请参阅《AWS IoT Core 开发人员指南》**中的 [MQTT 主题](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)。

**Example 示例数据**  

```
[
  {
    "A": "Average",
    "N": "CpuUsage",
    "NS": "SystemMetrics",
    "TS": 1627597331445,
    "U": "Percent",
    "V": 26.21981271562346
  },
  {
    "A": "Count",
    "N": "TotalNumberOfFDs",
    "NS": "SystemMetrics",
    "TS": 1627597331445,
    "U": "Count",
    "V": 7316
  },
  {
    "A": "Count",
    "N": "SystemMemUsage",
    "NS": "SystemMetrics",
    "TS": 1627597331445,
    "U": "Megabytes",
    "V": 10098
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsStarting",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsInstalled",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsStateless",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsStopping",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsBroken",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsRunning",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 7
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsErrored",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsNew",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 0
  },
  {
    "A": "Count",
    "N": "NumberOfComponentsFinished",
    "NS": "GreengrassComponents",
    "TS": 1627597331446,
    "U": "Count",
    "V": 2
  }
]
```<a name="telemetry-json-array-config"></a>

输出数组包含具有以下属性的指标列表：

`A`  
指标的聚合类型。  
对于 `CpuUsage` 指标，此属性设置为 `Average`，因为该指标的发布值是自上次发布事件以来的平均 CPU 使用率。  
对于所有其他指标，Nucleus 发射器不会聚合指标值，并且此属性设置为 `Count`。

`N`  
指标的名称。

`NS`  
指标命名空间。

`TS`  
表示数据在何时收集的时间戳。

`U`  
指标值的单位。

`V`  
 指标值。

Nucleus 发射器发布以下指标：


| Name | 说明 | 
| --- | --- | 
|  **系统**  | 
|  `SystemMemUsage`  |  Greengrass 核心设备上所有应用程序（包括操作系统）当前使用的内存量。  | 
|  `CpuUsage`  |  Greengrass 核心设备上所有应用程序（包括操作系统）当前使用的 CPU 量。  | 
|  `TotalNumberOfFDs`  |  Greengrass 核心设备操作系统存储的文件描述符的数量。一个文件描述符可以唯一地标识一个打开的文件。  | 
|  **Greengrass Nucleus**  | 
|  `NumberOfComponentsRunning`  |  Greengrass 核心设备上运行的组件的数量。  | 
|  `NumberOfComponentsErrored`  |  Greengrass 核心设备上处于错误状态的组件的数量。  | 
|  `NumberOfComponentsInstalled`  |  Greengrass 核心设备上安装的组件的数量。  | 
|  `NumberOfComponentsStarting`  |  Greengrass 核心设备上启动的组件的数量。  | 
|  `NumberOfComponentsNew`  |  Greengrass 核心设备上新组件的数量。  | 
|  `NumberOfComponentsStopping`  |  Greengrass 核心设备上停止组件的数量。  | 
|  `NumberOfComponentsFinished`  |  Greengrass 核心设备上完成组件的数量。  | 
|  `NumberOfComponentsBroken`  |  Greengrass 核心设备上损坏组件的数量。  | 
|  `NumberOfComponentsStateless`  |  Greengrass 核心设备上无状态组件的数量。  | 

## 用法
<a name="nucleus-emitter-component-usage"></a>

要使用系统运行状况遥测数据，您可以创建自定义组件，这些组件可订阅 Nucleus 发射器向其发布遥测数据的主题，并根据需要对这些数据做出反应。由于 Nucleus 发射器组件提供了将遥测数据发布到本地主题的选项，因此您可以订阅该主题，并使用已发布的数据在核心设备上进行本地操作。然后，即使核心设备与云的连接有限，核心设备也可以对遥测数据做出反应。

例如，您可以配置一个组件，该组件侦听 `$local/greengrass/telemetry` 主题上的遥测数据，并将数据发送到流管理器组件，以将数据流式传输到 AWS Cloud。有关创建此类组件的更多信息，请参阅[发布/订阅本地消息](ipc-publish-subscribe.md)和[创建使用流管理器的自定义组件](use-stream-manager-in-custom-components.md)。

## 本地日志文件
<a name="nucleus-emitter-component-log-file"></a>

此组件使用与 [Greengrass Nucleus](greengrass-nucleus-component.md) 组件相同的日志文件。

------
#### [ Linux ]

```
/greengrass/v2/logs/greengrass.log
```

------
#### [ Windows ]

```
C:\greengrass\v2\logs\greengrass.log
```

------

**查看此组件的日志**
+ 在核心设备上运行以下命令可实时查看此组件的日志文件。将`/greengrass/v2`或*C:\$1greengrass\$1v2*替换为 AWS IoT Greengrass 根文件夹的路径。

------
#### [ Linux ]

  ```
  sudo tail -f /greengrass/v2/logs/greengrass.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  ```

------

## 更改日志
<a name="nucleus-emitter-component-changelog"></a>

下表介绍每个组件版本的更改。


|  **版本**  |  **更改**  | 
| --- | --- | 
|  1.0.13  |  更新 Greengrass nucleus 版本 2.17.0 版本的组件版本。  | 
|  1.0.12  |  Greengrass nucleus 版本 2.16.0 版本的版本已更新。  | 
|  2016-09-01  | Greengrass nucleus 版本 2.15.0 版本的版本已更新。 | 
|  2016-09-01  | Greengrass nucleus 版本 2.14.0 版本的版本已更新。 | 
|  1.0.9  | 对 Greengrass Nucleus 版本 2.13.0 发行版进行了版本更新。 | 
|  1.0.8  | 版本更新为 Greengrass Nucleus 版本 2.12.0 发布版。 | 
|  1.0.7  | 版本更新为 Greengrass Nucleus 版本 2.11.0 发布版。 | 
|  1.0.6  | 版本更新为 Greengrass Nucleus 版本 2.10.0 发布版。 | 
|  1.0.5  | 对 Greengrass Nucleus版本 2.9.0 发行版进行了版本更新。 | 
|  1.0.4  | 版本更新为 Greengrass Nucleus 版本 2.8.0 发布版。 | 
|  1.0.3  |  版本更新为 Greengrass Nucleus 版本 2.7.0 发布版。  | 
|  1.0.2  |  版本更新为 Greengrass Nucleus 版本 2.6.0 发布版。  | 
|  1.0.1  |  版本更新为 Greengrass Nucleus 版本 2.5.0 发布版。  | 
|  1.0.0  |  初始版本。  | 