| # Go Telemetry |
| |
| This repository holds the Go Telemetry server code and libraries, used for |
| hosting [telemetry.go.dev](https://telemetry.go.dev) and instrumenting Go |
| toolchain programs with opt-in telemetry. |
| |
| **Warning**: this repository is intended for use only in tools maintained by |
| the Go team, including tools in the Go distribution and auxiliary tools like |
| [gopls](https://pkg.go.dev/golang.org/x/tools/gopls) or |
| [govulncheck](https://pkg.go.dev/golang.org/x/vuln/cmd/govulncheck). There are |
| no compatibility guarantees for any of the packages here: public APIs will |
| change in breaking ways as the telemetry integration is refined. |
| |
| ## Notable Packages |
| |
| - The [x/telemetry/counter](https://pkg.go.dev/golang.org/x/telemetry/counter) |
| package provides a library for instrumenting programs with counters and stack |
| reports. |
| - The [x/telemetry/upload](https://pkg.go.dev/golang.org/x/telemetry/upload) |
| package provides a hook for Go toolchain programs to upload telemetry data, |
| if the user has opted in to telemetry uploading. |
| - The [x/telemetry/cmd/gotelemetry](https://pkg.go.dev/pkg/golang.org/x/telemetry/cmd/gotelemetry) |
| command is used for managing telemetry data and configuration. |
| - The [x/telemetry/config](https://pkg.go.dev/pkg/golang.org/x/telemetry/config) |
| package defines the subset of telemetry data that has been approved for |
| uploading by the telemetry proposal process. |
| - The [x/telemetry/godev](https://pkg.go.dev/pkg/golang.org/x/telemetry/godev) directory defines |
| the services running at [telemetry.go.dev](https://telemetry.go.dev). |
| |
| ## Contributing |
| |
| This repository uses Gerrit for code changes. To learn how to submit changes to |
| this repository, see https://golang.org/doc/contribute.html. |
| |
| The main issue tracker for the time repository is located at |
| https://github.com/golang/go/issues. Prefix your issue with "x/telemetry:" in |
| the subject line, so it is easy to find. |
| |
| ### Linting & Formatting |
| |
| This repository uses [eslint](https://eslint.org/) to format TS files, |
| [stylelint](https://stylelint.io/) to format CSS files, and |
| [prettier](https://prettier.io/) to format TS, CSS, Markdown, and YAML files. |
| |
| See the style guides: |
| |
| - [TypeScript](https://google.github.io/styleguide/tsguide.html) |
| - [CSS](https://go.dev/wiki/CSSStyleGuide) |
| |
| It is encouraged that all TS and CSS code be run through formatters before |
| submitting a change. However, it is not a strict requirement enforced by CI. |
| |
| ### Installing npm Dependencies: |
| |
| 1. Install [docker](https://docs.docker.com/get-docker/) |
| 2. Run `./npm install` |
| |
| ### Run ESLint, Stylelint, & Prettier |
| |
| ./npm run all |