ブログトップ 記事一覧 ログイン 無料ブログ開設

wyukawa’s blog

2017-05-22

洞爺湖マラソン走ってきた

第43回洞爺湖マラソン2017【公式】

3年連続3回目の出場で結果はネットタイム4時間21分58秒でした。

天気良かったです。というか良すぎて暑かった。最高気温20度ぐらいまでいったと思います。そのせいか僕より後方では30km以降に給水が切れたらしいです。

それ、まずいでしょ。。。という。完走率も例年より下がったんじゃないかという気がします。

これは洞爺湖マラソンに限らないんですけど、フルマラソンって後ろの方になると給水、給食がなくなる危険性があります。僕はフルマラソン10回以上走っていて一番遅い時で4時間40分ぐらいで給水、給食がなかった経験はないですが、runnetのレポを見ていると給水、給食がなかったという報告をちらほら見ます。給水がなくなるのはそんなに多くないと思うけど。なのでサブ5ぐらいの走力があった方が良いとは思います。

本来は走力に関係なく、給水、給食がいきわたるべきでしょうけど、あまりにも余ったらよくないだろうし、今回みたいに例年より気温が高いと給水の消費が増えます。

ただ給食がなくなるのはまだしも給水がなくなるのは危険なので、その分は参加費値上げしてもまかなかった方がいいんじゃないかなと個人的には思います。

なお洞爺湖マラソンは景色いいし、しそジュースうまいし、全体としては良い大会です。ただゴミ箱が少ないせいか、紙コップが道端に大量に捨てられてました。。。

ともあれこれで僕の今シーズンは終了です。最近はタイムもめっきり伸びなくなってるのでトレーニングのやり方変えるとかダイエットするとかしないといけないかなあと思う今日この頃です。

2017-05-04

那覇に来てます

2年前に石垣島に行ったんだけど、沖縄本島には行ったことがなかったので来てみました。

石垣島へ一人旅してきました - wyukawa’s blog

5/1に来て明日の5/5に帰ります。

僕は車の免許を持っていないのでモノレールとバスを使って移動しました。

5/1はまず国際通りに行って晩御飯

f:id:wyukawa:20170504191944j:image

5/2は首里城に行きました。モノレールの1日乗車券を使うと首里城に入る時の料金もちょっと割引になります。

f:id:wyukawa:20170504191945j:image

塗装中だったみたい。この後に赤嶺駅から無料シャトルバスを使って瀬長島へ。

5/3は意を決して沖縄美ら海水族館へ行きました。

やんばる急行バスの始発で県庁北口から行きました。6:50発です。

すぐ満員になって、補助席だけじゃなく入り口のそばに地べたに座る人も出てくるぐらいで、途中からはもう乗れないので断ってました。すごいな。。。

水族館でジンベエザメをみてきました。でかい。

f:id:wyukawa:20170504191946j:image

餌をやるショーもあってマントなんとかというサメ?が餌を宙返りしながら食べてました。

f:id:wyukawa:20170504191947j:image

イルカのショーをみようかと思ったけどバスの時間がせまっていたので断念して帰ることに。

帰りのバスも満員でした。。。

5/4は平和祈念公園へバスを乗り継いで行きました。

5/2,3は天気悪かったんだけどこの日は晴天

平和の丘

f:id:wyukawa:20170504191948j:image

平和の礎

f:id:wyukawa:20170504191949j:image

いい眺め

f:id:wyukawa:20170504191950j:image

2017-04-30

予期せぬクエリ、データに対してロバストにする

ログ解析基盤を運用しているとユーザから予期せぬクエリやデータが来てシステムが不安定になることがあります。そういうケースに遭遇してどうハンドリングしてきたかをメモっておきます。


1回のprestoクエリの結果が100GBを超える

そんなクエリを連発されたらあっという間にDisk Fullになっちゃうので、うちの環境だとyanagishimaがpresto web uiなのでyanagshimaで、クエリ実行時間が30分を超えたら、もしくは結果サイズが1GBを超えたら、エラーを返すようにしました。

yanagishima以外でクエリを実行されるケース、例えばbatch、もあるので、query.max-run-timeを3hにしてます。つまり実行時間が3時間超えたらエラー

これデフォルトが100日になっててFacebookどういう運用しているんだろうという。。。

https://github.com/prestodb/presto/blob/0.171/presto-main/src/main/java/com/facebook/presto/execution/QueryManagerConfig.java#L54


ElasticsearchでOutOfMemoryError

以前OOMEが出た時はCircuit Breakerを強化しました。

ElasticsearchのCircuitBreaker - wyukawa’s blog

今回はJava heap space when using unique count on specific field - Elasticsearch - Discuss the Elastic Stackだったので、precision_thresholdを下げました。あとついでにindices.breaker.request.limitを1%にしました。

ほんとうはprecision_thresholdのデフォルト値をいじれれば良いと思ったのですが、できない模様でした。

https://github.com/elastic/kibana/issues/6859


KafkaでMessageSizeTooLarge

うちの環境だとfluent-plugin-kafkaでKafkaにデータを入れているのですが、サイズが大きすぎるとエラーになります。エラーになってもfluentdがリトライし続けますが、成功することは無いのでそのデータは捨てるパッチを書いてmergeされたのでこれで運用しています。

https://github.com/fluent/fluent-plugin-kafka/pull/118


KafkaでDeliveryFailed

Kafkaのtopic名に.と_が両方入っているとトラブルになる可能性が高く、エラーが出たらそのデータは捨てるパッチを書いてmergeされたのでこれで運用しています。

https://github.com/fluent/fluent-plugin-kafka/pull/126


この辺のKafkaでエラーになる場合にfluent-plugin-kafka側でそのエラーデータを破棄してロギングするだけというのは過去にもありました。

https://github.com/fluent/fluent-plugin-kafka/issues/80


そんな感じです。

2017-04-28

yanagishima v3をリリースしました。

yanagishima v2をリリースしました。 - wyukawa’s blog

3週間前にv2をリリースしたyanagishimaですが、v3もリリースしました。

https://github.com/wyukawa/yanagishima


結構変わっていて作っている方もあんまり覚えていないんですがw 重要なポイントをいうとクエリ実行を非同期にしました。これによって使ってる側から見るとユーザがクエリ実行中にクエリの進捗状況をプログレスバーで見れるようになりました。クエリのkillもできます。

今まではクエリ一覧画面にいって、そこから自分のクエリを探してkillする必要がありましたが、その必要がなくなりました。

実装面の話をすると今まではクエリをsubmitしたら同期的に実行して全部終わったら結果表示という仕方をしていました。これを非同期実行にしてまずprestoのquery idを取得して、これをもとに進捗状況を見せたりクエリのkillを実行できるようにしました。


それ以外にはshare機能があるのですが、これは認証、権限管理とセットじゃないと意味をなさない機能です。

yanagishimaは認証機能を持っておらずこれは別のソフトを使ってくださいというスタンスです。例えばApacheでリバースプロキシしてかつLDAP連携してとかそういう話です。

で、権限管理機能はgithub.com上ではコメントアウトしてオフにしてます。権限管理機能の説明をすると長くなるし、その機能が必要なユーザもまだいないだろうしということで。

僕の環境ではその権限管理をオンにしてて、リバースプロキシ済みのリクエストにHTTPヘッダを追加してそれを元にyanagishimaで権限管理をpresto単位で行ってます。

権限管理をしているので、クエリを実行したりクエリ結果を見れないユーザがいるわけですが、そのようなユーザに対してもクエリおよびクエリ結果を共有したいケースがあるのでそのためのshare機能です。特定のクエリおよびクエリ結果に対してユーザがpublishボタンを押すと別途パーマリンクが生成されて、それを共有するという流れになります。


非同期、share以外ではbookmark機能も一新しています。

下記のようなクエリテンプレートを登録して実行するときにパラメータ置換をすることができます。

select * from hoge where yyyymmdd=${yyyymmdd} limit ${limit}

他にはグラフ表示の機能もあります。

という具合に機能が盛りだくさんになってきているので社内でまず説明会をしようかなと思っています。


注意事項:

社内ではAPIサーバー側とSPA側をリポジトリ分けて開発しているのですが、github.com上では一つにしてます。

で、社内版ではどこの機能が使われているかをトラッキングしていて、github版ではそれは不要なので削除してます。

そういうこともありSPA側は随時github.comにあげているわけではなくて、作業が一段落したらという感じになってます。

APIサーバー側は特にそういうのが無いので随時github.comにあげています。そういう事情があるのでgithub.comのmasterからビルドして動かそうとすると動かない可能性が高いです。

2017-04-09

掛川・新茶マラソンにいってきた

去年は長野マラソンに行ってパスしたので2年ぶり3回目の参加です。

結果はグロスタイムが4時間33分21秒、ネットタイムが4時間31分17秒でした。衰えは隠せ無い。。。

2年前はサブ4で走ったんだけど、よく走れたな。

この大会はアップダウンが結構きついです。特にラストが上りなので辛い。。。

でも戦国汁、バナナ、メロン、いちご、オレンジが美味しかったです。あと緑茶も良かった。