Kinesis Stream の中身を追いかけて出力する k-iter に verbose mode を付けた
0.3.0 でございます。
呼び出し方と形式
--verbose を付ける。以上!
k-iter --verbose -n sample-stream -r ap-northeast-1
形式
JSON で出してます。
既定ではデータを UTF8 の文字列としてだします。
{"ApproximateArrivalTimestamp":1533704447.987,"Data":"155.103.165.228 - - [08/Aug/2018:14:00:47 +09:00] \"DELETE /list\" 200 3568 \"-\" \"Mozilla/5.0 (Windows NT 6.0; Win64; x64; rv:5.8) Gecko/20100101 Firefox/5.8.6\"\n","PartitionKey":"9612982382","SequenceNumber":"49587101216856299235294266286047359784703484607321866242"}
背景
Kinesis Stream の中を追跡する際には、そのデータがいつ投入されたのか、ってのも大事かと思います。
データ生成のタイムスタンプとデータ投入のタイムスタンプを比べたい感じです。
データ生成は自分たちで埋め込んで頑張りますが、データ投入は Kinesis Stream のレコード情報にあるので、そちらを利用したいです。
jq などで整形・加工しましょう、ってスタンスです。これ以上は頑張らないです。
現在のオプション
--help で確認できるオプションは以下のような感じ。
--iterator-type 増やしたり、--data-format 追加したりもしてました。
USAGE:
k-iter [FLAGS] [OPTIONS] --region <NAME> --stream-name <NAME>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
--verbose Enable verbose mode.
OPTIONS:
--data-format <TYPE> Set data output-format. [default: UTF8_STRING] [possible values: RAW_BYTES,
RAW_STRING, UTF8_STRING]
-t, --iterator-type <TYPE> Sets iterator type. [default: LATEST] [possible values: LATEST, AT_SEQUENCE_NUMBER,
AFTER_SEQUENCE_NUMBER, AT_TIMESTAMP, TRIM_HORIZON]
-r, --region <NAME> Sets a region name. [possible values: ap-northeast-1, ap-northeast-2, ap-south-1, ap
-southeast-1, ap-southeast-2, ca-central-1, eu-central-1, eu-west-1, eu-west-2, eu
-west-3, sa-east-1, us-east-1, us-east-2, us-west-1, us-west-2, us-gov-west-1, cn
-north-1, cn-northwest-1]
--sequence-number <NUM> Set Sequence number when Iterator Type is AT_SEQUENCE_NUMBER or
AFTER_SEQUENCE_NUMBER.
-s, --shard-id <ID> Set shard id. [default: shardId-000000000000]
-n, --stream-name <NAME> Sets a stream name.
--timestamp <TIMESTAMP> Set timestamp(UNIX Epoch milliseconds) when Iterator Type is AT_TIMESTAMP.
つづき
終了条件の指定、とかですかねー。ある条件に到達したらプロセスを終了する的な。
- N レコードとったら
- ある日付に到達したら
- あるシーケンスナンバーに追い付いたら
- 先頭に追い付いたら
できそうなのはこんなもんでしょうか?
あとは複数シャードもかな?