Skip to content

Commit 113a02c

Browse files
committed
Update user-agent parsing and report in intent failures metric
1 parent 6a6bd8a commit 113a02c

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

pkg/code/server/transaction/metrics.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66

77
"github.com/code-payments/code-server/pkg/code/common"
88
"github.com/code-payments/code-server/pkg/code/data/intent"
9+
"github.com/code-payments/code-server/pkg/grpc/client"
910
"github.com/code-payments/code-server/pkg/metrics"
1011
)
1112

@@ -40,6 +41,11 @@ func recordCriticalSubmitIntentFailure(ctx context.Context, intentRecord *intent
4041
"error": err.Error(),
4142
}
4243

44+
userAgent, err := client.GetUserAgent(ctx)
45+
if err == nil {
46+
kvs["user_agent"] = userAgent.String()
47+
}
48+
4349
if intentRecord != nil {
4450
if len(intentRecord.IntentId) > 0 {
4551
kvs["intent_id"] = intentRecord.IntentId

pkg/grpc/client/user_agent.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const (
1616
)
1717

1818
var (
19-
userAgentPattern = fmt.Sprintf("Code/(iOS|Android)/%s", versionPattern)
19+
userAgentPattern = fmt.Sprintf("(Code|OpenCodeProtocol)/(iOS|Android)/%s", versionPattern)
2020
userAgentRegex = regexp.MustCompile(userAgentPattern)
2121
)
2222

@@ -26,7 +26,7 @@ type UserAgent struct {
2626
}
2727

2828
func (ua *UserAgent) String() string {
29-
return fmt.Sprintf("Code/%s/%s", ua.DeviceType.String(), ua.Version.String())
29+
return fmt.Sprintf("OpenCodeProtocol/%s/%s", ua.DeviceType.String(), ua.Version.String())
3030
}
3131

3232
// GetUserAgent gets the Code client user agent value from headers in the provided

pkg/grpc/client/user_agent_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ func TestGetUserAgent_HappyPath(t *testing.T) {
1515
for _, headerValue := range []string{
1616
"Code/iOS/11.22.33",
1717
"Code/Android/11.22.33",
18+
"OpenCodeProtocol/Android/11.22.33",
1819
"Mozilla/5.0 Code/iOS/11.22.33 Mobile Safari/533.1",
1920
} {
2021
ctx := context.Background()
@@ -81,5 +82,5 @@ func TestUserAgent_StringValue(t *testing.T) {
8182
},
8283
}
8384

84-
assert.Equal(t, "Code/iOS/1.2.3", ua.String())
85+
assert.Equal(t, "OpenCodeProtocol/iOS/1.2.3", ua.String())
8586
}

0 commit comments

Comments
 (0)