From 12b50f1df2ea3d3b407e6ec0c4925eef3abb9934 Mon Sep 17 00:00:00 2001 From: Abhishek Pandey Date: Fri, 6 Oct 2023 20:35:06 +0530 Subject: [PATCH] add async counter --- src/internal/events/adot_sdk_client.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/internal/events/adot_sdk_client.go b/src/internal/events/adot_sdk_client.go index 8d08206e3..b03005ed1 100644 --- a/src/internal/events/adot_sdk_client.go +++ b/src/internal/events/adot_sdk_client.go @@ -19,6 +19,7 @@ import ( ) var Ctr metric.Int64Counter +var AsyncCtr metric.Int64ObservableCounter type collector struct { meter metric.Meter @@ -40,10 +41,29 @@ func (rmc *collector) RegisterMetricsClient(ctx context.Context, cfg Config) { time.Sleep(time.Second * 1) } }() + } func (rmc *collector) registerCounter() { Ctr, _ = rmc.meter.Int64Counter(growCounter) + AsyncCtr, _ = rmc.meter.Int64ObservableCounter("async_counter") + + var token int64 + + cb := func(_ context.Context, o metric.Observer) error { + token++ + o.ObserveInt64(AsyncCtr, token) + return nil + } + + _, err := rmc.meter.RegisterCallback( + cb, + AsyncCtr, + ) + + if err != nil { + log.Fatalf("failed to register callback: %v", err) + } } func (rmc *collector) updateCounter(ctx context.Context) {