Skip to content

x/telemetry/config: enable data collection for crash/* counters, for gopls #65696

@adonovan

Description

@adonovan

Counter names

crash/crash
crash/malformed
crash/no-running-goroutine

Description

crash/crash - compressed stack traces of running goroutines from unexpected crashes
crash/malformed - counter of failures to parse the stack trace
crash/no-running-goroutine - counter of stack traces that have no goroutine in "running" state (e.g. deadlock, lossy parse)

Rationale

The crash/crash stack counters are how we detect unexpected crashes (for any reason) in gopls, and any other Go-project tool that uses x/telemetry/crashmonitor. This helps us diagnose and fix bugs speedily, and assess their severity.

Do the counters carry sensitive user information?

No. In particular, the compressed stacks are generated by joining a list of program counters with the executable's symbol table, so there is no possibility of application data values being incorporated.

How?

https://pkg.go.dev/golang.org/x/telemetry/crashmonitor

Proposed Graph Config

(https://go.corp.google.com/go-telemetry-configuration)

counter: crash/crash
title: Unexpected Go crashes
description: stacks of goroutines running when the Go program crashed
type: stack
program: golang.org/x/tools/gopls
depth: 16
version: v0.15.0

counter: crash/malformed
title: Failure to parse runtime crash output
description: count of runtime crash messages that failed to parse
type: histogram
program: golang.org/x/tools/gopls
version: v0.15.0

counter: crash/no-running-goroutine
title: Failure to identify any running goroutine in the crash output
description: count of runtime crash messages that don't have a running goroutine (e.g. deadlock)
type: histogram
program: golang.org/x/tools/gopls
version: v0.15.0

New or Update

New

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Todo

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions