mirror of
https://github.com/fleetdm/fleet
synced 2026-04-21 21:47:20 +00:00
Adding telemetry for catching issue #19172 # Docs changes In another PR: https://github.com/fleetdm/fleet/pull/23423/files # Demo <div> <a href="https://www.loom.com/share/233625875eec46508c26ae315cd52d19"> <p>[Demo] Add telemetry for vital fleetd errors - Issue #23413 - Watch Video</p> </a> <a href="https://www.loom.com/share/233625875eec46508c26ae315cd52d19"> <img style="max-width:300px;" src="https://cdn.loom.com/sessions/thumbnails/233625875eec46508c26ae315cd52d19-45ca0ec1b7b5e9e7-full-play.gif"> </a> </div> # Checklist for submitter - [x] Changes file added for user-visible changes in `changes/`, `orbit/changes/` or `ee/fleetd-chrome/changes`. See [Changes files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/Committing-Changes.md#changes-files) for more information. - [x] Added/updated tests - [x] Manual QA for all new/changed functionality - For Orbit and Fleet Desktop changes: - [x] Orbit runs on macOS, Linux and Windows. Check if the orbit feature/bugfix should only apply to one platform (`runtime.GOOS`). - [x] Manual QA must be performed in the three main OSs, macOS, Windows and Linux. - [x] Auto-update manual QA, from released version of component to new version (see [tools/tuf/test](../tools/tuf/test/README.md)).
32 lines
782 B
Go
32 lines
782 B
Go
package execuser
|
|
|
|
const bufSize = 4096
|
|
|
|
// TransientWriter keeps the last bufSize bytes written to it.
|
|
type TransientWriter struct {
|
|
buf [bufSize]byte
|
|
len int
|
|
}
|
|
|
|
// Write writes p to the buffer. If the buffer is full, it will overwrite the oldest bytes.
|
|
func (w *TransientWriter) Write(p []byte) (n int, err error) {
|
|
lenToWrite := len(p)
|
|
switch {
|
|
case lenToWrite >= bufSize:
|
|
copy(w.buf[:], p[lenToWrite-bufSize:])
|
|
w.len = bufSize
|
|
case bufSize-w.len < lenToWrite:
|
|
remainingLen := bufSize - lenToWrite
|
|
copy(w.buf[0:remainingLen], w.buf[w.len-remainingLen:w.len])
|
|
copy(w.buf[remainingLen:], p)
|
|
w.len = bufSize
|
|
default:
|
|
n = copy(w.buf[w.len:], p)
|
|
w.len += n
|
|
}
|
|
return lenToWrite, nil
|
|
}
|
|
|
|
func (w TransientWriter) String() string {
|
|
return string(w.buf[:w.len])
|
|
}
|