Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include telemetry string in User-Agent #13731

Merged
merged 1 commit into from Nov 20, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions sdk/azcore/policy_telemetry.go
Expand Up @@ -64,6 +64,8 @@ func NewTelemetryPolicy(o *TelemetryOptions) Policy {
b.WriteString(o.Value)
b.WriteRune(' ')
}
b.WriteString(UserAgent)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How does the user opt out of adding this?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See line 49 where telemetry is disabled. It's all-or-nothing, they can't opt out of parts of it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah got it. Thanks!

b.WriteRune(' ')
b.WriteString(platformInfo)
tp.telemetryValue = b.String()
return &tp
Expand Down
16 changes: 9 additions & 7 deletions sdk/azcore/policy_telemetry_test.go
Expand Up @@ -14,6 +14,8 @@ import (
"github.com/Azure/azure-sdk-for-go/sdk/internal/mock"
)

var defaultTelemetry = UserAgent + " " + platformInfo

func TestPolicyTelemetryDefault(t *testing.T) {
srv, close := mock.NewServer()
defer close()
Expand All @@ -27,7 +29,7 @@ func TestPolicyTelemetryDefault(t *testing.T) {
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if v := resp.Request.Header.Get(HeaderUserAgent); v != platformInfo {
if v := resp.Request.Header.Get(HeaderUserAgent); v != defaultTelemetry {
t.Fatalf("unexpected user agent value: %s", v)
}
}
Expand All @@ -48,7 +50,7 @@ func TestPolicyTelemetryWithCustomInfo(t *testing.T) {
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if v := resp.Request.Header.Get(HeaderUserAgent); v != fmt.Sprintf("%s %s", testValue, platformInfo) {
if v := resp.Request.Header.Get(HeaderUserAgent); v != fmt.Sprintf("%s %s", testValue, defaultTelemetry) {
t.Fatalf("unexpected user agent value: %s", v)
}
}
Expand All @@ -68,7 +70,7 @@ func TestPolicyTelemetryPreserveExisting(t *testing.T) {
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if v := resp.Request.Header.Get(HeaderUserAgent); v != fmt.Sprintf("%s %s", platformInfo, otherValue) {
if v := resp.Request.Header.Get(HeaderUserAgent); v != fmt.Sprintf("%s %s", defaultTelemetry, otherValue) {
t.Fatalf("unexpected user agent value: %s", v)
}
}
Expand All @@ -89,7 +91,7 @@ func TestPolicyTelemetryWithAppID(t *testing.T) {
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if v := resp.Request.Header.Get(HeaderUserAgent); v != fmt.Sprintf("%s %s", appID, platformInfo) {
if v := resp.Request.Header.Get(HeaderUserAgent); v != fmt.Sprintf("%s %s", appID, defaultTelemetry) {
t.Fatalf("unexpected user agent value: %s", v)
}
}
Expand All @@ -111,7 +113,7 @@ func TestPolicyTelemetryWithAppIDAndReqTelemetry(t *testing.T) {
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if v := resp.Request.Header.Get(HeaderUserAgent); v != fmt.Sprintf("%s %s %s", "TestPolicyTelemetryWithAppIDAndReqTelemetry", appID, platformInfo) {
if v := resp.Request.Header.Get(HeaderUserAgent); v != fmt.Sprintf("%s %s %s", "TestPolicyTelemetryWithAppIDAndReqTelemetry", appID, defaultTelemetry) {
t.Fatalf("unexpected user agent value: %s", v)
}
}
Expand All @@ -133,7 +135,7 @@ func TestPolicyTelemetryWithAppIDSanitized(t *testing.T) {
t.Fatalf("unexpected error: %v", err)
}
const newAppID = "This/will/get/the/spaces"
if v := resp.Request.Header.Get(HeaderUserAgent); v != fmt.Sprintf("%s %s", newAppID, platformInfo) {
if v := resp.Request.Header.Get(HeaderUserAgent); v != fmt.Sprintf("%s %s", newAppID, defaultTelemetry) {
t.Fatalf("unexpected user agent value: %s", v)
}
}
Expand All @@ -156,7 +158,7 @@ func TestPolicyTelemetryPreserveExistingWithAppID(t *testing.T) {
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if v := resp.Request.Header.Get(HeaderUserAgent); v != fmt.Sprintf("%s %s %s", appID, platformInfo, otherValue) {
if v := resp.Request.Header.Get(HeaderUserAgent); v != fmt.Sprintf("%s %s %s", appID, defaultTelemetry, otherValue) {
t.Fatalf("unexpected user agent value: %s", v)
}
}
Expand Down
4 changes: 2 additions & 2 deletions sdk/azcore/version.go
Expand Up @@ -9,6 +9,6 @@ const (
// UserAgent is the string to be used in the user agent string when making requests.
UserAgent = "azcore/" + Version

// Version is the semantic version (see http://semver.org) of the pipeline package.
Version = "0.13.0"
// Version is the semantic version (see http://semver.org) of this module.
Version = "v0.13.4"
)