👺

Google Cloud Error Reportingが解析できるスタックトレースのフォーマット Go編

2024/07/08に公開

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