Amazon最近公布了旗下Amazon Kinesis Service的更新。在此次更新中,Amazon Kinesis Streams和Amazon Kinesis Firehose服務增加了三個新功能,包括支持Elasticsearch Service Integration(Elasticsearch服務集成)、Shard-Level Metrics(Shard級度量指標),以及Time-Based Iterators(基于時間的迭代器)。
Amazon Elasticsearch服務集成
Kinesis Firehose與Amazon Elasticsearch的集成使得開發者能夠將數據從Amazon Kinesis Firehose交付流(Delivery stream)移動至Amazon Elasticsearch服務群集。
隨著數據進入Kinesis Firehose交付流,將根據配置進行緩沖,隨后通過批量插入的方式將其存入Elasticsearch服務。這些交付流還可以通過AWS管理控制臺進行壓縮和加密。
這種集成的使用場景包括服務器日志的索引和分析,點擊流和社交媒體流量等。AWS產品戰略總經理Matt Wood表示,這個新功能“非常適合日志分析和應用程序監視”。
一旦將數據發布至Elasticsearch,隨后即可使用諸如Kibana等工具對其進行分析和可視化。
Shard級度量指標
一個Kinesis Stream可包含一個或多個Shard。Kinesis Stream中的Shard代表讀寫能力。每個Shard可提供1MB/秒數據輸入和2MB/秒數據輸出。Shard將按照使用小時數收費,每秒鐘最多可處理1000條記錄。
新提供的Shard級度量指標可供用戶了解Kinesis Stream中每個Shard性能的詳細信息。總的來說,目前共有6個可用度量指標,每個指標的狀態每分鐘更新一次。這些度量指標將按照CloudWatch每個指標的定價模型進行收費。
Amazon已經公布了目前Kinesis Streams可用的每個度量指標的詳細信息:
IncomingBytes – 已經成功PUT至Shard的字節數量。 IncomingRecords – 已經成功PUT至Shard的記錄的數量。 IteratorAgeMilliseconds – 針對一個Shard調用GetRecords所返回的最后一條記錄的壽命(以毫秒計)。值為“0”意味著目前正在讀取的記錄已經完全趕上了流的速度。 OutgoingBytes – 從Shard獲得的字節數量。 OutgoingRecords – 從Shard獲得的記錄數量。 ReadProvisionedThroughputExceeded -通過GetRecords獲取的超過每秒5次讀取或每秒2MB數據的限制的Shard數量。 WriteProvisionedThroughputExceeded – 由于超出Shard每秒1000條記錄或每秒1MB數據的限制而進行限流后,已經被拒絕的記錄數量。用戶可以使用這些信息估算自己的系統性能。例如可以檢測上游應用程序發布數據的速度是否過快,超過了下游應用程序(Consuming application)的處理能力進而產生吞吐率瓶頸。
基于時間的迭代器
當應用程序從流中讀取數據時,為了以正確的順序拉取正確的數據,需要追蹤數據在流中的位置。在Kinesis Streams中可以使用迭代器實現該功能。在本次更新之前可以使用順序號、最老記錄或最新記錄作為迭代器。
在AWS的此次更新中,用戶已經可以指定時間戳決定要從哪里開始處理自己的流。這種功能的一個用例是:當下游應用程序經歷計劃內停機時,發布方可能依然在向流中發布新數據。默認情況下,Kinesis Stream最多可存儲24小時的數據,這樣消費應用程序就可以通過提供時間戳,從上次中斷的地方繼續處理流中發布的數據。
查看英文原文:Amazon Releases Kinesis Service Update