Pathee engineering blog

世界をしなやかに変えるエンジニアたちのブログ

Serverlessで管理しているAWS LambdaにSentryを導入してエラーを検知する

エンジニアのkeisei1092です。

Serverlessで管理しているAWS LambdaにSentryを導入して、エラーを検知したいと思いましたが、日本語の記事があまりなかったので残しておきたいと思います。

この記事では、 Netflix-Skunkworks / raven-python-lambda を使っていきたいと思います。Sentry公式では sentry_sdk がインストールできますが、以下の理由で前者を選択しました。

  • エラーのスタックトレースを出力してくれるため
  • メモリに関する警告を出力してくれるため
  • タイムアウトに関する警告を出力してくれるため
  • catchされなかった例外を出力してくれるため

(これらは sentry-sdk でも可能ですが、設定が必要です)

導入

raven-python-lambda をインストール

プロジェクトの Pipfile に以下のように追記します。

raven-python-lambda = "*"

pipenvを更新します。

pipenv install

serverless.yml環境変数を指定していきます。

provider:
  environment:
    SENTRY_ENVIRONMENT: ${opt:stage, self:provider.stage}
    SENTRY_DSN: <あなたのSentryプロジェクトのSENTRY_DSN>

各lambdaの run 関数を、 @RavenLambdaWrapper() でくくります。

from raven import Client
from raven_python_lambda import RavenLambdaWrapper

@RavenLambdaWrapper()
def run(event, context):
  # 試しにエラーなどを出力してみる
    logging.debug('DEBUG レベルのログ')
    logging.info('INFO レベルのログ')
    logging.warning('WARN レベルのログ')
    logging.error('ERROR レベルのログ')
    raise Exception('this is exception.')

(SentryからSlackの通知は、別の記事をご参考ください)

f:id:pathee:20200308101755p:plain

これで、エラーが通知されました。

お手軽にエラー監視環境が作成できるので、皆さんもぜひ試してみてください。

VPS(Visual Positioning System)の可能性を語るの巻

どうも、Patheeの寺田です。

 GPS(Global Positioning system)は、車のナビゲーション用から広く一般に普及してから、今ではスマートフォンに搭載され、日常のナビゲーションにも使われるようになっている。今では、衛星だけでなく、地上施設等を利用した通信(Assisted-GPSやDifferential-GPS)によりメートル単位で測位誤差を補正しており、(ちなみに、日本で最初に発売されたiPhoneには、A-GPSが搭載されており、何これ?って調べて知った記憶がある。)高層ビル間や、天気などの環境にも左右されなくなってきている。しかしながら、建物内や地下や、外部から遮断された場所における位置測位は、GPSでは限界がある。

続きを読む

今年読んでよかった技術書(Pathee エンジニア編)

本のイラスト

これはPathee Advent Calendar 2019の24日目の記事です。

こんにちは、こんばんは、irihit です。 皆さんはサンタクロースに何をお願いしましたか?クリスマスに多くを期待しないあなたも、クリスマスツリーの下に置かれたプレゼントを気にしないあなたも、まだクリスマスのプレゼントを決めていないのであれば技術書をお願いしてみてはいかがでしょうか。

本日は Pathee のエンジニアが2019年に読んでよかった本をご紹介したいと思います。年末年始に向けて、ぜひサンタクロースにお願いしてください!まだ間に合いますよ!

続きを読む

Slackのリアクションを用いてタスクの対応状態を管理・確認できるようにした

エンジニアの消火器です。

以前こんな記事をかきました。

pathee.hatenablog.com

しかしこれを作った後、Slackが見れない人に対し、エンジニアの対応状況をリアルタイムに知れるような仕組みが欲しいという声が上がってきました。

確かにエンジニアが状況をスムーズにキャッチできるようにはなったけど、Slackを見れないライターさんにエンジニアが対応中ですよ、という状況を伝える手段ではないので、そのニーズもありそうですね…。

ということでこれを拡張したお話はまた次回。

ということだったので、今回はSlackのリアクションを用いてタスクの対応状態を管理・確認できるようにした話をします。

作るものの概要は以下のような感じです。

取得するメッセージの内容などはかなりニーズによるため適宜解説を省略し重要箇所の解説のみに留めます。

続きを読む

障害を乗り越えていこう

障害のイメージ画像

これはPathee Advent Calendar 2019の19日目の記事です。

こんにちは、こんばんは、irihit です。 悲しい哉、システムを運用していく上で必ず発生してしまうのが障害です。本日は、楽しいクリスマス、そして新年を迎えるために、障害について思いを馳せてみましょう。

続きを読む

住所って大変、というお話

これはPathee Advent Calendar 2019の18日目の記事です。

はじめに

こんにちは、Patheeエンジニアの渡邉です。

弊社Patheeでは「街のお出かけを、便利で楽しく、しなやかに」をコンセプトに、ユーザーの方々がお出かけする際にお店選びができるメディアを運営しています。そして、サービスとしての質を高めることができるように、世の中に点在するお店の情報を収集・整理しています。

そんな私たちが整理しているお店の情報の1つとして欠かせないものに住所について、扱いの難しさや、明日誰かに話したくなるトリビア的な話を紹介出来たらと思います。

続きを読む

「レガシーをぶっつぶせ。現場でDDD!2nd」の 第2部 C に参加した

『レガシーをぶっつぶせ。現場でDDD!2nd 「インプット<アウトプット!」』 第2部 かとじゅんさんの「C:モデリングワークショップ 〜割り勘ドメイン編〜」に参加してきたのでその参加記です。

genbade-ddd.connpass.com

よくDDDは「実際にやってみるとわかる」というのはよく聞いていたのですが、 それを同じようなモチベーションでやってみようという人が集まってやってみる場というのはとても貴重でした。

今回はその中の1パートで行われた、割り勘ドメインモデリングワークショップでやったことと、その感想を書いていきたいと思います。

続きを読む