Skip to content

Commit 1f7eb6d

Browse files
authored
Merge pull request #256 from doringeman/metrics-ua
metrics: always use default User-Agent and add action to model tracking
2 parents 4736899 + 3fcaec6 commit 1f7eb6d

File tree

2 files changed

+15
-7
lines changed

2 files changed

+15
-7
lines changed

pkg/inference/scheduling/scheduler.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ func (s *Scheduler) handleOpenAIInference(w http.ResponseWriter, r *http.Request
231231
return
232232
}
233233
// Non-blocking call to track the model usage.
234-
s.tracker.TrackModel(model, r.UserAgent())
234+
s.tracker.TrackModel(model, r.UserAgent(), "inference/"+backendMode.String())
235235
}
236236

237237
modelID := s.modelManager.ResolveModelID(request.Model)
@@ -415,7 +415,7 @@ func (s *Scheduler) Configure(w http.ResponseWriter, r *http.Request) {
415415

416416
if model, err := s.modelManager.GetModel(configureRequest.Model); err == nil {
417417
// Configure is called by compose for each model.
418-
s.tracker.TrackModel(model, r.UserAgent())
418+
s.tracker.TrackModel(model, r.UserAgent(), "configure/"+mode.String())
419419
}
420420
modelID := s.modelManager.ResolveModelID(configureRequest.Model)
421421
if err := s.loader.setRunnerConfig(r.Context(), backend.Name(), modelID, mode, runnerConfig); err != nil {

pkg/metrics/metrics.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"net/http"
66
"os"
7+
"strings"
78
"time"
89

910
"github.com/docker/model-runner/pkg/distribution/types"
@@ -39,8 +40,11 @@ func NewTracker(httpClient *http.Client, log logging.Logger, userAgent string, d
3940
client.Transport = http.DefaultTransport
4041
}
4142

43+
userAgent = strings.TrimSpace(userAgent)
4244
if userAgent == "" {
4345
userAgent = "docker-model-runner"
46+
} else {
47+
userAgent = userAgent + " docker-model-runner"
4448
}
4549

4650
if os.Getenv("DEBUG") == "1" {
@@ -59,24 +63,28 @@ func NewTracker(httpClient *http.Client, log logging.Logger, userAgent string, d
5963
}
6064
}
6165

62-
func (t *Tracker) TrackModel(model types.Model, userAgent string) {
66+
func (t *Tracker) TrackModel(model types.Model, userAgent, action string) {
6367
if t.doNotTrack {
6468
return
6569
}
6670

67-
go t.trackModel(model, userAgent)
71+
go t.trackModel(model, userAgent, action)
6872
}
6973

70-
func (t *Tracker) trackModel(model types.Model, userAgent string) {
74+
func (t *Tracker) trackModel(model types.Model, userAgent, action string) {
7175
tags := model.Tags()
7276
t.log.Debugln("Tracking model:", tags)
7377
if len(tags) == 0 {
7478
return
7579
}
76-
ua := t.userAgent
80+
parts := []string{t.userAgent}
7781
if userAgent != "" {
78-
ua += " " + userAgent
82+
parts = append(parts, userAgent)
7983
}
84+
if action != "" {
85+
parts = append(parts, action)
86+
}
87+
ua := strings.Join(parts, " ")
8088
for _, tag := range tags {
8189
ref, err := name.ParseReference(tag)
8290
if err != nil {

0 commit comments

Comments
 (0)