Skip to content

Commit

Permalink
chore(deps): bump otel, go-header, and go-fraud (#2472)
Browse files Browse the repository at this point in the history
  • Loading branch information
walldiss committed Jul 13, 2023
1 parent 360ba6b commit 11dced4
Show file tree
Hide file tree
Showing 11 changed files with 296 additions and 298 deletions.
8 changes: 5 additions & 3 deletions cmd/flags_misc.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
flag "github.com/spf13/pflag"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace"
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp"
"go.opentelemetry.io/otel/sdk/resource"
tracesdk "go.opentelemetry.io/otel/sdk/trace"
Expand Down Expand Up @@ -210,15 +211,16 @@ func ParseMiscFlags(ctx context.Context, cmd *cobra.Command) (context.Context, e
opts = append(opts, otlptracehttp.WithInsecure())
}

exp, err := otlptracehttp.New(cmd.Context(), opts...)
client := otlptracehttp.NewClient(opts...)
exporter, err := otlptrace.New(ctx, client)
if err != nil {
return ctx, err
return ctx, fmt.Errorf("creating OTLP trace exporter: %w", err)
}

tp = tracesdk.NewTracerProvider(
tracesdk.WithSampler(tracesdk.AlwaysSample()),
// Always be sure to batch in production.
tracesdk.WithBatcher(exp),
tracesdk.WithBatcher(exporter),
// Record information about this application in a Resource.
tracesdk.WithResource(resource.NewWithAttributes(
semconv.SchemaURL,
Expand Down
135 changes: 67 additions & 68 deletions das/metrics.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,9 @@ import (
"sync/atomic"
"time"

"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/metric/global"
"go.opentelemetry.io/otel/metric/instrument"
"go.opentelemetry.io/otel/metric/instrument/syncfloat64"
"go.opentelemetry.io/otel/metric/instrument/syncint64"
"go.opentelemetry.io/otel/metric"

"github.com/celestiaorg/celestia-node/header"
)
Expand All @@ -22,73 +20,70 @@ const (
)

var (
meter = global.MeterProvider().Meter("das")
meter = otel.Meter("das")
)

type metrics struct {
sampled syncint64.Counter
sampleTime syncfloat64.Histogram
getHeaderTime syncfloat64.Histogram
newHead syncint64.Counter
sampled metric.Int64Counter
sampleTime metric.Float64Histogram
getHeaderTime metric.Float64Histogram
newHead metric.Int64Counter

lastSampledTS uint64
}

func (d *DASer) InitMetrics() error {
sampled, err := meter.SyncInt64().Counter("das_sampled_headers_counter",
instrument.WithDescription("sampled headers counter"))
sampled, err := meter.Int64Counter("das_sampled_headers_counter",
metric.WithDescription("sampled headers counter"))
if err != nil {
return err
}

sampleTime, err := meter.SyncFloat64().Histogram("das_sample_time_hist",
instrument.WithDescription("duration of sampling a single header"))
sampleTime, err := meter.Float64Histogram("das_sample_time_hist",
metric.WithDescription("duration of sampling a single header"))
if err != nil {
return err
}

getHeaderTime, err := meter.SyncFloat64().Histogram("das_get_header_time_hist",
instrument.WithDescription("duration of getting header from header store"))
getHeaderTime, err := meter.Float64Histogram("das_get_header_time_hist",
metric.WithDescription("duration of getting header from header store"))
if err != nil {
return err
}

newHead, err := meter.SyncInt64().Counter("das_head_updated_counter",
instrument.WithDescription("amount of times DAS'er advanced network head"))
newHead, err := meter.Int64Counter("das_head_updated_counter",
metric.WithDescription("amount of times DAS'er advanced network head"))
if err != nil {
return err
}

lastSampledTS, err := meter.AsyncInt64().Gauge("das_latest_sampled_ts",
instrument.WithDescription("latest sampled timestamp"))
lastSampledTS, err := meter.Int64ObservableGauge("das_latest_sampled_ts",
metric.WithDescription("latest sampled timestamp"))
if err != nil {
return err
}

busyWorkers, err := meter.AsyncInt64().Gauge("das_busy_workers_amount",
instrument.WithDescription("number of active parallel workers in DAS'er"))
busyWorkers, err := meter.Int64ObservableGauge("das_busy_workers_amount",
metric.WithDescription("number of active parallel workers in DAS'er"))
if err != nil {
return err
}

networkHead, err := meter.AsyncInt64().Gauge("das_network_head",
instrument.WithDescription("most recent network head"))
networkHead, err := meter.Int64ObservableGauge("das_network_head",
metric.WithDescription("most recent network head"))
if err != nil {
return err
}

sampledChainHead, err := meter.AsyncInt64().Gauge("das_sampled_chain_head",
instrument.WithDescription("height of the sampled chain - all previous headers have been successfully sampled"))
sampledChainHead, err := meter.Int64ObservableGauge("das_sampled_chain_head",
metric.WithDescription("height of the sampled chain - all previous headers have been successfully sampled"))
if err != nil {
return err
}

totalSampled, err := meter.
AsyncInt64().
Gauge(
"das_total_sampled_headers",
instrument.WithDescription("total sampled headers gauge"),
)
totalSampled, err := meter.Int64ObservableGauge("das_total_sampled_headers",
metric.WithDescription("total sampled headers gauge"),
)
if err != nil {
return err
}
Expand All @@ -100,36 +95,38 @@ func (d *DASer) InitMetrics() error {
newHead: newHead,
}

err = meter.RegisterCallback(
[]instrument.Asynchronous{
lastSampledTS,
busyWorkers,
networkHead,
sampledChainHead,
totalSampled,
},
func(ctx context.Context) {
stats, err := d.sampler.stats(ctx)
if err != nil {
log.Errorf("observing stats: %s", err.Error())
}

for jobType, amount := range stats.workersByJobType() {
busyWorkers.Observe(ctx, amount,
attribute.String(jobTypeLabel, string(jobType)))
}

networkHead.Observe(ctx, int64(stats.NetworkHead))
sampledChainHead.Observe(ctx, int64(stats.SampledChainHead))

if ts := atomic.LoadUint64(&d.sampler.metrics.lastSampledTS); ts != 0 {
lastSampledTS.Observe(ctx, int64(ts))
}

totalSampled.Observe(ctx, int64(stats.totalSampled()))
},
)
callback := func(ctx context.Context, observer metric.Observer) error {
stats, err := d.sampler.stats(ctx)
if err != nil {
log.Errorf("observing stats: %s", err.Error())
return err
}

for jobType, amount := range stats.workersByJobType() {
observer.ObserveInt64(busyWorkers, amount,
metric.WithAttributes(
attribute.String(jobTypeLabel, string(jobType)),
))
}

observer.ObserveInt64(networkHead, int64(stats.NetworkHead))
observer.ObserveInt64(sampledChainHead, int64(stats.SampledChainHead))

if ts := atomic.LoadUint64(&d.sampler.metrics.lastSampledTS); ts != 0 {
observer.ObserveInt64(lastSampledTS, int64(ts))
}

observer.ObserveInt64(totalSampled, int64(stats.totalSampled()))
return nil
}

_, err = meter.RegisterCallback(callback,
lastSampledTS,
busyWorkers,
networkHead,
sampledChainHead,
totalSampled,
)
if err != nil {
return fmt.Errorf("registering metrics callback: %w", err)
}
Expand All @@ -153,16 +150,18 @@ func (m *metrics) observeSample(
ctx = context.Background()
}
m.sampleTime.Record(ctx, sampleTime.Seconds(),
attribute.Bool(failedLabel, err != nil),
attribute.Int(headerWidthLabel, len(h.DAH.RowRoots)),
attribute.String(jobTypeLabel, string(jobType)),
)
metric.WithAttributes(
attribute.Bool(failedLabel, err != nil),
attribute.Int(headerWidthLabel, len(h.DAH.RowRoots)),
attribute.String(jobTypeLabel, string(jobType)),
))

m.sampled.Add(ctx, 1,
attribute.Bool(failedLabel, err != nil),
attribute.Int(headerWidthLabel, len(h.DAH.RowRoots)),
attribute.String(jobTypeLabel, string(jobType)),
)
metric.WithAttributes(
attribute.Bool(failedLabel, err != nil),
attribute.Int(headerWidthLabel, len(h.DAH.RowRoots)),
attribute.String(jobTypeLabel, string(jobType)),
))

atomic.StoreUint64(&m.lastSampledTS, uint64(time.Now().UTC().Unix()))
}
Expand Down
34 changes: 18 additions & 16 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ require (
github.com/alecthomas/jsonschema v0.0.0-20200530073317-71f438968921
github.com/benbjohnson/clock v1.3.5
github.com/celestiaorg/celestia-app v1.0.0-rc9
github.com/celestiaorg/go-fraud v0.1.0
github.com/celestiaorg/go-header v0.2.11
github.com/celestiaorg/go-fraud v0.1.2
github.com/celestiaorg/go-header v0.2.12
github.com/celestiaorg/go-libp2p-messenger v0.2.0
github.com/celestiaorg/nmt v0.17.0
github.com/celestiaorg/rsmt2d v0.10.0
Expand Down Expand Up @@ -63,13 +63,14 @@ require (
github.com/spf13/pflag v1.0.5
github.com/stretchr/testify v1.8.4
github.com/tendermint/tendermint v0.34.28
go.opentelemetry.io/otel v1.13.0
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.34.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.11.2
go.opentelemetry.io/otel/metric v0.34.0
go.opentelemetry.io/otel/sdk v1.11.2
go.opentelemetry.io/otel/sdk/metric v0.34.0
go.opentelemetry.io/otel/trace v1.13.0
go.opentelemetry.io/otel v1.16.0
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.39.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.16.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.16.0
go.opentelemetry.io/otel/metric v1.16.0
go.opentelemetry.io/otel/sdk v1.16.0
go.opentelemetry.io/otel/sdk/metric v0.39.0
go.opentelemetry.io/otel/trace v1.16.0
go.opentelemetry.io/proto/otlp v0.19.0
go.uber.org/fx v1.19.3
go.uber.org/zap v1.24.0
Expand Down Expand Up @@ -103,7 +104,7 @@ require (
github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect
github.com/celestiaorg/merkletree v0.0.0-20210714075610-a84dc3ddbbe4 // indirect
github.com/celestiaorg/quantum-gravity-bridge v1.3.0 // indirect
github.com/cenkalti/backoff/v4 v4.2.0 // indirect
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
github.com/cespare/xxhash v1.1.0 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/chzyer/readline v1.5.1 // indirect
Expand Down Expand Up @@ -174,7 +175,7 @@ require (
github.com/gorilla/websocket v1.5.0 // indirect
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 // indirect
github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect
github.com/gtank/merlin v0.1.1 // indirect
github.com/gtank/ristretto255 v0.1.2 // indirect
Expand Down Expand Up @@ -304,22 +305,23 @@ require (
github.com/zondax/ledger-go v0.14.1 // indirect
go.etcd.io/bbolt v1.3.6 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.2 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.34.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.2 // indirect
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.16.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric v0.39.0 // indirect
go.uber.org/atomic v1.11.0 // indirect
go.uber.org/dig v1.17.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/mod v0.10.0 // indirect
golang.org/x/net v0.10.0 // indirect
golang.org/x/oauth2 v0.7.0 // indirect
golang.org/x/oauth2 v0.8.0 // indirect
golang.org/x/sys v0.8.0 // indirect
golang.org/x/term v0.8.0 // indirect
golang.org/x/tools v0.9.1 // indirect
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
google.golang.org/api v0.114.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
google.golang.org/genproto v0.0.0-20230526203410-71b5a4ffd15e // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/natefinch/npipe.v2 v2.0.0-20160621034901-c1b8fa8bdcce // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
Expand Down
Loading

0 comments on commit 11dced4

Please sign in to comment.