/
githubmirror
/
jaeger-ydb-store
Обзор
Документация
Войти
/
githubmirror
/
jaeger-ydb-store
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
plugin/metrics.go
35 строк
939 B
Aleksey Myasnikov
update ydb-go-sdk to v3.16.11, ydb-go-sdk-zap to v0.9.1 (#30)
25 мар 2022, 14:23
Не верифицирован
25 мар 2022, 14:23
2e77cfa
Код
Авторство
О чём код?
package plugin import ( "sync" "github.com/uber/jaeger-lib/metrics" "github.com/ydb-platform/ydb-go-sdk/v3/trace" ) func tableClientMetrics(factory metrics.Factory) trace.Table { m := map[string]struct{}{} ns := factory.Namespace(metrics.NSOptions{Name: "tc"}) sc := ns.Gauge(metrics.Options{Name: "sessions"}) mx := new(sync.Mutex) return trace.Table{ OnSessionNew: func(trace.TableSessionNewStartInfo) func(trace.TableSessionNewDoneInfo) { return func(doneInfo trace.TableSessionNewDoneInfo) { mx.Lock() defer mx.Unlock() if doneInfo.Error == nil { m[doneInfo.Session.ID()] = struct{}{} sc.Update(int64(len(m))) } } }, OnSessionDelete: func(info trace.TableSessionDeleteStartInfo) func(trace.TableSessionDeleteDoneInfo) { return func(_ trace.TableSessionDeleteDoneInfo) { mx.Lock() defer mx.Unlock() delete(m, info.Session.ID()) sc.Update(int64(len(m))) } }, } }