Skip to content

Commit 8886588

Browse files
committed
Rename TelemetryLevel to Telemetry
1 parent 7f85a50 commit 8886588

File tree

7 files changed

+120
-28
lines changed

7 files changed

+120
-28
lines changed

cli/server.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func server() *cobra.Command {
7474
oauth2GithubClientSecret string
7575
oauth2GithubAllowedOrganizations []string
7676
oauth2GithubAllowSignups bool
77-
telemetryLevelRaw string
77+
telemetryRaw string
7878
tlsCertFile string
7979
tlsClientCAFile string
8080
tlsClientAuth string
@@ -194,9 +194,9 @@ func server() *cobra.Command {
194194
return xerrors.Errorf("parse ssh keygen algorithm %s: %w", sshKeygenAlgorithmRaw, err)
195195
}
196196

197-
telemetryLevel, err := monitoring.ParseTelemetryLevel(telemetryLevelRaw)
197+
telemetry, err := monitoring.ParseTelemetry(telemetryRaw)
198198
if err != nil {
199-
return xerrors.Errorf("parse telemetry level %s: %w", telemetryLevelRaw, err)
199+
return xerrors.Errorf("parse telemetry %s: %w", telemetryRaw, err)
200200
}
201201

202202
turnServer, err := turnconn.New(&turn.RelayAddressGeneratorStatic{
@@ -260,7 +260,7 @@ func server() *cobra.Command {
260260
Database: options.Database,
261261
Logger: options.Logger,
262262
RefreshInterval: time.Hour,
263-
TelemetryLevel: telemetryLevel,
263+
Telemetry: telemetry,
264264
})
265265

266266
handler, closeCoderd := coderd.New(options)
@@ -475,7 +475,7 @@ func server() *cobra.Command {
475475
"Specifies organizations the user must be a member of to authenticate with GitHub.")
476476
cliflag.BoolVarP(root.Flags(), &oauth2GithubAllowSignups, "oauth2-github-allow-signups", "", "CODER_OAUTH2_GITHUB_ALLOW_SIGNUPS", false,
477477
"Specifies whether new users can sign up with GitHub.")
478-
cliflag.StringVarP(root.Flags(), &telemetryLevelRaw, "telemetry", "", "CODER_TELEMETRY", "all", "The level of telemetry to send. "+
478+
cliflag.StringVarP(root.Flags(), &telemetryRaw, "telemetry", "", "CODER_TELEMETRY", "all", "The level of telemetry to send. "+
479479
`Accepted values are "all", "core", or "none"`)
480480
cliflag.BoolVarP(root.Flags(), &tlsEnable, "tls-enable", "", "CODER_TLS_ENABLE", false, "Specifies if TLS will be enabled")
481481
cliflag.StringVarP(root.Flags(), &tlsCertFile, "tls-cert-file", "", "CODER_TLS_CERT_FILE", "",

coderd/coderdtest/coderdtest.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ func New(t *testing.T, options *Options) *codersdk.Client {
149149
Database: db,
150150
Logger: slogtest.Make(t, nil),
151151
RefreshInterval: time.Minute,
152-
TelemetryLevel: monitoring.TelemetryLevelNone,
152+
Telemetry: monitoring.TelemetryNone,
153153
}),
154154
SSHKeygenAlgorithm: options.SSHKeygenAlgorithm,
155155
TURNServer: turnServer,

coderd/httpmw/prometheus.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func durationToFloatMs(d time.Duration) float64 {
6161

6262
func Prometheus(monitor *monitoring.Monitor) func(http.Handler) http.Handler {
6363
monitor.MustRegister(
64-
monitoring.TelemetryLevelNone,
64+
monitoring.TelemetryNone,
6565
requestsProcessed,
6666
requestsConcurrent,
6767
websocketsConcurrent,

coderd/monitoring/monitoring.go

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,25 @@ import (
1616
"github.com/coder/coder/coderd/database"
1717
)
1818

19-
type TelemetryLevel string
19+
type Telemetry string
2020

2121
const (
22-
TelemetryLevelAll TelemetryLevel = "all"
23-
TelemetryLevelCore TelemetryLevel = "core"
24-
TelemetryLevelNone TelemetryLevel = "none"
22+
TelemetryAll Telemetry = "all"
23+
TelemetryCore Telemetry = "core"
24+
TelemetryNone Telemetry = "none"
2525
)
2626

27-
// ParseTelemetryLevel returns a valid TelemetryLevel or error if input is not a valid.
28-
func ParseTelemetryLevel(t string) (TelemetryLevel, error) {
27+
// ParseTelemetry returns a valid Telemetry or error if input is not a valid.
28+
func ParseTelemetry(t string) (Telemetry, error) {
2929
ok := []string{
30-
string(TelemetryLevelAll),
31-
string(TelemetryLevelCore),
32-
string(TelemetryLevelNone),
30+
string(TelemetryAll),
31+
string(TelemetryCore),
32+
string(TelemetryNone),
3333
}
3434

3535
for _, a := range ok {
3636
if strings.EqualFold(a, t) {
37-
return TelemetryLevel(a), nil
37+
return Telemetry(a), nil
3838
}
3939
}
4040

@@ -45,7 +45,7 @@ type Options struct {
4545
Database database.Store
4646
Logger slog.Logger
4747
RefreshInterval time.Duration
48-
TelemetryLevel TelemetryLevel
48+
Telemetry Telemetry
4949
}
5050

5151
type Monitor struct {
@@ -58,14 +58,14 @@ type Monitor struct {
5858
// coreRegistry registers metrics that will be sent when the telemetry level
5959
// is `core` or `all`.
6060
coreRegistry *prometheus.Registry
61-
// internalRegisry registers metrics that will never be sent.
61+
// internalRegistry registers metrics that will never be sent.
6262
internalRegistry *prometheus.Registry
6363
// refreshMutex is used to prevent multiple refreshes at a time.
6464
refreshMutex *sync.Mutex
6565
// stats are internally registered metrics that update via Refresh.
6666
stats Stats
67-
// TelemetryLevel determines which metrics are sent to Coder.
68-
TelemetryLevel TelemetryLevel
67+
// Telemetry determines which metrics are sent to Coder.
68+
Telemetry Telemetry
6969
}
7070

7171
type Stats struct {
@@ -109,11 +109,11 @@ func New(ctx context.Context, options *Options) *Monitor {
109109
"workspace_resource_type",
110110
}),
111111
},
112-
TelemetryLevel: options.TelemetryLevel,
112+
Telemetry: options.Telemetry,
113113
}
114114

115115
monitor.MustRegister(
116-
TelemetryLevelAll,
116+
TelemetryAll,
117117
monitor.stats.Users,
118118
monitor.stats.Workspaces,
119119
monitor.stats.WorkspaceResources,
@@ -137,13 +137,13 @@ func New(ctx context.Context, options *Options) *Monitor {
137137
}
138138

139139
// MustRegister registers collectors at the specified level.
140-
func (t Monitor) MustRegister(level TelemetryLevel, cs ...prometheus.Collector) {
140+
func (t Monitor) MustRegister(level Telemetry, cs ...prometheus.Collector) {
141141
switch level {
142-
case TelemetryLevelAll:
142+
case TelemetryAll:
143143
t.allRegistry.MustRegister(cs...)
144-
case TelemetryLevelCore:
144+
case TelemetryCore:
145145
t.coreRegistry.MustRegister(cs...)
146-
case TelemetryLevelNone:
146+
case TelemetryNone:
147147
t.internalRegistry.MustRegister(cs...)
148148
}
149149
}

coderd/monitoring/monitoring_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func TestMonitoring(t *testing.T) {
2828
Database: db,
2929
Logger: slogtest.Make(t, nil),
3030
RefreshInterval: time.Minute,
31-
TelemetryLevel: monitoring.TelemetryLevelNone,
31+
Telemetry: monitoring.TelemetryNone,
3232
})
3333

3434
user, _ := db.InsertUser(ctx, database.InsertUserParams{

gcp-linux/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
name: Develop in Linux on Google Cloud
3+
description: Get started with Linux development on Google Cloud.
4+
tags: [cloud, google]
5+
---

gcp-linux/main.tf

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
terraform {
2+
required_providers {
3+
coder = {
4+
source = "coder/coder"
5+
version = "0.3.4"
6+
}
7+
google = {
8+
source = "hashicorp/google"
9+
version = "~> 4.15"
10+
}
11+
}
12+
}
13+
14+
variable "service_account" {
15+
description = <<EOF
16+
Coder requires a Google Cloud Service Account to provision workspaces.
17+
18+
1. Create a service account:
19+
https://console.cloud.google.com/projectselector/iam-admin/serviceaccounts/create
20+
2. Add the roles:
21+
- Compute Admin
22+
- Service Account User
23+
3. Click on the created key, and navigate to the "Keys" tab.
24+
4. Click "Add key", then "Create new key".
25+
5. Generate a JSON private key, and paste the contents below.
26+
EOF
27+
sensitive = true
28+
}
29+
30+
variable "zone" {
31+
description = "What region should your workspace live in?"
32+
default = "us-central1-a"
33+
validation {
34+
condition = contains(["northamerica-northeast1-a", "us-central1-a", "us-west2-c", "europe-west4-b", "southamerica-east1-a"], var.zone)
35+
error_message = "Invalid zone!"
36+
}
37+
}
38+
39+
provider "google" {
40+
zone = var.zone
41+
credentials = var.service_account
42+
project = jsondecode(var.service_account).project_id
43+
}
44+
45+
data "google_compute_default_service_account" "default" {
46+
}
47+
48+
data "coder_workspace" "me" {
49+
}
50+
51+
resource "google_compute_disk" "root" {
52+
name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}-root"
53+
type = "pd-ssd"
54+
zone = var.zone
55+
image = "debian-cloud/debian-9"
56+
lifecycle {
57+
ignore_changes = [image]
58+
}
59+
}
60+
61+
resource "coder_agent" "dev" {
62+
auth = "google-instance-identity"
63+
arch = "amd64"
64+
os = "linux"
65+
}
66+
67+
resource "google_compute_instance" "dev" {
68+
zone = var.zone
69+
count = data.coder_workspace.me.start_count
70+
name = "coder-${data.coder_workspace.me.owner}-${data.coder_workspace.me.name}"
71+
machine_type = "e2-medium"
72+
network_interface {
73+
network = "default"
74+
access_config {
75+
// Ephemeral public IP
76+
}
77+
}
78+
boot_disk {
79+
auto_delete = false
80+
source = google_compute_disk.root.name
81+
}
82+
service_account {
83+
email = data.google_compute_default_service_account.default.email
84+
scopes = ["cloud-platform"]
85+
}
86+
metadata_startup_script = coder_agent.dev.init_script
87+
}

0 commit comments

Comments
 (0)