1818package useragent
1919
2020import (
21- "errors"
2221 "runtime"
2322 "strings"
2423)
2524
2625type AgentManagementMode int
2726
2827const (
29- // AgentManagementModeManaged indicates that the beat is managed by Fleet .
30- AgentManagementModeManaged AgentManagementMode = iota
31- // AgentManagementModeStandalone indicates that the beat is running in standalone mode .
28+ // AgentManagementModeUnknown indicates that the management mode is unknown .
29+ AgentManagementModeUnknown AgentManagementMode = iota
30+ // AgentManagementModeStandalone indicates that the beat is not running under agent .
3231 AgentManagementModeStandalone
32+ // AgentManagementModeUnmanaged indicates that the beat is running under agent but not managed by Fleet.
33+ AgentManagementModeUnmanaged
34+ // AgentManagementModeManaged indicates that the beat is running under agent and managed by Fleet.
35+ AgentManagementModeManaged
3336)
3437
3538func (m AgentManagementMode ) String () string {
3639 switch m {
40+ case AgentManagementModeUnmanaged :
41+ return "Unmanaged"
3742 case AgentManagementModeManaged :
3843 return "Managed"
3944 case AgentManagementModeStandalone :
@@ -44,20 +49,26 @@ func (m AgentManagementMode) String() string {
4449}
4550
4651// AgentUnprivilegedMode indicates whether the beat is running in unprivileged mode.
47- type AgentUnprivilegedMode bool
52+ type AgentUnprivilegedMode int8
4853
4954const (
55+ // AgentUnprivilegedModeUnknown indicates privilege mode is unknown.
56+ AgentUnprivilegedModeUnknown AgentUnprivilegedMode = iota
5057 // AgentUnprivilegedModeUnprivileged indicates that the beat is running in unprivileged mode.
51- AgentUnprivilegedModeUnprivileged AgentUnprivilegedMode = true
58+ AgentUnprivilegedModeUnprivileged
5259 // AgentUnprivilegedModePrivileged indicates that the beat is running in privileged mode.
53- AgentUnprivilegedModePrivileged AgentUnprivilegedMode = false
60+ AgentUnprivilegedModePrivileged
5461)
5562
5663func (m AgentUnprivilegedMode ) String () string {
57- if m {
64+ switch m {
65+ case AgentUnprivilegedModeUnprivileged :
5866 return "Unprivileged"
67+ case AgentUnprivilegedModePrivileged :
68+ return "Privileged"
69+ default :
70+ return "Unknown"
5971 }
60- return "Privileged"
6172}
6273
6374// UserAgent takes the capitalized name of the current beat and returns
@@ -82,23 +93,22 @@ func UserAgent(binaryNameCapitalized string, version, commit, buildTime string,
8293 return builder .String ()
8394}
8495
85- func UserAgentWithBeatTelemetry (binaryNameCapitalized string , version string , mode AgentManagementMode , unprivileged AgentUnprivilegedMode ) ( string , error ) {
96+ func UserAgentWithBeatTelemetry (binaryNameCapitalized string , version string , mode AgentManagementMode , unprivileged AgentUnprivilegedMode ) string {
8697 var builder strings.Builder
8798 builder .WriteString ("Elastic-" + binaryNameCapitalized + "/" + version + " " )
8899 uaValues := []string {
89100 runtime .GOOS ,
90101 runtime .GOARCH ,
91- mode .String (),
92- unprivileged .String (),
102+ }
103+ if mode != AgentManagementModeUnknown {
104+ uaValues = append (uaValues , mode .String ())
105+ }
106+ if unprivileged != AgentUnprivilegedModeUnknown {
107+ uaValues = append (uaValues , unprivileged .String ())
93108 }
94109 builder .WriteByte ('(' )
95110 builder .WriteString (strings .Join (uaValues , "; " ))
96111 builder .WriteByte (')' )
97112
98- // Ensure the user agent string does not exceed 100 characters
99- userAgent := builder .String ()
100- if len (userAgent ) > 100 {
101- return userAgent , errors .New ("user agent string exceeds 100 characters" )
102- }
103- return userAgent , nil
113+ return builder .String ()
104114}
0 commit comments