👺
Google Cloud Error Reportingが解析できるスタックトレースのフォーマット Go編
Google CloudのError Reportingは、APIで通知する方法とCloud Loggingからエラーを収集する方法があります。
ErrorReportingは、エラー情報としてCloud Loggingのstack_traceフィールドなどを解析するのですが、解析対象となるフォーマットが言語ごとに決まっています。
解析ができるとError ReportingをSlackへ通知する際に、エラーメッセージをSlackの本文に含めることができるため、リンクを開かなくてもエラーの概要を理解できるようになります。
Error Reportingが解析できるGoのエラーフォーマットは以下の形式です。
goroutine 1 [running]:
runtime/debug.Stack()
/usr/local/go/src/runtime/debug/stack.go:24
main.main()
/tmp/sandbox224636382/main.go:10
上記のフォーマットは、panicのメッセージから解析に不要な部分を削ったものです。
panic
goroutine 1 [running]:
runtime/debug.Stack(0x1343e0, 0x40c108, 0x41a7a8, 0x1)
/usr/local/go/src/runtime/debug/stack.go:24 +0xc0
main.main()
/tmp/sandbox224636382/main.go:10 +0xa0
- 1行目のgoroutineは省略できません。
- 2行目の関数内の16進数の値は省略可能です。ただし
()
は省略できません。 - 3行目、5行目のコード行数以降の16進数の値は省略可能です。
Discussion