chore: update metrics

This commit is contained in:
Steven
2023-10-17 23:44:16 +08:00
parent e30d0c2dd0
commit a5df36eff2
8 changed files with 72 additions and 4 deletions

View File

@@ -1,4 +1,4 @@
package service
package backup
import (
"context"
@@ -13,6 +13,7 @@ import (
"github.com/usememos/memos/store"
)
// nolint
type BackupRunner struct {
Store *store.Store
}

View File

@@ -0,0 +1,52 @@
package metric
import (
"github.com/posthog/posthog-go"
"github.com/usememos/memos/server/profile"
)
const (
PostHogAPIKey = "phc_YFEi1aqUBW9sX2KDzdvMtK43DNu0mkeoKMKc0EQum2t"
)
var (
client *MetricClient
)
// nolint
type MetricClient struct {
workspaceID string
profile *profile.Profile
phClient *posthog.Client
}
func NewMetricClient(workspaceID string, profile profile.Profile) (*MetricClient, error) {
phClient, err := posthog.NewWithConfig(PostHogAPIKey, posthog.Config{
Endpoint: "https://app.posthog.com",
})
if err != nil {
return nil, err
}
client = &MetricClient{
workspaceID: workspaceID,
profile: &profile,
phClient: &phClient,
}
return client, nil
}
func Enqueue(event string) {
if client == nil {
return
}
if client.profile.Mode != "prod" {
return
}
// nolint
(*client.phClient).Enqueue(posthog.Capture{
DistinctId: `memos-` + client.workspaceID,
Event: event,
})
}