gtsocial-umbx

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

syncint64.go (6087B)


      1 // Copyright The OpenTelemetry Authors
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //     http://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 
     15 package metric // import "go.opentelemetry.io/otel/metric"
     16 
     17 import (
     18 	"context"
     19 
     20 	"go.opentelemetry.io/otel/metric/embedded"
     21 )
     22 
     23 // Int64Counter is an instrument that records increasing int64 values.
     24 //
     25 // Warning: Methods may be added to this interface in minor releases. See
     26 // package documentation on API implementation for information on how to set
     27 // default behavior for unimplemented methods.
     28 type Int64Counter interface {
     29 	// Users of the interface can ignore this. This embedded type is only used
     30 	// by implementations of this interface. See the "API Implementations"
     31 	// section of the package documentation for more information.
     32 	embedded.Int64Counter
     33 
     34 	// Add records a change to the counter.
     35 	//
     36 	// Use the WithAttributeSet (or, if performance is not a concern,
     37 	// the WithAttributes) option to include measurement attributes.
     38 	Add(ctx context.Context, incr int64, options ...AddOption)
     39 }
     40 
     41 // Int64CounterConfig contains options for synchronous counter instruments that
     42 // record int64 values.
     43 type Int64CounterConfig struct {
     44 	description string
     45 	unit        string
     46 }
     47 
     48 // NewInt64CounterConfig returns a new [Int64CounterConfig] with all opts
     49 // applied.
     50 func NewInt64CounterConfig(opts ...Int64CounterOption) Int64CounterConfig {
     51 	var config Int64CounterConfig
     52 	for _, o := range opts {
     53 		config = o.applyInt64Counter(config)
     54 	}
     55 	return config
     56 }
     57 
     58 // Description returns the configured description.
     59 func (c Int64CounterConfig) Description() string {
     60 	return c.description
     61 }
     62 
     63 // Unit returns the configured unit.
     64 func (c Int64CounterConfig) Unit() string {
     65 	return c.unit
     66 }
     67 
     68 // Int64CounterOption applies options to a [Int64CounterConfig]. See
     69 // [InstrumentOption] for other options that can be used as an
     70 // Int64CounterOption.
     71 type Int64CounterOption interface {
     72 	applyInt64Counter(Int64CounterConfig) Int64CounterConfig
     73 }
     74 
     75 // Int64UpDownCounter is an instrument that records increasing or decreasing
     76 // int64 values.
     77 //
     78 // Warning: Methods may be added to this interface in minor releases. See
     79 // package documentation on API implementation for information on how to set
     80 // default behavior for unimplemented methods.
     81 type Int64UpDownCounter interface {
     82 	// Users of the interface can ignore this. This embedded type is only used
     83 	// by implementations of this interface. See the "API Implementations"
     84 	// section of the package documentation for more information.
     85 	embedded.Int64UpDownCounter
     86 
     87 	// Add records a change to the counter.
     88 	//
     89 	// Use the WithAttributeSet (or, if performance is not a concern,
     90 	// the WithAttributes) option to include measurement attributes.
     91 	Add(ctx context.Context, incr int64, options ...AddOption)
     92 }
     93 
     94 // Int64UpDownCounterConfig contains options for synchronous counter
     95 // instruments that record int64 values.
     96 type Int64UpDownCounterConfig struct {
     97 	description string
     98 	unit        string
     99 }
    100 
    101 // NewInt64UpDownCounterConfig returns a new [Int64UpDownCounterConfig] with
    102 // all opts applied.
    103 func NewInt64UpDownCounterConfig(opts ...Int64UpDownCounterOption) Int64UpDownCounterConfig {
    104 	var config Int64UpDownCounterConfig
    105 	for _, o := range opts {
    106 		config = o.applyInt64UpDownCounter(config)
    107 	}
    108 	return config
    109 }
    110 
    111 // Description returns the configured description.
    112 func (c Int64UpDownCounterConfig) Description() string {
    113 	return c.description
    114 }
    115 
    116 // Unit returns the configured unit.
    117 func (c Int64UpDownCounterConfig) Unit() string {
    118 	return c.unit
    119 }
    120 
    121 // Int64UpDownCounterOption applies options to a [Int64UpDownCounterConfig].
    122 // See [InstrumentOption] for other options that can be used as an
    123 // Int64UpDownCounterOption.
    124 type Int64UpDownCounterOption interface {
    125 	applyInt64UpDownCounter(Int64UpDownCounterConfig) Int64UpDownCounterConfig
    126 }
    127 
    128 // Int64Histogram is an instrument that records a distribution of int64
    129 // values.
    130 //
    131 // Warning: Methods may be added to this interface in minor releases. See
    132 // package documentation on API implementation for information on how to set
    133 // default behavior for unimplemented methods.
    134 type Int64Histogram interface {
    135 	// Users of the interface can ignore this. This embedded type is only used
    136 	// by implementations of this interface. See the "API Implementations"
    137 	// section of the package documentation for more information.
    138 	embedded.Int64Histogram
    139 
    140 	// Record adds an additional value to the distribution.
    141 	//
    142 	// Use the WithAttributeSet (or, if performance is not a concern,
    143 	// the WithAttributes) option to include measurement attributes.
    144 	Record(ctx context.Context, incr int64, options ...RecordOption)
    145 }
    146 
    147 // Int64HistogramConfig contains options for synchronous counter instruments
    148 // that record int64 values.
    149 type Int64HistogramConfig struct {
    150 	description string
    151 	unit        string
    152 }
    153 
    154 // NewInt64HistogramConfig returns a new [Int64HistogramConfig] with all opts
    155 // applied.
    156 func NewInt64HistogramConfig(opts ...Int64HistogramOption) Int64HistogramConfig {
    157 	var config Int64HistogramConfig
    158 	for _, o := range opts {
    159 		config = o.applyInt64Histogram(config)
    160 	}
    161 	return config
    162 }
    163 
    164 // Description returns the configured description.
    165 func (c Int64HistogramConfig) Description() string {
    166 	return c.description
    167 }
    168 
    169 // Unit returns the configured unit.
    170 func (c Int64HistogramConfig) Unit() string {
    171 	return c.unit
    172 }
    173 
    174 // Int64HistogramOption applies options to a [Int64HistogramConfig]. See
    175 // [InstrumentOption] for other options that can be used as an
    176 // Int64HistogramOption.
    177 type Int64HistogramOption interface {
    178 	applyInt64Histogram(Int64HistogramConfig) Int64HistogramConfig
    179 }