pkg/api/metrics.go (48 lines of code) (raw):

package api import ( "fmt" "go.opentelemetry.io/otel/metric" ) type metrics struct { rootTotalMetrics metric.Int64Counter licenseTotalMetrics metric.Int64Counter bulkCreateTotalMetrics metric.Int64Counter bulkCreateDuplicateMetrics metric.Int64Counter bulkCreateTooManyMetrics metric.Int64Counter bulkCreateNonIndexMetrics metric.Int64Counter bulkCreateOkMetrics metric.Int64Counter bulkCreateTooLargeMetrics metric.Int64Counter bulkIndexTotalMetrics metric.Int64Counter bulkUpdateTotalMetrics metric.Int64Counter bulkDeleteTotalMetrics metric.Int64Counter } func newMetrics(provider metric.MeterProvider) (*metrics, error) { m := &metrics{} meter := provider.Meter("github.com/elastic/mock-es") for k, v := range map[string]*metric.Int64Counter{ "root.total": &m.rootTotalMetrics, "license.total": &m.licenseTotalMetrics, "bulk.create.total": &m.bulkCreateTotalMetrics, "bulk.create.duplicate": &m.bulkCreateDuplicateMetrics, "bulk.create.too_many": &m.bulkCreateTooManyMetrics, "bulk.create.non_index": &m.bulkCreateNonIndexMetrics, "bulk.create.ok": &m.bulkCreateOkMetrics, "bulk.create.too_large": &m.bulkCreateTooLargeMetrics, "bulk.index.total": &m.bulkIndexTotalMetrics, "bulk.update.total": &m.bulkUpdateTotalMetrics, "bulk.delete.total": &m.bulkDeleteTotalMetrics, } { if err := newCounter(meter, v, k); err != nil { return nil, err } } return m, nil } func newCounter(meter metric.Meter, counter *metric.Int64Counter, name string) error { c, err := meter.Int64Counter(name) if err != nil { return fmt.Errorf("failed to create counter: %s", name) } *counter = c return nil }