diff --git a/internal/tracking/logstash_event.go b/internal/tracking/logstash_event.go index a5ab4f14..4562b30c 100644 --- a/internal/tracking/logstash_event.go +++ b/internal/tracking/logstash_event.go @@ -48,6 +48,7 @@ type EventData struct { // EventContext contains information / metadata about the CLI session type EventContext struct { + Arch string `json:"arch"` Binary string `json:"bin"` CLIVersion string `json:"cli_version"` Command string `json:"command,omitempty"` diff --git a/internal/tracking/tracking.go b/internal/tracking/tracking.go index b1bd5fa4..b714cb1a 100644 --- a/internal/tracking/tracking.go +++ b/internal/tracking/tracking.go @@ -193,6 +193,7 @@ func (e *EventTracker) FlushToLogstash(ctx context.Context, cfg *config.Config, CLIVersion: versionString, Host: ioutils.GetHostname(), OS: runtime.GOOS, + Arch: runtime.GOARCH, SessionID: sessionID, SystemID: cfg.SystemID, ProjectID: cfg.ProjectID, diff --git a/internal/tracking/tracking_test.go b/internal/tracking/tracking_test.go index 865a3312..1be1bfd0 100644 --- a/internal/tracking/tracking_test.go +++ b/internal/tracking/tracking_test.go @@ -19,6 +19,7 @@ import ( "io" "net/http" "net/http/httptest" + "runtime" "testing" "github.com/slackapi/slack-cli/internal/config" @@ -136,6 +137,14 @@ func Test_Tracking_FlushToLogstash(t *testing.T) { require.Contains(t, string(payload), fmt.Sprintf("\"cli_version\":\"%s\"", "4.2.0")) }, }, + "should include os and arch build information": { + assertOnRequest: func(t *testing.T, req *http.Request) { + payload, err := io.ReadAll(req.Body) + require.NoError(t, err) + require.Contains(t, string(payload), fmt.Sprintf("\"arch\":\"%s\"", runtime.GOARCH)) + require.Contains(t, string(payload), fmt.Sprintf("\"os\":\"%s\"", runtime.GOOS)) + }, + }, } for name, tt := range tests {