IoT SiteWise processor - AWS IoT Greengrass

IoT SiteWise processor

The IoT SiteWise processor component (aws.iot.SiteWiseEdgeProcessor) enables AWS IoT SiteWise gateways to process data at the edge.

With this component, AWS IoT SiteWise gateways can use asset models and assets to process data on gateway devices. For more information about AWS IoT SiteWise gateways, see Using AWS IoT SiteWise at the edge in the AWS IoT SiteWise User Guide.

Versions

This component has the following versions:

  • 3.4.x

  • 3.3.x

  • 3.2.x

  • 3.1.x

  • 3.0.x

  • 2.2.x

  • 2.1.x

  • 2.0.x

Type

This component is a generic component (aws.greengrass.generic). The Greengrass nucleus runs the component's lifecycle scripts.

For more information, see Component types.

Operating system

This component can be installed on core devices that run the following operating systems:

  • Linux

  • Windows

Requirements

This component has the following requirements:

  • The Greengrass core device must run on one of the following platforms:

    • OS: Ubuntu 20.04 or 18.04

      Architecture: x86_64 (AMD64)

    • OS: Red Hat Enterprise Linux (RHEL) 8

      Architecture: x86_64 (AMD64)

    • OS: Amazon Linux 2

      Architecture: x86_64 (AMD64)

    • OS: Windows Server 2019 or later

      Architecture: x86_64 (AMD64)

  • The Greengrass core device must allow inbound traffic on port 443.

  • The Greengrass core device must allow outbound traffic on port 443 and 8883.

  • The following ports are reserved for use by AWS IoT SiteWise: 80, 443, 3001, 4569, 4572, 8000, 8081, 8082, 8084, 8085, 8086, 8445, 9000, 9500, 11080, and 50010. Using a reserved port for traffic can result in a terminated connection.

    Note

    Port 8087 is required only for version 2.0.15 and later of this component.

  • The Greengrass device role must have permissions that allow you to use AWS IoT SiteWise gateways on your AWS IoT Greengrass V2 devices. For more information, see Requirements in the AWS IoT SiteWise User Guide.

Endpoints and ports

This component must be able to perform outbound requests to the following endpoints and ports, in addition to endpoints and ports required for basic operation. For more information, see Allow device traffic through a proxy or firewall.

Endpoint Port Required Description

model.iotsitewise.region.amazonaws.com

443 Yes

Get information about your AWS IoT SiteWise assets and asset models.

edge.iotsitewise.region.amazonaws.com

443 Yes

Get information about the core device's AWS IoT SiteWise gateway configuration.

ecr.region.amazonaws.com

443 Yes

Download AWS IoT SiteWise Edge gateway Docker images from Amazon Elastic Container Registry.

iot.region.amazonaws.com

443 Yes

Get device endpoints for your AWS account.

sts.region.amazonaws.com

443 Yes

Get the ID of your AWS account.

monitor.iotsitewise.region.amazonaws.com

443 No

Required if you access AWS IoT SiteWise Monitor portals on the core device.

Dependencies

When you deploy a component, AWS IoT Greengrass also deploys compatible versions of its dependencies. This means that you must meet the requirements for the component and all of its dependencies to successfully deploy the component. This section lists the dependencies for the released versions of this component and the semantic version constraints that define the component versions for each dependency. You can also view the dependencies for each version of the component in the AWS IoT Greengrass console. On the component details page, look for the Dependencies list.

The following table lists the dependencies for versions 2.0.x to 2.1.x of this component.

Dependency Compatible versions Dependency type
Token exchange service >=2.0.3 <3.0.0 Hard
Stream manager >=2.0.10 <3.0.0 Hard
Greengrass CLI >=2.3.0 <3.0.0 Hard

For more information about component dependencies, see the component recipe reference.

Configuration

This component doesn't have any configuration parameters.

Local log file

This component uses the following log file.

Linux
/greengrass/v2/logs/aws.iot.SiteWiseEdgeProcessor.log
Windows
C:\greengrass\v2\logs\aws.iot.SiteWiseEdgeProcessor.log
To view this component's logs
  • Run the following command on the core device to view this component's log file in real time. Replace /greengrass/v2 or C:\greengrass\v2 with the path to the AWS IoT Greengrass root folder.

    Linux
    sudo tail -f /greengrass/v2/logs/aws.iot.SiteWiseEdgeProcessor.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.iot.SiteWiseEdgeProcessor.log -Tail 10 -Wait

Licenses

This component includes the following third-party software/licensing:

  • Apache-2.0

  • MIT

  • BSD-2-Clause

  • BSD-3-Clause

  • CDDL-1.0

  • CDDL-1.1

  • ISC

  • Zlib

  • GPL-3.0-with-GCC-exception

  • Public Domain

  • Python-2.0

  • Unicode-DFS-2015

  • BSD-1-Clause

  • OpenSSL

  • EPL-1.0

  • EPL-2.0

  • GPL-2.0-with-classpath-exception

  • MPL-2.0

  • CC0-1.0

  • JSON

This component is released under the Greengrass Core Software License Agreement.

Changelog

The following table describes the changes in each version of the component.

Version

Changes

3.4.0

New features
Performance improvements

Reduced the time for incoming data to reach edge device storage from 5 seconds to less than 1 second. The latency for data uploads to AWS IoT SiteWise remains unchanged.

3.3.1

New feature
  • Added optional CORS support to SiteWise Edge APIs, enhancing cross-origin resource sharing capabilities. This feature improves flexibility for web applications interacting with the APIs.

3.3.0

Performance improvements
  • Optimized cache refresh mechanism to reduce I/O usage between AWS IoT SiteWise asset syncs by only refreshing entries for new or updated assets.

  • Reduced memory footprint for maintaining a cache with a large number of synced asset properties.

Bug fixes and improvements
  • Suppressed logs for ingesting individual property values when there are no ingestion errors, which reduces log noise during high ingestion rates.

  • Improved log readability by using human-readable formatting for certain log entries.

  • Added support for Java 17 and higher.

3.2.1

Bug fixes and improvements
  • Fix issue where the AWS IoT SiteWise API calls do not paginate synchronously with SiteWise Edge.

  • Fix issue to not publish the MessageRemaining.SiteWise_Edge_Stream metric anymore.

  • Added the following CloudWatch metrics to monitor the connection with the MQTT broker.

    • IoTSiteWiseProcessor.IsConnectedToMqttBroker

    • IoTSiteWiseProcessor.NumberOfSubscriptionsToMqttBroker

    • IoTSiteWiseProcessor.NumberOfUniqueMqttTopicsReceived

    • IoTSiteWiseProcessor.MqttMessageReceivedSuccessCount

    • IoTSiteWiseProcessor.MqttReceivedSuccessBytes

    For more information about these metrics, see AWS IoT Greengrass Version 2 gateway metrics.

3.2.0

Performance improvements
  • Optimize API services to have smaller memory footprint and require less disk space to install

    • This provides a 2 GB reduction in initial memory usage (now uses 7.5 GB of memory on startup, however 16 GB is still recommended) and 500 MB reduction in download size (now requires a 1.4 GB download) for the entire component.

New features
  • GetAssetPropertyValueAggregates API now supports 15 minute aggregation windows on the edge.

  • Ports 8081 and 8082 no longer need to be available for this component to run correctly.

    Note

    The local endpoint for AWS IoT SiteWise data plane APIs, such as get-asset-property-value, is being changed from http://localhost:8081 to http://localhost:11080/data. The local endpoint for AWS IoT SiteWise control plane APIs, such as list-asset-models, is being changed from http://localhost:11080 to http://localhost:11080/control. AWS always recommends that you use the SiteWise Edge gateway HTTPS endpoints. Those endpoints have not changed.

Bug fixes and improvements
  • Syncing from AWS IoT SiteWise will now transition resources into a valid state if the previous sync was interrupted. This will fix issues with some resources being corrupted after a forced restart.

  • Fixes a rare condition where a resource may be corrupted on the edge if it is modified during sync. Sync will now fail if this condition is detected, and the resource will be retried in the next sync.

  • Fixes an issue that could have allowed the HTTP endpoint for APIs to be called externally. Only HTTPS can be used to call APIs outside of the local loopback address now.

  • ListAssets API now shows the asset hierarchies for assets stored on the edge.

  • Fixes an issue where the Data Processing Pack failed to restart, upgrade, or downgrade on Windows.

  • Fixes a bug in the Data Processing Pack for Windows OS that prevented customers from using credentials to connect with an MQTT Broker.

3.1.3

Bug fixes and improvements
  • Fix issue where the Data Processing Pack incorrectly reported a successful sync when some of the resources actually failed.

  • Allow multiple assets to have the same name as long as they don’t have the same parent.

3.1.1

Bug fixes and improvements
  • Fix issue where SigV4 request fails due to a timezone mismatch.

  • Fix issue where transform and metric properties stop calculating when they rely on attributes after restarting.

  • Enable support of custom Stream Manager Port configuration.

  • Fix an issue where properties that are synced to the edge might stop getting updated.

3.1.0

Bug fixes and improvements
  • Fix issue where ListAssetModels API fails to generate next token.

3.0.0

New features
  • Enables support of data ingestion from an MQTT broker.

2.2.1

Bug fixes and improvements
  • Adjust the sync process in order to make control plane data storage more consistent with how cloud operates. This slightly impacts upgrading.

    Note

    Control plane data synced on version 2.2.1 or higher won't be compatible with previous versions. To downgrade to previous versions, you'll need to complete a fresh install. This doesn't impact upgrades, data synced on previous versions will work with version 2.2.1.

  • Additional modifications to the AWS credentials chain to prioritize AWS IoT Greengrass V2 credentials.

2.1.37

Bug fixes and improvements
  • Deprecate dependency-routing-service process and move its functionality into the property-state-service process to reduce resource usage from the processes communicating.

  • Increase maximum result limit for the get-asset-property-value-history API to 20,000 to match the limit used by AWS IoT SiteWise.

  • Fix an issue where next token wasn't being provided in paginated results for the get-asset-property-value-history API when no max result limit was specified.

2.1.35

Bug fixes and improvements
  • Modifies the AWS credentials chain to prioritize AWS IoT Greengrass credentials.

  • Fixes an issue with account detection when deploying as part of an AWS IoT Thing group.

2.1.34

Bug fixes and improvements
  • Adjusts metric/transform computations to use multi-threading on Linux. Windows continues to run single-threaded computations for compatibility.

  • Fixes an issue where metric computations would be missing for some computation windows.

2.1.33

Bug fixes and improvements
  • Fixes an issue with error state reporting to the Greengrass console.

2.1.32

Bug fixes and improvements
  • Adds support for customized user names and groups.

2.1.31

Bug fixes and improvements
  • Adds support to compute the time-weighted average and the time-weighted standard deviation for data that is modeled in AWS IoT SiteWise.

2.1.29

Bug fixes and improvements
  • Adds support to filter assets on the edge functionality.

2.1.28

Bug fixes and improvements
  • Optimizes resource synchronization to enable a large number of assets to sync from the AWS Cloud to the edge.

2.1.24

Bug fixes and improvements
  • Fixes an issue that caused the dashboard to disappear when syncing a resource for the second time.

2.1.23

Bug fixes and improvements
  • Added a timeout for the aws.iot.SiteWiseEdgeProcessor install process to avoid installation failure if internet connectivity is slow.

  • Optimized resource sync to improve sync efficiency between the cloud and edge.

2.1.21

Warning

Upgrading from 2.0.x to 2.1.x will result in loss of local data.

New features
  • Adds support for Windows Server 2019 or higher.

  • Removes docker for Linux-based operating systems.

2.0.16

This version contains bug fixes and improvements.

2.0.15

Bug fixes and improvements
  • Changes the port that this component uses for resource sync API operations from 8085 to 8087. As a result, this component now requires port 8087 to be available. This component still requires port 8085 to be available.

  • Updates AWS OpsHub authentication to deny unauthorized users during login instead of when a user attempts to call API operations.

2.0.14

This version contains bug fixes and improvements.

2.0.13

Bug fixes and improvements
  • Fixes an issue so that when this component reports data to Amazon CloudWatch metrics, it now correctly indicates which data is unmodeled.

2.0.9

Bug fixes and improvements
  • Improves reliability to create and update AWS IoT SiteWise resources on the core device.

  • Adds additional local API operations that you can use to monitor which components are installed on the core device, the version of each component, and the status of each component. You can view this information on the Settings tab in the AWS OpsHub for AWS IoT SiteWise application on the core device.

  • Adds a health status for the Docker containers that this component runs. You can run the docker ps command to view the containers' health status.

2.0.7

Bug fixes and improvements
  • Fixes support for viewing AWS IoT SiteWise Monitor portals on the core device.

2.0.6

Bug fixes and improvements
  • Fixes the AWS IoT SiteWise statetime(), earliest(), and latest() functions that this component computes on the core device.

2.0.5

Bug fixes and improvements
  • Adds support for the AWS IoT SiteWise pretrigger() function in transforms that this component computes on the core device.

  • Changes the path where this component stores the Lightweight Directory Access Protocol (LDAP) configuration for authentication.

2.0.2

Initial version.

See also