

Amazon Monitron は新規顧客に公開されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。Amazon Monitron に似た機能については、[ブログ記事](https://aws.amazon.com/blogs/machine-learning/maintain-access-and-consider-alternatives-for-amazon-monitron)を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Monitron Kinesis データエクスポート v2
<a name="monitron-kinesis-export-v2"></a>

 受信した測定データとそれに対応する推論結果を Amazon Monitron からエクスポートして、リアルタイムで分析ができます。データのエクスポートでは、ライブデータが Kinesis にストリーミングされます。

**Topics**
+ [Kinesis ストリームへデータをエクスポートする](#exporting-stream-procedure-v2)
+ [ライブデータエクスポート設定を編集する](#edit-live-export-v2)
+ [ライブデータエクスポートを停止する](#stop-kinesis-export-v2)
+ [データエクスポートのエラーを表示する](#viewing-kinesis-export-errors-v2)
+ [Kinesis ストリームへのサーバー側の暗号化の使用](#data-export-server-side-encryption-v2)
+ [Amazon CloudWatch Logs による のモニタリング](data-export-cloudwatch-logs-v2.md)
+ [エクスポートしたデータを Amazon S3 に保存する](kinesis-store-S3-v2.md)
+ [Lambda でデータを処理する](data-export-lambda-v2.md)
+ [v2 データエクスポートスキーマを理解する](data-export-schema-v2.md)
+ [Kinesis v1 から v2 への移行](migration-from-v1-to-v2.md)

## Kinesis ストリームへデータをエクスポートする
<a name="exporting-stream-procedure-v2"></a>

1. プロジェクトのメインページの下部、右側にある **[ライブデータのエクスポートを開始]** を選択します。

1. **[Kinesis データストリームの選択]** で、次のいずれかの操作を行います。
   + 検索ボックスに既存のストリーム名を入力して、ステップ 5 に進みます。
   +  **[新しいデータストリームを作成]** を選択します。

1. **[データストリームの作成]** ページの **[データストリームの設定]** で、データストリーム名を入力します。

1. [データストリーム容量] で、[容量モード] を選択します。
   + データストリームのスループット要件が予測不可能で変動する場合は、**[オンデマンド]** を選択します。
   + データストリームのスループット要件を確実に見積もることができる場合は、**[プロビジョニング済み]** を選択してください。次に、[プロビジョニングされたシャード] で、作成するシャード数を入力するか、**[シャードの見積もり]** を選択します。

1. [**データストリームの作成**] を選択します。

## ライブデータエクスポート設定を編集する
<a name="edit-live-export-v2"></a>

ライブデータエクスポート設定を編集するには、

1. Amazon Monitron コンソールを開きます。

1. ナビゲーションペインで、**[プロジェクト]** を選択します。

1. プロジェクトが複数ある場合は、エクスポート設定を編集するプロジェクトを選択します。

1. プロジェクトのメインページにある、**[ライブデータエクスポート]** の **[アクション]** のドロップダウンメニューから、**[ライブデータエクスポート設定の編集]** を選択します。

## ライブデータエクスポートを停止する
<a name="stop-kinesis-export-v2"></a>

1. Amazon Monitron コンソールを開きます。

1. ナビゲーションペインで、**[プロジェクト]** を選択します。

1. プロジェクトが複数ある場合は、エクスポート設定を編集するプロジェクトを選択します。

1. プロジェクトのメインページにある、**[ライブデータエクスポート]** の **[アクション]** のドロップダウンメニューから **[ライブデータのエクスポートを停止]** を選択します。

1. ポップアップウィンドウで、**[停止]** を選択します。

## データエクスポートのエラーを表示する
<a name="viewing-kinesis-export-errors-v2"></a>

CloudWatch Logs のインターフェイスでエラーメッセージを表示するには、
+ Amazon Monitron コンソールで、プロジェクトのメインページにある **[ライブデータのエクスポート]** から、**[CloudWatch ロググループ]** を選択します。

## Kinesis ストリームへのサーバー側の暗号化の使用
<a name="data-export-server-side-encryption-v2"></a>

Kinesis データのエクスポートをセットアップする前に、Kinesis ストリームに対してサーバー側の暗号化を有効にできます。ただし、Kinesis データのエクスポートをセットアップした後にサーバー側の暗号化を有効にすると、Amazon Monitron はストリームに公開できなくなります。これは、Amazon Monitron に Kinesis に送信されたデータを暗号化できる [kms:GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) を呼び出す権限がないためです。

この問題を回避するには、設定を変更せず、[ライブデータエクスポート設定を編集する](#edit-live-export-v2) に記載の指示に従ってください。設定した暗号化をエクスポート設定に関連付けることができます。

# Amazon CloudWatch Logs による のモニタリング
<a name="data-export-cloudwatch-logs-v2"></a>

Amazon CloudWatch Logs を使用して、Amazon Monitron のライブデータエクスポートをモニタリングできます。測定値のエクスポートに失敗すると、Amazon Monitron は CloudWatch Logs にログイベントを送信します。エラーログにメトリクスフィルタを設定してメトリクスを生成し、アラームを設定することもできます。アラームは特定のしきい値を監視し、これらのしきい値に達したときに通知を送信したりアクションを実行したりできます。詳細については、『[CloudWatch ユーザーガイド](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)』を参照してください。

Amazon Monitron は、/aws/monitron/data-export/\$1HASH\$1ID\$1 ロググループにログイベントを送信します。

ログイベントには次の JSON 形式があります。

```
{
    "assetName": "string",
    "destination": "string",
    "errorCode": "string",
    "errorMessage": "string",
    "eventId": "string",
    "eventType": "string",
    "positionName": "string",
    "projectName": "string",
    "projectId": "string",
    "sensorId": "string",
    "gatewayId": "string",
    "siteName": "string",
    "timestamp": "string"
}
```

assetName  
+ アプリに表示されるアセット名
+ タイプ: 文字列

destination  
+ Kinesis データストリームの ARN
+ タイプ: 文字列
+ パターン: arn:aws:kinesis:\$1\$1REGION\$1\$1:\$1\$1AWS\$1ACCOUNT\$1ID\$1\$1:stream/\$1\$1STREAM\$1NAME\$1\$1 

errorCode  
+ エラーコード
+ 型: 文字列
+ 有効な値：`INTERNAL_SEVER_ERROR | KINESIS_RESOURCE_NOT_FOUND | KINESIS_PROVISIONED_THROUGHPUT_EXCEEDED | KMS_ACCESS_DENIED | KMS_NOT_FOUND | KMS_DISABLED | KMS_INVALID_STATE | KMS_THROTTLING`

errorMessage  
+ 詳しいエラーメッセージ
+ タイプ: 文字列

eventId  
+ 各測定値のエクスポートに対応する固有のイベント ID
+ タイプ: 文字列

eventType  
+ 現在のイベントタイプ
+ 型: 文字列
+ 有効な値: `measurement` ` | gatewayConnected` ` | gatewayDisconnected` ` | sensorConnected` ` | sensorDisconnected` ` | assetStateTransition` 

positionName  
+ アプリに表示されるセンサーの配置名
+ タイプ: 文字列

projectName  
+ アプリとコンソールに表示されるプロジェクト名
+ タイプ: 文字列

  

projectID  
+ Amazon Monitron プロジェクトに対応する任意のプロジェクト ID
+ タイプ: 文字列

sensorID  
+ 測定値の送信元となるセンサーの物理 ID
+ タイプ: 文字列

gatewayID  
+ Amazon Monitron サービスへのデータ送信に使用されるゲートウェイの物理 ID
+ タイプ: 文字列

siteName  
+ アプリに表示されるサイト名
+ タイプ: 文字列

timestamp  
+ Amazon Monitron サービスが測定値を受信したときのタイムスタンプ (UTC 時間)
+ タイプ: 文字列
+ パターン: yyyy-mm-dd hh:mm:ss.SSS

# エクスポートしたデータを Amazon S3 に保存する
<a name="kinesis-store-S3-v2"></a>

エクスポートしたデータを Amazon S3 に保存する場合は、以下の手順に従います。

**Topics**
+ [コンソールで Kinesis を手動で設定する](#kinesis-configure-console-v2)

## コンソールで Kinesis を手動で設定する
<a name="kinesis-configure-console-v2"></a>

1.  AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/kinesis で Kinesis コンソールを開きます。

1. ナビゲーションペインで、**[配信ストリーム]** を選択します。

1. [**Create delivery stream (配信ストリームの作成)**] を選択します。

1. [ソース] で、**[Amazon Kinesis Data Streams]** を選択します。

1. [送信先] で、**[Amazon S3]** を選択します。

1. **[ソースの設定] の [Kinesis Data Stream]** で、Kinesis データストリームの ARN を入力します。

1. **[配信ストリーム名]** に、Kinesis データストリーム名を入力します。

1. **[送信先の設定]** で [Amazon S3 バケット] を選択するか、バケット URI を入力します。

1. (任意) JSON のインライン解析を使用して動的パーティショニングを有効にします。このオプションは、ソース情報とタイムスタンプに基づいて、ストリーミング測定データを分割する場合に適しています。例えば、次のようになります。
   + **[動的パーティショニング]** で **[有効]** を選択します。
   + **[改行の区切り文字]** で **[有効]** を選択します。
   + **[JSON のインライン解析]** で **[有効]** を選択します。
   + **[動的パーティショニングキー]** に以下を追加します。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/Monitron/latest/user-guide/kinesis-store-S3-v2.html)

1. **[動的パーティショニングキーを適用]** を選択し、生成された Amazon S3 バケットプレフィックスが `!{partitionKeyFromQuery:project}/!{partitionKeyFromQuery:site}/!{partitionKeyFromQuery:time}/` であることを確認します。

1. Amazon S3 で、オブジェクトは次のキー形式を使用します: `/project={projectName}/site={siteName}/time={yyyy-mm-dd 00:00:00}/{filename}`

1. [**Create delivery stream (配信ストリームの作成)**] を選択します。

# Lambda でデータを処理する
<a name="data-export-lambda-v2"></a>

**Topics**
+ [ステップ 1: AWS リソースへのアクセス許可を関数に付与する [IAM ロール](https://docs.aws.amazon.com//lambda/latest/dg/lambda-intro-execution-role.html)を作成する](#data-export-lambda-v2-1)
+ [ステップ 2 : Lambda 関数を作成する](#create-lambda-function-v2)
+ [ステップ 3: Lambda 関数を設定する](#configure-lambda-function-v2)
+ [ステップ 4: AWS Lambda コンソールで Kinesis トリガーを有効にする](#configure-kinesis-trigger-v2)

## ステップ 1: AWS リソースへのアクセス許可を関数に付与する [IAM ロール](https://docs.aws.amazon.com//lambda/latest/dg/lambda-intro-execution-role.html)を作成する
<a name="data-export-lambda-v2-1"></a>

1. IAM コンソールの [[ロールページ](https://console.aws.amazon.com/iam/home?#/roles)] を開きます。

1. [**ロールの作成**] を選択してください。

1. **[信頼されたエンティティを選択]** ページで、以下の操作を実行してください。
   + **信頼されたエンティティタイプ**で、**AWS サービス**を選択します。
   + **ユースケース**では、**サービスまたはユースケース**で **Lambda** を選択します。
   + [**次へ**] を選択します。  
![\[IAM role creation interface showing trusted entity selection with AWS のサービス option chosen.\]](http://docs.aws.amazon.com/ja_jp/Monitron/latest/user-guide/images/lambda-role-1.png)

1. アクセス**許可の追加**ページで、次の操作を行います。
   + アクセス**許可ポリシー**で、AWSLambdaKinesisExecutionRole (および Kinesis ストリームが暗号化されている場合は AWSKeyManagementServicePowerUser) を選択します。
   + **「アクセス許可の境界を**そのまま設定する」を参照してください。
   + [**次へ**] を選択します。  
![\[Add permissions interface showing AWSLambdaKinesisExecutionRole policy selected for a new role.\]](http://docs.aws.amazon.com/ja_jp/Monitron/latest/user-guide/images/lambda-role-2.png)

1. **名前、確認、作成**ページで、次の操作を行います。
   + **ロールの詳細**の**ロール名**に、ロールの名前を入力します。例えば、*lambda-kinesis-role* です。オプションの **Description** を追加することもできます。
   + **ステップ 1: 信頼できるエンティティを選択し**、**ステップ 2: アクセス許可をそのまま追加**するの設定のままにします。ステップ **3: リソースを追跡**するためのタグを追加する を選択できます。  
![\[IAM role creation interface showing name, review, and create steps with role details and permissions.\]](http://docs.aws.amazon.com/ja_jp/Monitron/latest/user-guide/images/lambda-create-role.png)

1. **[Create role]** (ロールの作成) を選択します。

## ステップ 2 : Lambda 関数を作成する
<a name="create-lambda-function-v2"></a>

1. Lambda コンソールの **[関数]** ページを開きます。

1. [**Create function**] (関数の作成) を選択します。

1. [**設計図の使用**] を選択します。

1. **Blueprints** の検索ボックスで、**kinesis-process-record (nodejs)** または **kinesis-process-record-python** を検索して選択します。

1. [**設定**] を選択します。  
![\[Create function interface with options to author from scratch, use a blueprint, or select container image.\]](http://docs.aws.amazon.com/ja_jp/Monitron/latest/user-guide/images/lambda-create-function.png)

## ステップ 3: Lambda 関数を設定する
<a name="configure-lambda-function-v2"></a>

1. **[関数名]** を選択します。

1. 最初のステップで作成したロールを **[実行ロール]** として選択します。

1. Kinesis トリガーを設定します。

   1. Kinesis ストリーミングを選択します。

   1. **[関数の作成]** を選択します。  
![\[Lambda function configuration form with basic information and Kinesis trigger settings.\]](http://docs.aws.amazon.com/ja_jp/Monitron/latest/user-guide/images/lambda-kinesis-trigger.png)

## ステップ 4: AWS Lambda コンソールで Kinesis トリガーを有効にする
<a name="configure-kinesis-trigger-v2"></a>

1. **[設定]** タブで、**[トリガー]** を選択します。

1. Kinesis ストリーミング名の横にあるボックスにチェックを入れ、**[有効]** を選択します。  
![\[Lambda function configuration page with Triggers tab and Kinesis stream trigger highlighted.\]](http://docs.aws.amazon.com/ja_jp/Monitron/latest/user-guide/images/kinesis-process-record-lambda.png)

この例で使用されているブループリントは、選択したストリームのログデータのみを消費します。後で Lambda 関数コードを追加編集して、より複雑なタスクを実行できます。

# v2 データエクスポートスキーマを理解する
<a name="data-export-schema-v2"></a>

 各測定データ、それに対応する推論結果、ゲートウェイの接続/切断、およびセンサーの接続/切断のイベントは、1 つの Kinesis データストリームレコードとして JSON 形式でエクスポートされます。

**Topics**
+ [v2 スキーマ形式](#data-export-schema-format-v2)
+ [v2 スキーマパラメータ](#data-export-schema-parameters-v2)

## v2 スキーマ形式
<a name="data-export-schema-format-v2"></a>

```
{
    "timestamp": "string",
    "eventId": "string",
    "version": "2.0",
    "accountId": "string",
    "projectName": "string",
    "projectId": "string",
    "eventType": "measurement|gatewayConnected|gatewayDisconnected|sensorConnected|sensorDisconnected|assetStateTransition",
    // measurement
    "eventPayload": {
        "siteName": "string",
        "assetName": "string",
        "positionName": "string",
        "companyName": "string",
        "geoLocation": {
            "latitude": number,
            "longitude": number
        },
        "address": "string",
        "serialNumber": "string",
        "make": "string",
        "model": "string",
        "assetPositionURL": "string",
        "sensor": {
            "physicalId": "string",
            "rssi": number
        },
        "gateway": {
            "physicalId": "string"
        },
        "sequenceNo": number,
        "features": {
            "acceleration": {
                "band0To6000Hz": {
                    "xAxis": {
                        "rms": number
                    },
                    "yAxis": {
                        "rms": number
                    },
                    "zAxis": {
                        "rms": number
                    }
                },
                "band10To1000Hz": {
                    "totalVibration": {
                        "absMax": number,
                        "absMin": number,
                        "crestFactor": number,
                        "rms": number
                    },
                    "xAxis": {
                        "rms": number
                    },
                    "yAxis": {
                        "rms": number
                    },
                    "zAxis": {
                        "rms": number
                    }
                }
            },
            "velocity": {
                "band10To1000Hz": {
                    "totalVibration": {
                        "absMax": number,
                        "absMin": number,
                        "crestFactor": number,
                        "rms": number
                    },
                    "xAxis": {
                        "rms": number
                    },
                    "yAxis": {
                        "rms": number
                    },
                    "zAxis": {
                        "rms": number
                    }
                }
            },
            "temperature": number
        }
        "models": {
            "temperatureML": {
                "previousPersistentClassificationOutput": "string",
                "persistentClassificationOutput": "string",
                "pointwiseClassificationOutput": "string"
            },
            "vibrationISO": {
                "isoClass": "string",
                "mutedThreshold": "string",
                "previousPersistentClassificationOutput": "string",
                "persistentClassificationOutput": "string",
                "pointwiseClassificationOutput": "string"
            },
            "vibrationML": {
                "previousPersistentClassificationOutput": "string",
                "persistentClassificationOutput": "string",
                "pointwiseClassificationOutput": "string"
            }
        },
        "assetPositionId": "string"
    }
    
    // sensorConnected
    "eventPayload": {
        "siteName": "string",
        "assetName": "string",
        "positionName": "string",
        "companyName": "string",
        "geoLocation": {
            "latitude": number,
            "longitude": number
        },
        "address": "string",
        "serialNumber": "string",
        "make": "string",
        "model": "string",
        "assetPositionURL": "string",
        "sensor": {
            "physicalId": "string"
        },
        "assetPositionId": "string"
    }
    
    // sensorDisconnected
    "eventPayload": {
        "siteName": "string",
        "assetName": "string",
        "positionName": "string",
        "companyName": "string",
        "geoLocation": {
            "latitude": number,
            "longitude": number
        },
        "address": "string",
        "serialNumber": "string",
        "make": "string",
        "model": "string",
        "assetPositionURL": "string",
        "sensor": {
            "physicalId": "string"
        },
        "assetPositionId": "string"
    }
    
    // gatewayConnected
    "eventPayload": {
        "siteName": "string",
        "gatewayName": "string",
        "gatewayListURL": "string",
        "companyName": "string",
        "geoLocation": {
            "latitude": number,
            "longitude": number
        },
        "address": "string",
        "gateway": {
            "physicalId": "string"
        }
    }
    
    // gatewayDisconnected
    "eventPayload": {
        "siteName": "string",
        "gatewayName": "string",
        "gatewayListURL": "string",
        "companyName": "string",
        "geoLocation": {
            "latitude": number,
            "longitude": number
        },
        "address": "string",
        "gateway": {
            "physicalId": "string"
        }
    }
    
    // assetStateTransition
    "eventPayload": {
        "siteName": "string",
        "assetName": "string",
        "positionName": "string",
        "companyName": "string",
        "geoLocation": {
            "latitude": number,
            "longitude": number
        },
        "address": "string",
        "serialNumber": "string",
        "make": "string",
        "model": "string",
        "assetPositionURL": "string",
        "sensor": {
            "physicalId": "string"
        },
        "assetTransitionType": "measurement|userInput",
        "assetState": {
            "newState": "string",
            "previousState": "string"
        },
        "closureCode": {
            "failureMode": "string",
            "failureCause": "string",
            "actionTaken": "string",
            "resolvedModels": list<"string">
        },
        "assetPositionId": "string"
    }
}
```

## v2 スキーマパラメータ
<a name="data-export-schema-parameters-v2"></a>

 Amazon Monitron の Kinesis データエクスポートスキーマ v2 には、以下のスキーマパラメータが含まれています。v1 から更新されたパラメータもあれば、v2 に固有のパラメータもあります。例えば、`siteName` は v1 の第 1 レベルのパラメータでしたが、v2 では `eventPayload` エンティティ下の第 2 レベルのパラメータです。

timestamp  
+ Amazon Monitron サービスが測定値を受信したときのタイムスタンプ (UTC 時間)
+ タイプ: 文字列
+ パターン: yyyy-mm-dd hh:mm:ss.SSS

eventId  
+ 各測定値に割り当てられる固有のデータエクスポートイベント ID。受信した Kinesis ストリームレコードを重複排除するのに使用できます。
+ タイプ: 文字列

バージョン  
+ スキーマバージョニング
+ タイプ: 文字列
+ 値: 1.0 または 2.0

accountId  
+ Monitron プロジェクトの 12 桁の AWS アカウント ID
+ タイプ: 文字列

projectName  
アプリとコンソールに表示されるプロジェクト名。  
タイプ: 文字列

projectId  
 Amazon Monitron プロジェクトの一意の ID。  
タイプ: 文字列

eventType  
+ 現在のイベントストリーム。各イベントタイプには専用の `eventPayload` 形式があります。
+ タイプ: 文字列
+ 使用できる値: `measurement`、`gatewayConnected`、`gatewayDisconnected`、`sensorConnected`、`sensorDisconnected`、`assetStateTransition`。

**`eventType: measurement`**

eventPayload.features.acceleration.band0To6000Hz.xAxis.rms  
+ X 軸の 0～6000 Hz の周波数帯域で観測された加速度の二乗平均平方根
+ タイプ: 数値
+ 単位: m/s^2

eventPayload.features.acceleration.band0To6000Hz.yAxis.rms  
+ Y 軸の 0～6000 Hz の周波数帯域で観測された加速度の二乗平均平方根
+ タイプ: 数値
+ 単位: m/s^2

eventPayload.features.acceleration.band0To6000Hz.zAxis.rms  
+ Z 軸の 0～6000 Hz の周波数帯域で観測された加速度の二乗平均平方根
+ タイプ: 数値
+ 単位: m/s^2

eventPayload.features.acceleration.band10To1000Hz.resultantVector.absMax  
+ 10～1000 Hz の周波数帯域で観測された絶対最大加速度
+ タイプ: 数値
+ 単位: m/s^2

eventPayload.features.acceleration.band10To1000Hz.resultantVector.absMin  
+ 10～1000 Hz の周波数帯域で観測された絶対最小加速度
+ タイプ: 数値
+ 単位: m/s^2

eventPayload.features.acceleration.band10To1000Hz.resultantVector.crestFactor  
+ 10～1000 Hz の周波数帯域で観測された加速度の波高率
+ タイプ: 数値

eventPayload.features.acceleration.band10To1000Hz.resultantVector.rms  
+ 10～1000 Hz の周波数帯域で観測された加速度の二乗平均平方根
+ タイプ: 数値
+ m/s^2

eventPayload.features.acceleration.band10To1000Hz.xAxis.rms  
+ X 軸の 10～1000 Hz の周波数帯域で観測された加速度の二乗平均平方根
+ タイプ: 数値
+ m/s^2

eventPayload.features.acceleration.band10To1000Hz.yAxis.rms  
+ Y 軸の 10～1000 Hz の周波数帯域で観測された加速度の二乗平均平方根
+ タイプ: 数値
+ m/s^2

eventPayload.features.acceleration.band10To1000Hz.zAxis.rms  
+ Z 軸の 10～1000 Hz の周波数帯域で観測された加速度の二乗平均平方根
+ タイプ: 数値
+ m/s^2

eventPayload.features.temperature  
+ 観測された温度
+ タイプ: 数値
+ °C/摂氏

eventPayload.features.velocity.band10To1000Hz.resultantVector.absMax  
+ 10～1000 Hz の周波数帯域で観測された絶対最大速度
+ タイプ: 数値
+ mm/秒

eventPayload.features.velocity.band10To1000Hz.resultantVector.absMin  
+ 10～1000 Hz の周波数帯域で観測された絶対最小速度
+ タイプ: 数値
+ mm/秒

eventPayload.features.velocity.band10To1000Hz.resultantVector.crestFactor  
+ 10～1000 Hz の周波数帯域で観測された速度の波高率
+ タイプ: 数値

eventPayload.features.velocity.band10To1000Hz.resultantVector.rms  
+ 10～1000 Hz の周波数帯域で観測された速度の二乗平均平方根
+ タイプ: 数値
+ mm/秒

eventPayload.features.velocity.band10To1000Hz.xAxis.rms  
+ X 軸の 10～1000 Hz の周波数帯域で観測された速度の二乗平均平方根
+ タイプ: 数値
+ mm/秒

eventPayload.features.velocity.band10To1000Hz.yAxis.rms  
+ Y 軸の 10～1000 Hz の周波数帯域で観測された速度の二乗平均平方根
+ タイプ: 数値
+ mm/秒

eventPayload.features.velocity.band10To1000Hz.zAxis.rms  
+ Z 軸の 10～1000 Hz の周波数帯域で観測された速度の二乗平均平方根
+ タイプ: 数値
+ mm/秒

eventPayload.sequenceNo  
+ 測定のシーケンス番号
+ タイプ: 数値

eventPayload.assetPositionId  
+ 測定値が送信されるセンサー位置の識別子。
+ タイプ: 文字列

eventPayload.companyName  
+ アセットを使用している会社の名前。
+ タイプ: 文字列

eventPayload.geoLocation.latitude  
+ サイトの物理的な場所の緯度。
+ タイプ: 数値

eventPayload.geoLocation.longitude  
+ サイトの物理的な場所の経度。
+ タイプ: 数値

eventPayload.address  
+ サイトのアドレス。
+ タイプ: 文字列

eventPayload.serialNumber  
+ アセットのシリアル番号。
+ タイプ: 文字列

eventPayload.make  
+ アセットのメーカー。
+ タイプ: 文字列

eventPayload.model  
+ アセットのモデル。
+ タイプ: 文字列

`eventType: sensorConnected`

siteName  
+ アプリに表示されるサイト名
+ タイプ: 文字列

assetName  
+ アプリに表示されるアセット名
+ タイプ: 文字列

positionName  
+ アプリに表示されるセンサーの配置名
+ タイプ: 文字列

assetPositionURL  
+ アプリに表示されるセンサー URL
+ タイプ: 文字列

physicalID  
+ 測定値の送信元となるセンサーの物理 ID
+ タイプ: 文字列

eventPayload.assetPositionId  
+ 状態が変更されたセンサー位置の識別子。
+ タイプ: 文字列

eventPayload.companyName  
+ アセットを使用している会社の名前。
+ タイプ: 文字列

eventPayload.geoLocation.latitude  
+ サイトの物理的な場所の緯度。
+ タイプ: 数値

eventPayload.geoLocation.longitude  
+ サイトの物理的な場所の経度。
+ タイプ: 数値

eventPayload.address  
+ サイトのアドレス。
+ タイプ: 文字列

eventPayload.serialNumber  
+ アセットのシリアル番号。
+ タイプ: 文字列

eventPayload.make  
+ アセットのメーカー。
+ タイプ: 文字列

eventPayload.model  
+ アセットのモデル。
+ タイプ: 文字列

`eventType: sensorDisconnected`

siteName  
+ アプリに表示されるサイト名
+ タイプ: 文字列

assetName  
+ アプリに表示されるアセット名
+ タイプ: 文字列

positionName  
+ アプリに表示されるセンサーの配置名
+ タイプ: 文字列

assetPositionURL  
+ アプリに表示されるセンサー URL
+ タイプ: 文字列

physicalID  
+ 測定値の送信元となるセンサーの物理 ID
+ タイプ: 文字列

eventPayload.assetPositionId  
+ 状態が変更されたセンサー位置の識別子。
+ タイプ: 文字列

eventPayload.companyName  
+ アセットを使用している会社の名前。
+ タイプ: 文字列

eventPayload.geoLocation.latitude  
+ サイトの物理的な場所の緯度。
+ タイプ: 数値

eventPayload.geoLocation.longitude  
+ サイトの物理的な場所の経度。
+ タイプ: 数値

eventPayload.address  
+ サイトのアドレス。
+ タイプ: 文字列

eventPayload.serialNumber  
+ アセットのシリアル番号。
+ タイプ: 文字列

eventPayload.make  
+ アセットのメーカー。
+ タイプ: 文字列

eventPayload.model  
+ アセットのモデル。
+ タイプ: 文字列

 `eventType: gatewayConnected` 

eventPayload.siteName  
+ アプリに表示されるサイト名
+ タイプ: 文字列

eventPayload.gatewayName  
+ アプリケーションに表示されるゲートウェイ名
+ タイプ: 文字列

eventPayload.gatewayListURL  
+ アプリに表示されるゲートウェイ URL
+ タイプ: 文字列

eventPayload.gateway.physicalID  
+ Amazon Monitron サービスへのデータ送信のために接続したゲートウェイの物理 ID
+ タイプ: 文字列

eventPayload.companyName  
+ アセットを使用している会社の名前。
+ タイプ: 文字列

eventPayload.geoLocation.latitude  
+ サイトの物理的な場所の緯度。
+ タイプ: 数値

eventPayload.geoLocation.longitude  
+ サイトの物理的な場所の経度。
+ タイプ: 数値

eventPayload.address  
+ サイトのアドレス。
+ タイプ: 文字列

`eventType: gatewayDisconnected`

siteName  
+ アプリに表示されるサイト名
+ タイプ: 文字列

gatewayName  
+ アプリケーションに表示されるゲートウェイ名
+ タイプ: 文字列

gatewayListURL  
+ アプリに表示されるゲートウェイ URL
+ タイプ: 文字列

physicalID  
+ Amazon Monitron サービスへのデータ送信のために接続したゲートウェイの物理 ID
+ タイプ: 文字列

eventPayload.companyName  
+ アセットを使用している会社の名前。
+ タイプ: 文字列

eventPayload.geoLocation.latitude  
+ サイトの物理的な場所の緯度。
+ タイプ: 数値

eventPayload.geoLocation.longitude  
+ サイトの物理的な場所の経度。
+ タイプ: 数値

eventPayload.address  
+ サイトのアドレス。
+ タイプ: 文字列

`eventType: assetStateTransition`

eventPayload.siteName  
+ アプリに表示されるサイト名
+ タイプ: 文字列

eventPayload.assetName  
+ アプリに表示されるアセット名
+ タイプ: 文字列

eventPayload.positionName  
+ アプリに表示されるセンサーの配置名
+ タイプ: 文字列

eventPayload.assetPositionURL  
+ アプリに表示されるセンサー URL
+ タイプ: 文字列

eventPayload.sensor.physicalID  
+ 測定値の送信元となるセンサーの物理 ID
+ タイプ: 文字列

eventPayload.assetTransitionType  
+ アセットの状態遷移の理由
+ タイプ: 文字列
+ 使用できる値: `measurement` または `userInput`

eventPayload.assetState.newState  
+ アセットの新しい状態
+ タイプ: 文字列

eventPayload.assetState.previousState  
+ アセットの以前の状態
+ タイプ: 文字列

eventPayload.closureCode.failureMode  
+ この障害を確認するときにユーザーが選択した障害モード
+ タイプ: 文字列
+ 使用できる値: `NO_ISSUE` \$1 `BLOCKAGE` \$1 `CAVITATION` \$1 `CORROSION` \$1 `DEPOSIT` \$1 `IMBALANCE` \$1 `LUBRICATION` \$1 `MISALIGNMENT` \$1 `OTHER` \$1 `RESONANCE` \$1 `ROTATING_LOOSENESS` \$1 `STRUCTURAL_LOOSENESS` \$1 `TRANSMITTED_FAULT` \$1 `UNDETERMINED` 

eventPayload.closureCode.failureCause  
+ 障害を確認するときにユーザーがアプリのドロップダウンで選択した障害の原因。
+ タイプ: 文字列
+ 使用できる値: `ADMINISTRATION` \$1 `DESIGN` \$1 `FABRICATION` \$1 `MAINTENANCE` \$1 `OPERATION` \$1 `OTHER` \$1 `QUALITY` \$1 `UNDETERMINED` \$1 `WEAR` 

eventPayload.closureCode.actionTaken  
+ アプリのドロップダウンでユーザーが選択した、この異常をクローズするときに実行されるアクション。
+ タイプ: 文字列
+ 使用できる値: `ADJUST` \$1 `CLEAN` \$1 `LUBRICATE` \$1 `MODIFY` \$1 `NO_ACTION` \$1 `OTHER` \$1 `OVERHAUL` \$1 `REPLACE` 

eventPayload.closureCode.resolvedModels  
+ 問題が発生したモデルのセット。
+ タイプ: 文字列のリスト
+ 使用できる値: `vibrationISO` \$1 `vibrationML` \$1 `temperatureML` 

eventPayload.assetPositionId  
+ 状態が変更されたアセット位置の識別子。
+ タイプ: 文字列

models.temperatureML.persistentClassificationOutput  
+ 機械学習ベースの温度モデルからの永続的な分類出力
+ タイプ: 数値
+ 有効な値：`UNKNOWN | HEALTHY | WARNING | ALARM`

models.temperatureML.pointwiseClassificationOutput  
+ 機械学習ベースの温度モデルからのポイントごとの分類出力
+ 型: 文字列
+ 有効な値：`UNKNOWN | INITIALIZING | HEALTHY | WARNING | ALARM`

models.vibrationISO.isoClass  
+ ISO ベースの振動モデルで使用される ISO 20816 クラス (機械振動の測定と評価に関する規格)
+ 型: 文字列
+ 有効な値：`CLASS1 | CLASS2 | CLASS3 | CLASS4`

models.vibrationISO.mutedThreshold  
+ ISO ベースの振動モデルからの通知をミュートするしきい値
+ 型: 文字列
+ 有効な値：`WARNING | ALARM`

models.vibrationISO.persistentClassificationOutput  
+ ISO ベースの振動モデルからの永続的な分類出力
+ 型: 文字列
+ 有効な値：`UNKNOWN | HEALTHY | WARNING | ALARM`

models.vibrationISO.pointwiseClassificationOutput  
+ ISO ベースの振動モデルからのポイントごとの分類出力
+ 型: 文字列
+ 有効な値：`UNKNOWN | HEALTHY | WARNING | ALARM | MUTED_WARNING | MUTED_ALARM`

models.vibrationML.persistentClassificationOutput  
+ 機械学習ベースの振動モデルからの永続的な分類出力
+ 型: 文字列
+ 有効な値：`UNKNOWN | HEALTHY | WARNING | ALARM`

models.vibrationML.pointwiseClassificationOutput  
+ 機械学習ベースの振動モデルからのポイントごとの分類出力
+ 型: 文字列
+ 有効な値：`UNKNOWN | INITIALIZING | HEALTHY | WARNING | ALARM`

assetState.newState  
+ 測定を処理した後の機械の状態
+ 型: 文字列
+ 有効な値：`UNKNOWN | HEALTHY | NEEDS_MAINTENANCE | WARNING | ALARM`

assetState.previousState  
+ 測定を処理する前の機械の状態
+ 型: 文字列
+ 有効な値：`UNKNOWN | HEALTHY | NEEDS_MAINTENANCE | WARNING | ALARM`

eventPayload.companyName  
+ アセットを使用している会社の名前。
+ タイプ: 文字列

eventPayload.geoLocation.latitude  
+ サイトの物理的な場所の緯度。
+ タイプ: 数値

eventPayload.geoLocation.longitude  
+ サイトの物理的な場所の経度。
+ タイプ: 数値

eventPayload.address  
+ サイトのアドレス。
+ タイプ: 文字列

eventPayload.serialNumber  
+ アセットのシリアル番号。
+ タイプ: 文字列

eventPayload.make  
+ アセットのメーカー。
+ タイプ: 文字列

eventPayload.model  
+ アセットのモデル。
+ タイプ: 文字列

# Kinesis v1 から v2 への移行
<a name="migration-from-v1-to-v2"></a>

 現在 v1 データスキーマを使用している場合は、すでに Amazon S3 へデータを送信しているか、Lambda を使ってデータストリームのペイロードの処理を進めているかもしれません。

**Topics**
+ [データスキーマを v2 に更新する](#updating-to-v2)
+ [Lambda を使ってデータ処理を更新する](#updating-with-lam)

## データスキーマを v2 に更新する
<a name="updating-to-v2"></a>

 すでに v1 スキーマでデータストリームを設定している場合は、次の手順でデータエクスポートプロセスを更新できます。

1. Amazon Monitron コンソールを開きます。

1. プロジェクトに移動します。

1.  [現在のライブデータのエクスポート](monitron-kinesis-export-v2.md#stop-kinesis-export-v2)を停止します。

1.  ライブデータエクスポートを開始して、新しいデータストリームを作成します。

1. 新しく作成したデータストリームを選択します。

1. **[ライブデータエクスポートを開始]** を選択します。この時点で、新しいスキーマによってペイロードがデータストリーム経由で送信されます。

1. (任意) Kinesis コンソールに移動し、古いデータストリームを削除します。

1. v2 スキーマを使用して、新しく作成したデータストリーム用の新しい配信方法を設定します。

 これで、新しいストリームで v2 スキーマに準拠したペイロードを新しいバケットに配信できます。バケット内のすべてのデータを処理したい場合に備えて、形式を統一するために 2 つの異なるバケットを使用することをおすすめします。たとえば、Athena や などの他の サービスを使用します AWS Glue。

**注記**  
データを Amazon S3 に配信していた場合、v2 スキーマを使用して Amazon S3 にデータを配信する方法の詳細については、「[エクスポートしたデータを Amazon S3 に保存する](kinesis-store-S3-v2.md#kinesis-store-S3-title-v2)」で手順をご確認ください。

**注記**  
Lambda 関数を使用してペイロードを処理していた場合は、「[Lambda でデータを処理する](https://docs.aws.amazon.com/Monitron/latest/user-guide/data-export-lambda.html)」で手順をご確認ください。[Lambda を使って更新する](#updating-with-lam)セクションでは、より詳細な情報が記載されていますので、合わせて参照してください。

## Lambda を使ってデータ処理を更新する
<a name="updating-with-lam"></a>

 Lambda でデータ処理を更新するためには、v2 データストリームがイベントベースになったことを考慮する必要があります。最初の v1 Lambda コードは次のようなコードになっているかもしれません。

```
import base64

def main_handler(event):
    # Kinesis "data" blob is base64 encoded so decode here:
    for record in event['Records']:
        payload = base64.b64decode(record["kinesis"]["data"])
     
        measurement = payload["measurement"]
        projectDisplayName = payload["projectDisplayName"]
     
        # Process the content of the measurement
        # ...
```

 v1 データスキーマは廃止予定であるため、以前の Lambda コードはすべての新しいデータストリームで機能するわけではありません。

 以下の Python サンプルコードでは、データスキーマ v2 を使用して Kinesis ストリームからのイベントを処理します。このコードは、新しい `eventType` パラメーターを使用して、処理を適切なハンドラーに向けます。

```
import base64

handlers = {
    "measurement": measurementEventHandler,
    "gatewayConnected": gatewayConnectedEventHandler,
    "gatewayDisconnected": gatewayDisconnectedEventHandler,
    "sensorConnected": sensorConnectedEventHandler,
    "sensorDisconnected": sensorDisconnectedEventHandler,
}

def main_handler(event):
    # Kinesis "data" blob is base64 encoded so decode here:
    for record in event['Records']:
        payload = base64.b64decode(record["kinesis"]["data"])
          
        eventType = payload["eventType"]
        if eventType not in handler.keys():
            log.info("No event handler found for the event type: {event['eventType']}")
            return 
     
        # Invoke the appropriate handler based on the event type.
        eventPayload = payload["eventPayload"]
        eventHandler = handlers[eventType] 
        eventHandler(eventPayload)

def measurementEventHandler(measurementEventPayload):
    # Handle measurement event
    projectName = measurementEventPayload["projectName"]
    
    # ...

def gatewayConnectedEventHandler(gatewayConnectedEventPayload):
    # Handle gateway connected event

# Other event handler functions
```