投稿

9月, 2018の投稿を表示しています

EBに置いたrailsからAmazon Kinesis Data FirehoseでlogをamazonESに投げる

はじめに ちょっとググるとamazonESにログを送信するのにfluentd(td-agent)を利用するケースが多いですが、その場合以下のライブラリを利用するみたいなのが多く出てきます。 https://github.com/atomita/fluent-plugin-aws-elasticsearch-service ただ、メンテナンスされてないっぽいのと、Amazon Kinesis Data Firehoseを利用したほうが楽そうだったので設定してみました。 ※EBの設定はしてあるものとします Railsの設定 logrageでjsonのlog吐き出す 参考 https://qiita.com/ichi_s/items/7cf6ce5dbfaa00976dd4 Gemfile gem 'lograge' gem 'logstash-event' gem "rack-user_agent" config/initializers/lograge.rb Rails.application.configure do config.lograge.enabled = true config.lograge.base_controller_class = ['ActionController::API', 'ActionController::Base'] config.lograge.formatter = Lograge::Formatters::Logstash.new config.lograge.keep_original_rails_log = true config.lograge.logger = ActiveSupport::Logger.new "#{Rails.root}/log/lograge_#{Rails.env}.log" config.lograge.custom_options = lambda do |event| payload = event.payload data = payload.slice(*%i( uuid host

Xcode10対応

はじめに Xcode10になって対応した内容を簡単にまとめ エラー1 Multiple commands error when building with Xcode 10 いろいろ解決方法が出ているが(Copy Bundle Resource のinfo.plist削除、Product Module Nameをrenameなど)どれをやっても駄目なのでLegacy Build systemでとりあえず逃げる。(自分の場合はpods関連っぽいのでpodのupdateに期待) https://stackoverflow.com/questions/50718018/xcode-10-error-multiple-commands-produce エラー2 2018-09-22 12:34:06.586869+0900 Nekostabe[2645:713106] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Failed to allocate data stores for 2147483647 rows in section 8. Consider using fewer rows' 結構ハマりましたが、enumの値を取得する箇所で、rawValueするべき箇所がなぜかhashValueになっていて正しい数字が返らずエラーになっていた(今まではたまたま動いていた?)。 例 enum RowIndex { case header case content case footer case count } override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { //return RowIndex.header.hashValue 今までは大丈夫だったが、今回動かなくなった return RowIndex.header.rawValue } ついでにswift 4.2から採用されたe