Skip to content

Commit 1e3d3f9

Browse files
authored
Use lifecycle id, add metrics (#2179)
1 parent 7940e39 commit 1e3d3f9

40 files changed

Lines changed: 711 additions & 114 deletions

File tree

.github/workflows/pr-no-generated-changes.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,10 @@ jobs:
5454
- name: Run integrity check
5555
run: make tidy
5656

57-
- name: Fix tracers
58-
run: ./scripts/fix-tracers.sh
57+
- name: Fix meters and tracers
58+
run: |
59+
./scripts/fix-tracers.sh
60+
./scripts/fix-meters.sh
5961
6062
- uses: jdx/mise-action@v3
6163
with:

packages/api/internal/metrics/team.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func NewTeamObserver(ctx context.Context, sandboxStore *sandbox.Store) (*TeamObs
4545
}
4646

4747
// Setup team sandbox metrics
48-
meter := meterProvider.Meter("api.team.metrics")
48+
meter := meterProvider.Meter("github.com/e2b-dev/infra/packages/api/internal/metrics")
4949

5050
teamSandboxMaxGauge, err := telemetry.GetGaugeInt(meter, telemetry.TeamSandboxRunningGaugeName)
5151
if err != nil {

packages/api/internal/middleware/otel/metrics/otelrecorder.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func GetRecorder(meterProvider metric.MeterProvider, metricsPrefix string) Recor
2424
return metricName
2525
}
2626

27-
meter := meterProvider.Meter("api.server.middleware")
27+
meter := meterProvider.Meter("github.com/e2b-dev/infra/packages/api/internal/middleware/otel/metrics")
2828
totalDuration, _ := meter.Float64Histogram(
2929
metricName("http.server.duration"),
3030
metric.WithDescription("Time Taken by request"),

packages/api/internal/orchestrator/metrics.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
)
1212

1313
func (o *Orchestrator) setupMetrics(meterProvider metric.MeterProvider) error {
14-
meter := meterProvider.Meter("api.orchestrator")
14+
meter := meterProvider.Meter("github.com/e2b-dev/infra/packages/api/internal/orchestrator")
1515
gauge, err := telemetry.GetGaugeInt(meter, telemetry.ApiOrchestratorCountMeterName)
1616
if err != nil {
1717
return fmt.Errorf("failed to create orchestrators gauge: %w", err)

packages/api/internal/orchestrator/orchestrator.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ func New(
102102

103103
// We will need to either use Redis or Consul's KV for storing active sandboxes to keep everything in sync,
104104
// right now we load them from Orchestrator
105-
meter := tel.MeterProvider.Meter("api.cache.sandbox")
105+
meter := tel.MeterProvider.Meter("github.com/e2b-dev/infra/packages/api/internal/orchestrator")
106106
sandboxCounter, err := telemetry.GetUpDownCounter(meter, telemetry.SandboxCountMeterName)
107107
if err != nil {
108108
logger.L().Error(ctx, "error getting counter", zap.Error(err))

packages/orchestrator/main.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -748,10 +748,12 @@ func startNFSProxy(
748748

749749
// nfs proxy implementation
750750
nfsServer, err := nfsproxy.NewProxy(ctx, builder, sandboxes, nfscfg.Config{
751-
Logging: config.NFSProxyLogging,
752-
Tracing: config.NFSProxyTracing,
753-
RecordStatCalls: config.NFSProxyRecordStatCalls,
754-
NFSLogLevel: config.NFSProxyLogLevel,
751+
Logging: config.NFSProxyLogging,
752+
Tracing: config.NFSProxyTracing,
753+
Metrics: config.NFSProxyMetrics,
754+
RecordHandleCalls: config.NFSProxyRecordHandleCalls,
755+
RecordStatCalls: config.NFSProxyRecordStatCalls,
756+
NFSLogLevel: config.NFSProxyLogLevel,
755757
})
756758
if err != nil {
757759
return nil, fmt.Errorf("failed to create nfs proxy: %w", err)

packages/orchestrator/pkg/cfg/model.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -73,22 +73,24 @@ type Config struct {
7373

7474
ClickhouseConnectionString string `env:"CLICKHOUSE_CONNECTION_STRING"`
7575
ForceStop bool `env:"FORCE_STOP"`
76-
GRPCPort uint16 `env:"GRPC_PORT" envDefault:"5008"`
76+
GRPCPort uint16 `env:"GRPC_PORT" envDefault:"5008"`
7777
LaunchDarklyAPIKey string `env:"LAUNCH_DARKLY_API_KEY"`
7878
LocalUploadBaseURL string `env:"LOCAL_UPLOAD_BASE_URL"`
79-
NodeIP string `env:"NODE_IP" envDefault:"localhost"`
80-
NodeLabels []string `env:"NODE_LABELS" envSeparator:","`
81-
OrchestratorLockPath string `env:"ORCHESTRATOR_LOCK_PATH" envDefault:"/orchestrator.lock"`
82-
NFSProxyLogging bool `env:"NFS_PROXY_LOGGING" envDefault:"false"`
83-
NFSProxyTracing bool `env:"NFS_PROXY_TRACING" envDefault:"true"`
84-
NFSProxyRecordStatCalls bool `env:"NFS_PROXY_RECORD_STAT_CALLS" envDefault:"false"`
85-
NFSProxyLogLevel nfs.LogLevel `env:"NFS_PROXY_LOG_LEVEL" envDefault:"info"`
86-
ProxyPort uint16 `env:"PROXY_PORT" envDefault:"5007"`
79+
NodeIP string `env:"NODE_IP" envDefault:"localhost"`
80+
NodeLabels []string `env:"NODE_LABELS" envSeparator:","`
81+
OrchestratorLockPath string `env:"ORCHESTRATOR_LOCK_PATH" envDefault:"/orchestrator.lock"`
82+
NFSProxyLogging bool `env:"NFS_PROXY_LOGGING" envDefault:"false"`
83+
NFSProxyTracing bool `env:"NFS_PROXY_TRACING" envDefault:"false"`
84+
NFSProxyMetrics bool `env:"NFS_PROXY_METRICS" envDefault:"true"`
85+
NFSProxyRecordHandleCalls bool `env:"NFS_PROXY_RECORD_HANDLE_CALLS" envDefault:"false"`
86+
NFSProxyRecordStatCalls bool `env:"NFS_PROXY_RECORD_STAT_CALLS" envDefault:"false"`
87+
NFSProxyLogLevel nfs.LogLevel `env:"NFS_PROXY_LOG_LEVEL" envDefault:"info"`
88+
ProxyPort uint16 `env:"PROXY_PORT" envDefault:"5007"`
8789
RedisClusterURL string `env:"REDIS_CLUSTER_URL"`
8890
RedisTLSCABase64 string `env:"REDIS_TLS_CA_BASE64"`
8991
RedisURL string `env:"REDIS_URL"`
90-
RedisPoolSize int `env:"REDIS_POOL_SIZE" envDefault:"10"`
91-
Services []string `env:"ORCHESTRATOR_SERVICES" envDefault:"orchestrator"`
92+
RedisPoolSize int `env:"REDIS_POOL_SIZE" envDefault:"10"`
93+
Services []string `env:"ORCHESTRATOR_SERVICES" envDefault:"orchestrator"`
9294
PersistentVolumeMounts map[string]string `env:"PERSISTENT_VOLUME_MOUNTS"`
9395
}
9496

packages/orchestrator/pkg/cfg/model_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,17 @@ func TestParse(t *testing.T) {
6464
assert.Equal(t, "/a/b/c/sandbox", config.StorageConfig.SandboxCacheDir)
6565
})
6666

67-
t.Run("nfs proxy tracing is enabled by default", func(t *testing.T) {
67+
t.Run("nfs proxy metrics is enabled by default", func(t *testing.T) {
6868
config, err := Parse()
6969
require.NoError(t, err)
70-
assert.True(t, config.NFSProxyTracing)
70+
assert.True(t, config.NFSProxyMetrics)
7171
})
7272

73-
t.Run("nfs proxy tracing can be disabled", func(t *testing.T) {
74-
t.Setenv("NFS_PROXY_TRACING", "false")
73+
t.Run("nfs proxy metrics can be disabled", func(t *testing.T) {
74+
t.Setenv("NFS_PROXY_METRICS", "false")
7575

7676
config, err := Parse()
7777
require.NoError(t, err)
78-
assert.False(t, config.NFSProxyTracing)
78+
assert.False(t, config.NFSProxyMetrics)
7979
})
8080
}

packages/orchestrator/pkg/chrooted/mountns.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import (
1818
)
1919

2020
var (
21-
meter = otel.GetMeterProvider().Meter("github.com/e2b-dev/infra/packages/orchestrator/pkg/chrooted")
21+
meter = otel.Meter("github.com/e2b-dev/infra/packages/orchestrator/pkg/chrooted")
2222

2323
requestLatency = utils.Must(meter.Int64Histogram(
2424
"orchestrator.chroot.request.latency",

packages/orchestrator/pkg/factories/cmux.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func NewCMUXServer(ctx context.Context, port uint16, meterProvider metric.MeterP
2323

2424
m := cmux.New(lis)
2525

26-
meter := meterProvider.Meter("orchestrator.cmux")
26+
meter := meterProvider.Meter("github.com/e2b-dev/infra/packages/orchestrator/pkg/factories")
2727
errCounter := utils.Must(telemetry.GetCounter(meter, telemetry.CmuxErrorsTotal))
2828

2929
m.HandleError(func(err error) bool {

0 commit comments

Comments
 (0)