Files
jimleerx e605cd07bf init
2026-01-28 13:13:58 +08:00

31 lines
780 B
Go

package stats
import (
"context"
"time"
statspb "github.com/xtls/xray-core/app/stats/command"
)
func QueryTraffic(ctx context.Context, client statspb.StatsServiceClient, pattern string, reset bool) (int64, error) {
ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
defer cancel()
resp, err := client.QueryStats(ctx, &statspb.QueryStatsRequest{
Pattern: pattern,
Reset_: reset,
})
if err != nil {
return -1, err
}
if len(resp.GetStat()) == 0 {
return -1, nil
}
return resp.GetStat()[0].GetValue(), nil
}
func GetSystemStats(ctx context.Context, client statspb.StatsServiceClient) (*statspb.SysStatsResponse, error) {
ctx, cancel := context.WithTimeout(ctx, 5*time.Second)
defer cancel()
return client.GetSysStats(ctx, &statspb.SysStatsRequest{})
}