Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Laravelのログにエラーが吐き出されたら自動的にBacklogにログ内容を記載したチケットを作成する #sa_study

hico00
April 19, 2019

Laravelのログにエラーが吐き出されたら自動的にBacklogにログ内容を記載したチケットを作成する #sa_study

2019/04/19に行ったスタジオ・アルカナ社内勉強会で使用したスライドです。

hico00

April 19, 2019
Tweet

More Decks by hico00

Other Decks in Technology

Transcript

  1. 当時の通知仕様 1. エラーが発生すると、laravel.log に stacktrace が吐き出される。 2. CloudWatch で "[stacktrace]"

    の文字列がログファイルに吐き出されると、アラートが発生する ようなアラームを設定。 3. アラートが発生すると、Backlogにメール(AWS SNS)でチケット登録する。 参照: メールによる課題登録 4. チケットが登録されたら、CloudWatch上で該当時間のログファイルを確認。(余裕があれば、 チケットの件名を書き換えたり)
  2. CloudWatch から渡されるデータ { AlarmName: 'php7app-stg20-ERROR', AlarmDescription: null, AWSAccountId: '217903947487', NewStateValue:

    'ALARM', NewStateReason: 'Threshold Crossed: 1 datapoint [1.0 (20/03/19 09:27:00)] was StateChangeTime: '2019-03-20T09:42:59.895+0000', Region: 'Asia Pacific (Tokyo)', OldStateValue: 'OK', Trigger: { MetricName: 'php7app-stg20-ERROR', Namespace: 'LogMetrics', StatisticType: 'Statistic', Statistic: 'SUM', ・・・省略 } }
  3. describeMetricFiltersのレスポンス { metricFilters: [{ filterName: 'stg20-ERROR', filterPattern: 'stacktrace', metricTransformations: [Array],

    creationTime: 1553058610295, logGroupName: 'kimisuka-stg-20/php7app/srv/current/storage/logs/laravel.log' }] }
  4. filterLogEventsのレスポンス { events: [ { logStreamName: 'php7app1', timestamp: 1553249141154, message:

    '[2019-03-22 19:05:40] staging.ERROR: Undefined variable: input { ingestionTime: 1553249146221, eventId: '34638613326711879619236554788766527172305841119978192896' }, { logStreamName: 'php7app1', timestamp: 1553249141154, message: '[stacktrace]', ingestionTime: 1553249146221, eventId: '34638613326711879619236554788766527172305841119978192897' }, ... 省略 ] }