2017年11月3日金曜日

SlimにMonologのContextは反映されない

Monologを利用したときログの付加情報として
Contextを設定すると内容が反映されますが
Slimで利用すると反映されません。

Slimでログを書き込むときに呼び出すメソッドの
第2引数にContext情報を渡せますが、実際には
渡したContext情報は第1引数のメッセージに
情報を上書きする機能のようです。
内部でstrstrを利用して文字列の置換を行っています。

期待していた動作と違いますが、第1引数の情報を
文字列ではなく配列にすることで似たようなことは
できるので、これで対応しようと思います。

2017年8月31日木曜日

2017年8月25日に発生した通信障害は大変だった

2017年8月25日に発生した通信障害の原因は
インターネットに関する設定の誤りみたいですね。
このような事態は中々ないと思いたいですが
当時を振り返ってみて整理してみようと思います。

お昼過ぎに顧客から閲覧できないという問い合わせが発生。
確認したところ、こちらからは問題なく閲覧できたので
一旦は現状報告を行い終了しました。

しかし、気になってふとSNSを見てみると
「繋がらない」、「アクセスしづらい」を含む
メッセージが現れるように…

普段とは違う感じを察し、まずは利用しているサービスの
障害情報を確認したところ障害が発生している情報が出て
いたので社内の関係者に内容を連絡。
次にSNSで障害に関する内容が流れていないか検索に
かけてリアルタイムでチェック。
ニュースサイトも確認してデマではない様子。

再度、落ち着いて稼働サービスを確認し閲覧できることを
確認できたので特定の環境下で影響していると推測。

その後は「閲覧できない」に関する問い合わせが来ても
「今日発生した障害が影響している可能性あり」と
「一度社内の担当の方へ確認してください」で対応し
結果的には事なきを得ました。

真っ先に確認することは障害情報ですね。
後はヘルスチェックが行えるよう整備したり、SNSなどで
特定のキーワードをチェック、botで監視するのも
有効かなと思いました。
何か問題が発生したときのその後のエンドユーザーへの
情報発信も整備しなければと。

コレというベストプラクティスがあれば助かりますが
まずは情報収集から始めなければ。

2017年6月30日金曜日

Google Play Music 3ヶ月100円キャンペーンを利用してみて

Google Play Musicの3ヶ月100円キャンペーンを利用した
結果、定期購入は止めました。
3ヶ月音楽ライフを過ごしてみての感想です。

これまで良いなと思っても購入までにはしなかった曲が
聞くことができCD何枚分かは得したかなと思います。

しかし好きなアーティストの曲が1曲も存在せずショックでした。
これが定期購入をしなかった決め手です。
同じレーベルから別のアーティストさんの曲は出ているのに
何故?と思いましたが、何か基準や理由があるのでしょうか。

Google Playの「音楽」からは購入できるのでGoogle Play Musicでも
あるかなと思っていましたが、現実は甘くなく必ずしもあるとは
限らないと知りました。
利用するまではどんな曲が聞けるのか分からなかったので
利用してからのお楽しみということでしょうか。

Google Play Musicで聞く事のできない曲は購入して聞いてくださいね。
ということですね。

2017年5月7日日曜日

AbemaTVが502を返して閲覧できなくなったときにしたこと

大型連休の最終日AbemaTVを見ていたら
画面が固まり、リロードすると502を返してきました。
こんなときインフラの担当者は裏側で大変なことに
なっているのかなと想像すると怖くなります。
アクセス過多によってサーバが落ちてしまう経験は
まだないので想像でしかありませんが。

AbemaTVで遭遇したこと
  1. 見ているチャンネルの画面が固まる
  2. 見ているチャンネルでリロードすると
    502またはSorry画面が表示される
  3. 見ているチャンネルを再リロードしても
    502画面がすぐに表示される
  4. AbemaTVのトップページにアクセスしても
    502画面が表示される
  5. AbemaTVのサーバが落ちたと判断
  6. Twitterで情報収集
  7. 30~40分後にAbemaTVのトップページに
    アクセスするとチャンネル一覧が表示される
  8. トップページのチャンネル一覧から
    見たいチャンネルを選択すると閲覧できた
見ているチャンネルでリロードするとSorry画面が
表示されて見れない状態が続いていましたが、
サーバが立ち直ったのかトップページのチャンネル
一覧が閲覧でき、そこからチャンネル選択することで
見ることができました。

Twitter上ではアプリからだと閲覧できるという情報も
ありました。運悪く電池切れで試すことはできず。
リロードを続けるとアクセス負荷も増えると思ったので
すぐに502画面を返した後は控えました。

閲覧できなくなったときは
  • スマートデバイスのアプリを利用する
  • ブラウザを再起動してトップページから確認
それでも閲覧できないときは復旧するのを待ちながら
Twitter公式アカウントをチェックすることでしょうか。

無料でいろんな番組が見れて重宝していますが
アクセス過多でも耐えられるよう願うばかりですし
インフラは何を使っているのか気になりました。

番組視聴終了後のCMで「番組を見逃したときは」
という触れ込み。サーバが落ちていたら見逃しも
何もないのですが。

Twitter公式アカウントで今回のサーバ障害が原因で
視聴できなかった番組の再放送に関する発信があったようです。
期間限定だと思いますので、時間の都合が合えば
視聴しようと思います。

2017年4月23日日曜日

プログラミング用フォントにMyricaをインストール

プログラミング用に適したフォントを探していたところ
Myrica(ミリカ)というフォントを見つけました。

以前プログラミング用に適した別のフォントRictyを
使ってみようと考えたものの、ライセンスの影響で自分で
コンパイルする必要があり環境を用意するのも億劫になり
諦めていました。

Windowsに入っているConsolasというフォントを
利用していて視認性が高くプログラミングで困ることは
なかったのですが、久しぶりに探してみたところ
今回のフォントを見つけたのです。

詳細はこちらの配布元にありますが、特に気になった点を。

  • 導入を諦めたRictyの多くの特徴を継承していること。
    Rictyの視認性が良い感じだったのでありがたいです。
  • 配布元にフォントファイルが用意されていること。
    導入を諦めた理由の環境の用意が必要なく、配布元から
    圧縮ファイルをダウンロードして解凍して
    フォントファイルをインストールするだけで利用できる
    使い始めのハードルが低いこと。
インストールが容易でプログラミングに適しているフォントを
探していたので、一度Rictyのインストールを諦めたことが
ある場合は試してみても良いかもしれません。

2017年3月12日日曜日

Google Play Music 3ヶ月100円キャンペーンでVプリカは利用できるか

Google Play Musicで何度か実施されている3ヶ月100円キャンペーン
通常月額980円のところ3ヶ月を100円で利用できるので
期間中は月額33円となりますね。
また期間中は試用期間として扱われ、試用期間終了後は
定期購入となるようです。

今なら100円払えば5月末まで聞き放題となるので
利用してみましたが、購入完了までに少し苦労しました。
まずGoogle Playの音楽や動画購入時に利用できていた
Vプリカが使えません
購入時に下記のメッセージが表示され購入失敗扱いとなります。
お支払い方法が承認されませんでした。別のお支払方法を選択するか、
しばらくしてからもう一度お試しください。 [BM-CPEC-01]
Google Play Music は現在エラーが発生しています。
数分後にもう一度お試しください。
メッセージの通り数分後に何度試しても失敗。
確認したところVプリカの利用できない加盟店に明記されていました。
利用できない加盟店を確認したい|ネット専用Visaプリペイドカード
一覧中のか行 Google Music(月額:聞き放題)
残念です。
キャンペーン適用料金の試用期間でもクレジットカードが必要になります。

クレジットカードを利用する場合はログイン済みのGoogleアカウントから
Google Playにアクセス、左メニューの「アカウント」から
「お支払い方法を追加」の「クレジットカードかデビットカードを追加」で
追加します。
あとは再度、Google Play Musicのキャンペーン適用料金を確認し
追加したクレジットカードを選択で購入することができました。

少しの間ですが音楽ライフを満喫しようと思います。
あと購入するとき夜遅かったので、もしかしたら時間で換算したとき
1日分を失うかもしれないと思ったのですが、0時を回った後でも
前日の日付で計算されていました。
日付の基準は日本時間ではなく米国時間なのかもしれません。
購入するときは時間も気をつけないと。

2017年3月1日水曜日

pkillでまとめてプロセスを削除

pkillというコマンドで条件に一致する実行中の
プロセスをまとめてkillできます。

pgrepというコマンドは条件に一致する実行中の
プロセスを探し出してくれます。
ps aux | grepでも同じことはできますが
こちらの場合grepは除外されません。

プロセスssh-agentの場合
pgrep -l -f 'ssh-agent'でプロセスとPIDを表示
pkill -f 'ssh-agent'でプロセスをkill
これで終了。
プロセスをまとめてkillする場面ではこちらが
便利ですね。