mirror of
https://github.com/wavetermdev/waveterm.git
synced 2025-01-02 18:39:05 +01:00
telemetry fix, log no-telemetry (#802)
This commit is contained in:
parent
de08cc8340
commit
62cc9d8a6b
@ -42,8 +42,8 @@ import (
|
|||||||
var WaveVersion = "0.0.0"
|
var WaveVersion = "0.0.0"
|
||||||
var BuildTime = "0"
|
var BuildTime = "0"
|
||||||
|
|
||||||
const InitialTelemetryWait = 30 * time.Second
|
const InitialTelemetryWait = 10 * time.Second
|
||||||
const TelemetryTick = 10 * time.Minute
|
const TelemetryTick = 2 * time.Minute
|
||||||
const TelemetryInterval = 4 * time.Hour
|
const TelemetryInterval = 4 * time.Hour
|
||||||
|
|
||||||
const ReadySignalPidVarName = "WAVETERM_READY_SIGNAL_PID"
|
const ReadySignalPidVarName = "WAVETERM_READY_SIGNAL_PID"
|
||||||
|
@ -12,8 +12,6 @@ import { FlexiModal } from "./modal";
|
|||||||
import { QuickTips } from "@/app/element/quicktips";
|
import { QuickTips } from "@/app/element/quicktips";
|
||||||
import { atoms } from "@/app/store/global";
|
import { atoms } from "@/app/store/global";
|
||||||
import { modalsModel } from "@/app/store/modalmodel";
|
import { modalsModel } from "@/app/store/modalmodel";
|
||||||
import { RpcApi } from "@/app/store/wshclientapi";
|
|
||||||
import { WindowRpcClient } from "@/app/store/wshrpcutil";
|
|
||||||
import { atom, PrimitiveAtom, useAtom, useAtomValue, useSetAtom } from "jotai";
|
import { atom, PrimitiveAtom, useAtom, useAtomValue, useSetAtom } from "jotai";
|
||||||
import "./tos.less";
|
import "./tos.less";
|
||||||
|
|
||||||
@ -34,7 +32,7 @@ const ModalPage1 = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const setTelemetry = (value: boolean) => {
|
const setTelemetry = (value: boolean) => {
|
||||||
RpcApi.SetConfigCommand(WindowRpcClient, { "telemetry:enabled": value })
|
services.ClientService.TelemetryUpdate(value)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
setTelemetryEnabled(value);
|
setTelemetryEnabled(value);
|
||||||
})
|
})
|
||||||
|
@ -47,6 +47,9 @@ class ClientServiceType {
|
|||||||
MakeWindow(): Promise<WaveWindow> {
|
MakeWindow(): Promise<WaveWindow> {
|
||||||
return WOS.callBackendService("client", "MakeWindow", Array.from(arguments))
|
return WOS.callBackendService("client", "MakeWindow", Array.from(arguments))
|
||||||
}
|
}
|
||||||
|
TelemetryUpdate(arg2: boolean): Promise<void> {
|
||||||
|
return WOS.callBackendService("client", "TelemetryUpdate", Array.from(arguments))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ClientService = new ClientServiceType();
|
export const ClientService = new ClientServiceType();
|
||||||
|
@ -6,11 +6,14 @@ package clientservice
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"log"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/wavetermdev/waveterm/pkg/remote/conncontroller"
|
"github.com/wavetermdev/waveterm/pkg/remote/conncontroller"
|
||||||
"github.com/wavetermdev/waveterm/pkg/util/utilfn"
|
"github.com/wavetermdev/waveterm/pkg/util/utilfn"
|
||||||
"github.com/wavetermdev/waveterm/pkg/waveobj"
|
"github.com/wavetermdev/waveterm/pkg/waveobj"
|
||||||
|
"github.com/wavetermdev/waveterm/pkg/wcloud"
|
||||||
|
"github.com/wavetermdev/waveterm/pkg/wconfig"
|
||||||
"github.com/wavetermdev/waveterm/pkg/wcore"
|
"github.com/wavetermdev/waveterm/pkg/wcore"
|
||||||
"github.com/wavetermdev/waveterm/pkg/wlayout"
|
"github.com/wavetermdev/waveterm/pkg/wlayout"
|
||||||
"github.com/wavetermdev/waveterm/pkg/wshrpc"
|
"github.com/wavetermdev/waveterm/pkg/wshrpc"
|
||||||
@ -106,3 +109,26 @@ func (cs *ClientService) AgreeTos(ctx context.Context) (waveobj.UpdatesRtnType,
|
|||||||
wlayout.BootstrapStarterLayout(ctx)
|
wlayout.BootstrapStarterLayout(ctx)
|
||||||
return waveobj.ContextGetUpdatesRtn(ctx), nil
|
return waveobj.ContextGetUpdatesRtn(ctx), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (cs *ClientService) TelemetryUpdate(ctx context.Context, telemetryEnabled bool) error {
|
||||||
|
meta := waveobj.MetaMapType{
|
||||||
|
wconfig.ConfigKey_TelemetryEnabled: telemetryEnabled,
|
||||||
|
}
|
||||||
|
err := wconfig.SetBaseConfigValue(meta)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error setting telemetry value: %w", err)
|
||||||
|
}
|
||||||
|
clientData, err := wstore.DBGetSingleton[*waveobj.Client](ctx)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("error getting client data: %w", err)
|
||||||
|
}
|
||||||
|
if clientData == nil {
|
||||||
|
return fmt.Errorf("client data is nil")
|
||||||
|
}
|
||||||
|
telemetryErr := wcloud.SendNoTelemetryUpdate(ctx, clientData.OID, !telemetryEnabled)
|
||||||
|
if telemetryErr != nil {
|
||||||
|
// don't return error here, just log
|
||||||
|
log.Printf("[error] sending telemetry update: %v\n", telemetryErr)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
@ -11,6 +11,7 @@ import (
|
|||||||
|
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"github.com/wavetermdev/waveterm/pkg/blockcontroller"
|
"github.com/wavetermdev/waveterm/pkg/blockcontroller"
|
||||||
|
"github.com/wavetermdev/waveterm/pkg/telemetry"
|
||||||
"github.com/wavetermdev/waveterm/pkg/waveobj"
|
"github.com/wavetermdev/waveterm/pkg/waveobj"
|
||||||
"github.com/wavetermdev/waveterm/pkg/wps"
|
"github.com/wavetermdev/waveterm/pkg/wps"
|
||||||
"github.com/wavetermdev/waveterm/pkg/wstore"
|
"github.com/wavetermdev/waveterm/pkg/wstore"
|
||||||
@ -172,9 +173,26 @@ func CreateClient(ctx context.Context) (*waveobj.Client, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func CreateBlock(ctx context.Context, tabId string, blockDef *waveobj.BlockDef, rtOpts *waveobj.RuntimeOpts) (*waveobj.Block, error) {
|
func CreateBlock(ctx context.Context, tabId string, blockDef *waveobj.BlockDef, rtOpts *waveobj.RuntimeOpts) (*waveobj.Block, error) {
|
||||||
|
if blockDef == nil {
|
||||||
|
return nil, fmt.Errorf("blockDef is nil")
|
||||||
|
}
|
||||||
|
if blockDef.Meta == nil || blockDef.Meta.GetString(waveobj.MetaKey_View, "") == "" {
|
||||||
|
return nil, fmt.Errorf("no view provided for new block")
|
||||||
|
}
|
||||||
blockData, err := wstore.CreateBlock(ctx, tabId, blockDef, rtOpts)
|
blockData, err := wstore.CreateBlock(ctx, tabId, blockDef, rtOpts)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error creating block: %w", err)
|
return nil, fmt.Errorf("error creating block: %w", err)
|
||||||
}
|
}
|
||||||
|
go func() {
|
||||||
|
blockView := blockDef.Meta.GetString(waveobj.MetaKey_View, "")
|
||||||
|
if blockView == "" {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
tctx, cancelFn := context.WithTimeout(context.Background(), 2*time.Second)
|
||||||
|
defer cancelFn()
|
||||||
|
telemetry.UpdateActivity(tctx, telemetry.ActivityUpdate{
|
||||||
|
Renderers: map[string]int{blockView: 1},
|
||||||
|
})
|
||||||
|
}()
|
||||||
return blockData, nil
|
return blockData, nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user